diff --git a/deps/v8/.gitignore b/deps/v8/.gitignore index f85d0d30b18974..bcec3768f398dc 100644 --- a/deps/v8/.gitignore +++ b/deps/v8/.gitignore @@ -45,10 +45,10 @@ /src/inspector/build/closure-compiler /src/inspector/build/closure-compiler.tar.gz /test/benchmarks/data -/test/fuzzer/wasm -/test/fuzzer/wasm.tar.gz -/test/fuzzer/wasm_asmjs -/test/fuzzer/wasm_asmjs.tar.gz +/test/fuzzer/wasm_corpus +/test/fuzzer/wasm_corpus.tar.gz +/test/fuzzer/wasm_asmjs_corpus +/test/fuzzer/wasm_asmjs_corpus.tar.gz /test/mozilla/data /test/promises-aplus/promises-tests /test/promises-aplus/promises-tests.tar.gz @@ -57,6 +57,8 @@ /test/test262/data.tar /test/test262/harness /test/wasm-js +/test/wasm-spec-tests/tests +/test/wasm-spec-tests/tests.tar.gz /testing/gmock /testing/gtest/* !/testing/gtest/include diff --git a/deps/v8/.gn b/deps/v8/.gn index b3adcc74cd64b2..c80980ea092d05 100644 --- a/deps/v8/.gn +++ b/deps/v8/.gn @@ -21,7 +21,5 @@ check_targets = [] # These are the list of GN files that run exec_script. This whitelist exists # to force additional review for new uses of exec_script, which is strongly # discouraged except for gypi_to_gn calls. -exec_script_whitelist = build_dotfile_settings.exec_script_whitelist + [ - "//test/test262/BUILD.gn", - "//BUILD.gn", - ] +exec_script_whitelist = + build_dotfile_settings.exec_script_whitelist + [ "//test/test262/BUILD.gn" ] diff --git a/deps/v8/AUTHORS b/deps/v8/AUTHORS index 27882149a4d21e..07cf31914431e0 100644 --- a/deps/v8/AUTHORS +++ b/deps/v8/AUTHORS @@ -70,6 +70,7 @@ Hirofumi Mako Honggyu Kim Ioseb Dzmanashvili Isiah Meadows +Jaime Bernardo Jan de Mooij Jay Freeman James Pike diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn index becf4177c19800..2060cb19817059 100644 --- a/deps/v8/BUILD.gn +++ b/deps/v8/BUILD.gn @@ -5,6 +5,7 @@ import("//build/config/android/config.gni") import("//build/config/arm.gni") import("//build/config/dcheck_always_on.gni") +import("//build/config/host_byteorder.gni") import("//build/config/mips.gni") import("//build/config/sanitizers/sanitizers.gni") @@ -69,14 +70,17 @@ declare_args() { # Sets -dOBJECT_PRINT. v8_enable_object_print = "" - # Sets -dTRACE_MAPS. + # Sets -dV8_TRACE_MAPS. v8_enable_trace_maps = "" # Sets -dV8_ENABLE_CHECKS. v8_enable_v8_checks = "" - # Builds the snapshot with --trace-ignition - v8_trace_ignition = false + # Sets -dV8_TRACE_IGNITION. + v8_enable_trace_ignition = false + + # Sets -dV8_CONCURRENT_MARKING + v8_enable_concurrent_marking = false # With post mortem support enabled, metadata is embedded into libv8 that # describes various parameters of the VM for use by debuggers. See @@ -110,19 +114,6 @@ declare_args() { v8_enable_gdbjit = ((v8_current_cpu == "x86" || v8_current_cpu == "x64" || v8_current_cpu == "x87") && (is_linux || is_mac)) || (v8_current_cpu == "ppc64" && is_linux) - - # Set v8_host_byteorder - v8_host_byteorder = "little" - - # ppc64 can be either BE or LE - if (host_cpu == "ppc64") { - v8_host_byteorder = - exec_script("//tools/get_byteorder.py", [], "trim string") - } - if (host_cpu == "ppc" || host_cpu == "s390" || host_cpu == "s390x" || - host_cpu == "mips" || host_cpu == "mips64") { - v8_host_byteorder = "big" - } } # Derived defaults. @@ -247,7 +238,10 @@ config("features") { defines += [ "VERIFY_PREDICTABLE" ] } if (v8_enable_trace_maps) { - defines += [ "TRACE_MAPS" ] + defines += [ "V8_TRACE_MAPS" ] + } + if (v8_enable_trace_ignition) { + defines += [ "V8_TRACE_IGNITION" ] } if (v8_enable_v8_checks) { defines += [ "V8_ENABLE_CHECKS" ] @@ -262,7 +256,7 @@ config("features") { defines += [ "V8_IMMINENT_DEPRECATION_WARNINGS" ] } if (v8_enable_i18n_support) { - defines += [ "V8_I18N_SUPPORT" ] + defines += [ "V8_INTL_SUPPORT" ] } if (v8_enable_handle_zapping) { defines += [ "ENABLE_HANDLE_ZAPPING" ] @@ -273,6 +267,9 @@ config("features") { if (v8_use_external_startup_data) { defines += [ "V8_USE_EXTERNAL_STARTUP_DATA" ] } + if (v8_enable_concurrent_marking) { + defines += [ "V8_CONCURRENT_MARKING" ] + } } config("toolchain") { @@ -386,7 +383,7 @@ config("toolchain") { if (v8_current_cpu == "s390x") { defines += [ "V8_TARGET_ARCH_S390X" ] } - if (v8_host_byteorder == "little") { + if (host_byteorder == "little") { defines += [ "V8_TARGET_ARCH_S390_LE_SIM" ] } else { cflags += [ "-march=z196" ] @@ -397,9 +394,9 @@ config("toolchain") { if (v8_current_cpu == "ppc64") { defines += [ "V8_TARGET_ARCH_PPC64" ] } - if (v8_host_byteorder == "little") { + if (host_byteorder == "little") { defines += [ "V8_TARGET_ARCH_PPC_LE" ] - } else if (v8_host_byteorder == "big") { + } else if (host_byteorder == "big") { defines += [ "V8_TARGET_ARCH_PPC_BE" ] if (current_os == "aix") { cflags += [ @@ -413,6 +410,7 @@ config("toolchain") { } } } + if (v8_current_cpu == "x86") { defines += [ "V8_TARGET_ARCH_IA32" ] if (is_win) { @@ -487,6 +485,15 @@ config("toolchain") { "/wd4800", # Forcing value to bool. ] } + + if (!is_clang && !is_win) { + cflags += [ + # Disable gcc warnings for optimizations based on the assumption that + # signed overflow does not occur. Generates false positives (see + # http://crbug.com/v8/6341). + "-Wno-strict-overflow", + ] + } } ############################################################################### @@ -509,7 +516,7 @@ action("js2c") { "src/js/macros.py", "src/messages.h", "src/js/prologue.js", - "src/js/runtime.js", + "src/js/max-min.js", "src/js/v8natives.js", "src/js/array.js", "src/js/string.js", @@ -522,7 +529,6 @@ action("js2c") { "src/js/templates.js", "src/js/spread.js", "src/js/proxy.js", - "src/js/harmony-string-padding.js", "src/debug/mirrors.js", "src/debug/debug.js", "src/debug/liveedit.js", @@ -533,7 +539,7 @@ action("js2c") { ] if (v8_enable_i18n_support) { - sources += [ "src/js/i18n.js" ] + sources += [ "src/js/intl.js" ] } args = [ @@ -695,6 +701,8 @@ action("postmortem-metadata") { sources = [ "src/objects.h", "src/objects-inl.h", + "src/objects/map.h", + "src/objects/map-inl.h", ] outputs = [ @@ -742,10 +750,6 @@ action("run_mksnapshot") { ] } - if (v8_trace_ignition) { - args += [ "--trace-ignition" ] - } - if (v8_use_external_startup_data) { outputs += [ "$root_out_dir/snapshot_blob.bin" ] args += [ @@ -885,7 +889,6 @@ v8_source_set("v8_builtins_generators") { visibility = [ ":*", "test/cctest:*", - "test/unittests:*", ] deps = [ @@ -904,6 +907,7 @@ v8_source_set("v8_builtins_generators") { "src/builtins/builtins-async-iterator-gen.cc", "src/builtins/builtins-boolean-gen.cc", "src/builtins/builtins-call-gen.cc", + "src/builtins/builtins-console-gen.cc", "src/builtins/builtins-constructor-gen.cc", "src/builtins/builtins-constructor-gen.h", "src/builtins/builtins-constructor.h", @@ -918,6 +922,7 @@ v8_source_set("v8_builtins_generators") { "src/builtins/builtins-ic-gen.cc", "src/builtins/builtins-internal-gen.cc", "src/builtins/builtins-interpreter-gen.cc", + "src/builtins/builtins-intl-gen.cc", "src/builtins/builtins-math-gen.cc", "src/builtins/builtins-number-gen.cc", "src/builtins/builtins-object-gen.cc", @@ -927,6 +932,7 @@ v8_source_set("v8_builtins_generators") { "src/builtins/builtins-regexp-gen.h", "src/builtins/builtins-sharedarraybuffer-gen.cc", "src/builtins/builtins-string-gen.cc", + "src/builtins/builtins-string-gen.h", "src/builtins/builtins-symbol-gen.cc", "src/builtins/builtins-typedarray-gen.cc", "src/builtins/builtins-utils-gen.h", @@ -995,6 +1001,10 @@ v8_source_set("v8_builtins_generators") { ] } + if (!v8_enable_i18n_support) { + sources -= [ "src/builtins/builtins-intl-gen.cc" ] + } + configs = [ ":internal_config" ] } @@ -1019,11 +1029,27 @@ v8_header_set("v8_version") { configs = [ ":internal_config" ] sources = [ + "include/v8-value-serializer-version.h", "include/v8-version-string.h", "include/v8-version.h", ] } +# This is split out to be a non-code containing target that the Chromium browser +# can depend upon to get basic v8 types. +v8_header_set("v8_headers") { + configs = [ ":internal_config" ] + + sources = [ + "include/v8.h", + "include/v8config.h", + ] + + deps = [ + ":v8_version", + ] +} + v8_source_set("v8_base") { visibility = [ ":*" ] # Only targets in this file can depend on this. @@ -1064,12 +1090,8 @@ v8_source_set("v8_base") { "src/asmjs/asm-parser.h", "src/asmjs/asm-scanner.cc", "src/asmjs/asm-scanner.h", - "src/asmjs/asm-typer.cc", - "src/asmjs/asm-typer.h", "src/asmjs/asm-types.cc", "src/asmjs/asm-types.h", - "src/asmjs/asm-wasm-builder.cc", - "src/asmjs/asm-wasm-builder.h", "src/asmjs/switch-logic.cc", "src/asmjs/switch-logic.h", "src/assembler-inl.h", @@ -1123,6 +1145,7 @@ v8_source_set("v8_base") { "src/builtins/builtins-boolean.cc", "src/builtins/builtins-call.cc", "src/builtins/builtins-callsite.cc", + "src/builtins/builtins-console.cc", "src/builtins/builtins-constructor.h", "src/builtins/builtins-dataview.cc", "src/builtins/builtins-date.cc", @@ -1558,6 +1581,7 @@ v8_source_set("v8_base") { "src/heap/array-buffer-tracker.h", "src/heap/code-stats.cc", "src/heap/code-stats.h", + "src/heap/concurrent-marking-deque.h", "src/heap/concurrent-marking.cc", "src/heap/concurrent-marking.h", "src/heap/embedder-tracing.cc", @@ -1574,6 +1598,7 @@ v8_source_set("v8_base") { "src/heap/incremental-marking-job.h", "src/heap/incremental-marking.cc", "src/heap/incremental-marking.h", + "src/heap/item-parallel-job.h", "src/heap/mark-compact-inl.h", "src/heap/mark-compact.cc", "src/heap/mark-compact.h", @@ -1592,14 +1617,15 @@ v8_source_set("v8_base") { "src/heap/scavenger-inl.h", "src/heap/scavenger.cc", "src/heap/scavenger.h", + "src/heap/sequential-marking-deque.cc", + "src/heap/sequential-marking-deque.h", "src/heap/slot-set.h", "src/heap/spaces-inl.h", "src/heap/spaces.cc", "src/heap/spaces.h", "src/heap/store-buffer.cc", "src/heap/store-buffer.h", - "src/i18n.cc", - "src/i18n.h", + "src/heap/workstealing-marking-deque.h", "src/ic/access-compiler-data.h", "src/ic/access-compiler.cc", "src/ic/access-compiler.h", @@ -1640,17 +1666,20 @@ v8_source_set("v8_base") { "src/interpreter/bytecode-flags.h", "src/interpreter/bytecode-generator.cc", "src/interpreter/bytecode-generator.h", + "src/interpreter/bytecode-jump-table.h", "src/interpreter/bytecode-label.cc", "src/interpreter/bytecode-label.h", + "src/interpreter/bytecode-node.cc", + "src/interpreter/bytecode-node.h", "src/interpreter/bytecode-operands.cc", "src/interpreter/bytecode-operands.h", - "src/interpreter/bytecode-pipeline.cc", - "src/interpreter/bytecode-pipeline.h", "src/interpreter/bytecode-register-allocator.h", "src/interpreter/bytecode-register-optimizer.cc", "src/interpreter/bytecode-register-optimizer.h", "src/interpreter/bytecode-register.cc", "src/interpreter/bytecode-register.h", + "src/interpreter/bytecode-source-info.cc", + "src/interpreter/bytecode-source-info.h", "src/interpreter/bytecode-traits.h", "src/interpreter/bytecodes.cc", "src/interpreter/bytecodes.h", @@ -1665,6 +1694,8 @@ v8_source_set("v8_base") { "src/interpreter/interpreter-intrinsics.h", "src/interpreter/interpreter.cc", "src/interpreter/interpreter.h", + "src/intl.cc", + "src/intl.h", "src/isolate-inl.h", "src/isolate.cc", "src/isolate.h", @@ -1719,8 +1750,12 @@ v8_source_set("v8_base") { "src/objects/frame-array.h", "src/objects/hash-table-inl.h", "src/objects/hash-table.h", + "src/objects/intl-objects.cc", + "src/objects/intl-objects.h", "src/objects/literal-objects.cc", "src/objects/literal-objects.h", + "src/objects/map-inl.h", + "src/objects/map.h", "src/objects/module-info.h", "src/objects/object-macros-undef.h", "src/objects/object-macros.h", @@ -1833,9 +1868,9 @@ v8_source_set("v8_base") { "src/runtime/runtime-function.cc", "src/runtime/runtime-futex.cc", "src/runtime/runtime-generator.cc", - "src/runtime/runtime-i18n.cc", "src/runtime/runtime-internal.cc", "src/runtime/runtime-interpreter.cc", + "src/runtime/runtime-intl.cc", "src/runtime/runtime-literals.cc", "src/runtime/runtime-liveedit.cc", "src/runtime/runtime-maths.cc", @@ -1891,6 +1926,8 @@ v8_source_set("v8_base") { "src/string-builder.h", "src/string-case.cc", "src/string-case.h", + "src/string-hasher-inl.h", + "src/string-hasher.h", "src/string-search.h", "src/string-stream.cc", "src/string-stream.h", @@ -1935,6 +1972,8 @@ v8_source_set("v8_base") { "src/vector.h", "src/version.cc", "src/version.h", + "src/visitors.cc", + "src/visitors.h", "src/vm-state-inl.h", "src/vm-state.h", "src/wasm/decoder.h", @@ -1942,10 +1981,14 @@ v8_source_set("v8_base") { "src/wasm/function-body-decoder.cc", "src/wasm/function-body-decoder.h", "src/wasm/leb-helper.h", + "src/wasm/local-decl-encoder.cc", + "src/wasm/local-decl-encoder.h", "src/wasm/module-decoder.cc", "src/wasm/module-decoder.h", "src/wasm/signature-map.cc", "src/wasm/signature-map.h", + "src/wasm/streaming-decoder.cc", + "src/wasm/streaming-decoder.h", "src/wasm/wasm-code-specialization.cc", "src/wasm/wasm-code-specialization.h", "src/wasm/wasm-debug.cc", @@ -1956,7 +1999,6 @@ v8_source_set("v8_base") { "src/wasm/wasm-js.cc", "src/wasm/wasm-js.h", "src/wasm/wasm-limits.h", - "src/wasm/wasm-macro-gen.h", "src/wasm/wasm-module-builder.cc", "src/wasm/wasm-module-builder.h", "src/wasm/wasm-module.cc", @@ -2363,21 +2405,27 @@ v8_source_set("v8_base") { defines = [] deps = [ + ":v8_headers", ":v8_libbase", ":v8_libsampler", - ":v8_version", "src/inspector:inspector", ] if (v8_enable_i18n_support) { - deps += [ "//third_party/icu" ] + public_deps = [ + "//third_party/icu", + ] if (is_win) { deps += [ "//third_party/icu:icudata" ] } } else { sources -= [ - "src/i18n.cc", - "src/i18n.h", + "src/builtins/builtins-intl.cc", + "src/intl.cc", + "src/intl.h", + "src/objects/intl-objects.cc", + "src/objects/intl-objects.h", + "src/runtime/runtime-intl.cc", ] } @@ -2406,6 +2454,7 @@ v8_component("v8_libbase") { "src/base/debug/stack_trace.h", "src/base/division-by-constant.cc", "src/base/division-by-constant.h", + "src/base/export-template.h", "src/base/file-utils.cc", "src/base/file-utils.h", "src/base/flags.h", @@ -2469,6 +2518,16 @@ v8_component("v8_libbase") { "src/base/platform/platform-linux.cc", ] + libs = [ + "dl", + "rt", + ] + } else if (current_os == "aix") { + sources += [ + "src/base/debug/stack_trace_posix.cc", + "src/base/platform/platform-aix.cc", + ] + libs = [ "dl", "rt", @@ -2589,10 +2648,6 @@ v8_source_set("fuzzer_support") { ":v8_libbase", ":v8_libplatform", ] - - if (v8_enable_i18n_support) { - deps += [ "//third_party/icu" ] - } } ############################################################################### @@ -2615,7 +2670,7 @@ if (current_toolchain == v8_snapshot_toolchain) { ":v8_libbase", ":v8_libplatform", ":v8_nosnapshot", - "//build/config/sanitizers:deps", + "//build/config:exe_and_shlib_deps", "//build/win:default_exe_manifest", ] } @@ -2668,6 +2723,12 @@ group("v8_clusterfuzz") { } } +group("v8_archive") { + deps = [ + ":d8", + ] +} + group("v8_fuzzers") { testonly = true deps = [ @@ -2677,6 +2738,7 @@ group("v8_fuzzers") { ":v8_simple_wasm_asmjs_fuzzer", ":v8_simple_wasm_call_fuzzer", ":v8_simple_wasm_code_fuzzer", + ":v8_simple_wasm_compile_fuzzer", ":v8_simple_wasm_data_section_fuzzer", ":v8_simple_wasm_function_sigs_section_fuzzer", ":v8_simple_wasm_fuzzer", @@ -2707,6 +2769,31 @@ if (is_component_build) { public_configs = [ ":external_config" ] } + + v8_component("v8_for_testing") { + testonly = true + + sources = [ + "src/v8dll-main.cc", + ] + + deps = [ + ":v8_dump_build_config", + ] + + public_deps = [ + ":v8_base", + ":v8_maybe_snapshot", + ] + + if (v8_use_snapshot) { + public_deps += [ ":v8_builtins_generators" ] + } + + configs = [ ":internal_config" ] + + public_configs = [ ":external_config" ] + } } else { group("v8") { deps = [ @@ -2720,11 +2807,32 @@ if (is_component_build) { public_configs = [ ":external_config" ] } + + group("v8_for_testing") { + testonly = true + + deps = [ + ":v8_dump_build_config", + ] + + public_deps = [ + ":v8_base", + ":v8_maybe_snapshot", + ] + + if (v8_use_snapshot) { + public_deps += [ ":v8_builtins_generators" ] + } + + public_configs = [ ":external_config" ] + } } v8_executable("d8") { sources = [ "$target_gen_dir/d8-js.cc", + "src/d8-console.cc", + "src/d8-console.h", "src/d8.cc", "src/d8.h", ] @@ -2741,7 +2849,7 @@ v8_executable("d8") { ":v8", ":v8_libbase", ":v8_libplatform", - "//build/config/sanitizers:deps", + "//build/config:exe_and_shlib_deps", "//build/win:default_exe_manifest", ] @@ -2751,10 +2859,6 @@ v8_executable("d8") { sources += [ "src/d8-windows.cc" ] } - if (v8_enable_i18n_support) { - deps += [ "//third_party/icu" ] - } - if (v8_correctness_fuzzer) { deps += [ "tools/foozzie:v8_correctness_fuzzer_resources" ] } @@ -2790,13 +2894,9 @@ v8_executable("v8_hello_world") { ":v8", ":v8_libbase", ":v8_libplatform", - "//build/config/sanitizers:deps", + "//build/config:exe_and_shlib_deps", "//build/win:default_exe_manifest", ] - - if (v8_enable_i18n_support) { - deps += [ "//third_party/icu" ] - } } v8_executable("v8_sample_process") { @@ -2815,13 +2915,9 @@ v8_executable("v8_sample_process") { ":v8", ":v8_libbase", ":v8_libplatform", - "//build/config/sanitizers:deps", + "//build/config:exe_and_shlib_deps", "//build/win:default_exe_manifest", ] - - if (v8_enable_i18n_support) { - deps += [ "//third_party/icu" ] - } } v8_executable("v8_parser_shell") { @@ -2839,13 +2935,9 @@ v8_executable("v8_parser_shell") { ":v8", ":v8_libbase", ":v8_libplatform", - "//build/config/sanitizers:deps", + "//build/config:exe_and_shlib_deps", "//build/win:default_exe_manifest", ] - - if (v8_enable_i18n_support) { - deps += [ "//third_party/icu" ] - } } if (want_v8_shell) { @@ -2865,13 +2957,9 @@ if (want_v8_shell) { ":v8", ":v8_libbase", ":v8_libplatform", - "//build/config/sanitizers:deps", + "//build/config:exe_and_shlib_deps", "//build/win:default_exe_manifest", ] - - if (v8_enable_i18n_support) { - deps += [ "//third_party/icu" ] - } } } @@ -2881,7 +2969,7 @@ template("v8_fuzzer") { v8_executable("v8_simple_" + name) { deps = [ ":" + name, - "//build/config/sanitizers:deps", + "//build/config:exe_and_shlib_deps", "//build/win:default_exe_manifest", ] @@ -2966,6 +3054,7 @@ v8_source_set("wasm_fuzzer") { deps = [ ":fuzzer_support", + ":lib_wasm_fuzzer_common", ":wasm_module_runner", ] @@ -2985,6 +3074,7 @@ v8_source_set("wasm_asmjs_fuzzer") { deps = [ ":fuzzer_support", + ":lib_wasm_fuzzer_common", ":wasm_module_runner", ] @@ -3005,6 +3095,7 @@ v8_source_set("wasm_code_fuzzer") { deps = [ ":fuzzer_support", + ":lib_wasm_fuzzer_common", ":wasm_module_runner", ] @@ -3025,6 +3116,7 @@ v8_source_set("wasm_call_fuzzer") { deps = [ ":fuzzer_support", + ":lib_wasm_fuzzer_common", ":wasm_module_runner", ] @@ -3037,10 +3129,10 @@ v8_source_set("wasm_call_fuzzer") { v8_fuzzer("wasm_call_fuzzer") { } -v8_source_set("lib_wasm_section_fuzzer") { +v8_source_set("lib_wasm_fuzzer_common") { sources = [ - "test/fuzzer/wasm-section-fuzzers.cc", - "test/fuzzer/wasm-section-fuzzers.h", + "test/fuzzer/wasm-fuzzer-common.cc", + "test/fuzzer/wasm-fuzzer-common.h", ] configs = [ @@ -3056,7 +3148,7 @@ v8_source_set("wasm_types_section_fuzzer") { deps = [ ":fuzzer_support", - ":lib_wasm_section_fuzzer", + ":lib_wasm_fuzzer_common", ":wasm_module_runner", ] @@ -3076,7 +3168,7 @@ v8_source_set("wasm_names_section_fuzzer") { deps = [ ":fuzzer_support", - ":lib_wasm_section_fuzzer", + ":lib_wasm_fuzzer_common", ":wasm_module_runner", ] @@ -3096,7 +3188,7 @@ v8_source_set("wasm_globals_section_fuzzer") { deps = [ ":fuzzer_support", - ":lib_wasm_section_fuzzer", + ":lib_wasm_fuzzer_common", ":wasm_module_runner", ] @@ -3116,7 +3208,7 @@ v8_source_set("wasm_imports_section_fuzzer") { deps = [ ":fuzzer_support", - ":lib_wasm_section_fuzzer", + ":lib_wasm_fuzzer_common", ":wasm_module_runner", ] @@ -3136,7 +3228,7 @@ v8_source_set("wasm_function_sigs_section_fuzzer") { deps = [ ":fuzzer_support", - ":lib_wasm_section_fuzzer", + ":lib_wasm_fuzzer_common", ":wasm_module_runner", ] @@ -3156,7 +3248,7 @@ v8_source_set("wasm_memory_section_fuzzer") { deps = [ ":fuzzer_support", - ":lib_wasm_section_fuzzer", + ":lib_wasm_fuzzer_common", ":wasm_module_runner", ] @@ -3176,7 +3268,7 @@ v8_source_set("wasm_data_section_fuzzer") { deps = [ ":fuzzer_support", - ":lib_wasm_section_fuzzer", + ":lib_wasm_fuzzer_common", ":wasm_module_runner", ] @@ -3197,6 +3289,7 @@ v8_source_set("wasm_compile_fuzzer") { deps = [ ":fuzzer_support", + ":lib_wasm_fuzzer_common", ":wasm_module_runner", ] diff --git a/deps/v8/ChangeLog b/deps/v8/ChangeLog index 515e5b830e51b5..7ee1b37e798c5c 100644 --- a/deps/v8/ChangeLog +++ b/deps/v8/ChangeLog @@ -1,3 +1,1493 @@ +2017-05-20: Version 6.0.286 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.285 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.284 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.283 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.282 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.281 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.280 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.279 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.278 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.277 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.276 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.275 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.274 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.273 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.272 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.271 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.270 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.269 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.268 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.267 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.266 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.265 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.264 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.263 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.262 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.261 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.260 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.259 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.258 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.257 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.256 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.255 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.254 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.253 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.252 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.251 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.250 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.249 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.248 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.247 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.246 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.245 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.244 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.243 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.242 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.241 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.240 + + Performance and stability improvements on all platforms. + + +2017-05-16: Version 6.0.239 + + Performance and stability improvements on all platforms. + + +2017-05-16: Version 6.0.238 + + Performance and stability improvements on all platforms. + + +2017-05-16: Version 6.0.237 + + Performance and stability improvements on all platforms. + + +2017-05-16: Version 6.0.236 + + Performance and stability improvements on all platforms. + + +2017-05-16: Version 6.0.235 + + Performance and stability improvements on all platforms. + + +2017-05-16: Version 6.0.234 + + Performance and stability improvements on all platforms. + + +2017-05-16: Version 6.0.233 + + Performance and stability improvements on all platforms. + + +2017-05-16: Version 6.0.232 + + Performance and stability improvements on all platforms. + + +2017-05-16: Version 6.0.231 + + Performance and stability improvements on all platforms. + + +2017-05-16: Version 6.0.230 + + Performance and stability improvements on all platforms. + + +2017-05-16: Version 6.0.229 + + Performance and stability improvements on all platforms. + + +2017-05-16: Version 6.0.228 + + Performance and stability improvements on all platforms. + + +2017-05-16: Version 6.0.227 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.226 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.225 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.224 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.223 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.222 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.221 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.220 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.219 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.218 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.217 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.216 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.215 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.214 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.213 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.212 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.211 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.210 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.209 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.208 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.207 + + Performance and stability improvements on all platforms. + + +2017-05-14: Version 6.0.206 + + Performance and stability improvements on all platforms. + + +2017-05-13: Version 6.0.205 + + Performance and stability improvements on all platforms. + + +2017-05-12: Version 6.0.204 + + Performance and stability improvements on all platforms. + + +2017-05-12: Version 6.0.203 + + Performance and stability improvements on all platforms. + + +2017-05-12: Version 6.0.202 + + Performance and stability improvements on all platforms. + + +2017-05-12: Version 6.0.201 + + Performance and stability improvements on all platforms. + + +2017-05-12: Version 6.0.200 + + Performance and stability improvements on all platforms. + + +2017-05-12: Version 6.0.199 + + Performance and stability improvements on all platforms. + + +2017-05-12: Version 6.0.198 + + Performance and stability improvements on all platforms. + + +2017-05-11: Version 6.0.197 + + Performance and stability improvements on all platforms. + + +2017-05-11: Version 6.0.196 + + Performance and stability improvements on all platforms. + + +2017-05-11: Version 6.0.195 + + Performance and stability improvements on all platforms. + + +2017-05-11: Version 6.0.194 + + Performance and stability improvements on all platforms. + + +2017-05-11: Version 6.0.193 + + Performance and stability improvements on all platforms. + + +2017-05-10: Version 6.0.192 + + Performance and stability improvements on all platforms. + + +2017-05-10: Version 6.0.191 + + Performance and stability improvements on all platforms. + + +2017-05-10: Version 6.0.190 + + Performance and stability improvements on all platforms. + + +2017-05-10: Version 6.0.189 + + Performance and stability improvements on all platforms. + + +2017-05-10: Version 6.0.188 + + Performance and stability improvements on all platforms. + + +2017-05-09: Version 6.0.187 + + Performance and stability improvements on all platforms. + + +2017-05-08: Version 6.0.186 + + Performance and stability improvements on all platforms. + + +2017-05-08: Version 6.0.185 + + Performance and stability improvements on all platforms. + + +2017-05-08: Version 6.0.184 + + Performance and stability improvements on all platforms. + + +2017-05-08: Version 6.0.183 + + Performance and stability improvements on all platforms. + + +2017-05-08: Version 6.0.182 + + Performance and stability improvements on all platforms. + + +2017-05-08: Version 6.0.181 + + Performance and stability improvements on all platforms. + + +2017-05-08: Version 6.0.180 + + Performance and stability improvements on all platforms. + + +2017-05-08: Version 6.0.179 + + Performance and stability improvements on all platforms. + + +2017-05-08: Version 6.0.178 + + Performance and stability improvements on all platforms. + + +2017-05-06: Version 6.0.177 + + Performance and stability improvements on all platforms. + + +2017-05-06: Version 6.0.176 + + Performance and stability improvements on all platforms. + + +2017-05-06: Version 6.0.175 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.174 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.173 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.172 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.171 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.170 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.169 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.168 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.167 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.166 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.165 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.164 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.163 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.162 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.161 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.160 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.159 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.158 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.157 + + Performance and stability improvements on all platforms. + + +2017-05-04: Version 6.0.156 + + Performance and stability improvements on all platforms. + + +2017-05-04: Version 6.0.155 + + Performance and stability improvements on all platforms. + + +2017-05-04: Version 6.0.154 + + Performance and stability improvements on all platforms. + + +2017-05-04: Version 6.0.153 + + Performance and stability improvements on all platforms. + + +2017-05-04: Version 6.0.152 + + Performance and stability improvements on all platforms. + + +2017-05-04: Version 6.0.151 + + Performance and stability improvements on all platforms. + + +2017-05-03: Version 6.0.150 + + Performance and stability improvements on all platforms. + + +2017-05-03: Version 6.0.149 + + Performance and stability improvements on all platforms. + + +2017-05-03: Version 6.0.148 + + Performance and stability improvements on all platforms. + + +2017-05-03: Version 6.0.147 + + Performance and stability improvements on all platforms. + + +2017-05-03: Version 6.0.146 + + Performance and stability improvements on all platforms. + + +2017-05-03: Version 6.0.145 + + Performance and stability improvements on all platforms. + + +2017-05-03: Version 6.0.144 + + Performance and stability improvements on all platforms. + + +2017-05-03: Version 6.0.143 + + Performance and stability improvements on all platforms. + + +2017-05-03: Version 6.0.142 + + Performance and stability improvements on all platforms. + + +2017-05-02: Version 6.0.141 + + Performance and stability improvements on all platforms. + + +2017-05-02: Version 6.0.140 + + Performance and stability improvements on all platforms. + + +2017-05-02: Version 6.0.139 + + Performance and stability improvements on all platforms. + + +2017-05-02: Version 6.0.138 + + Performance and stability improvements on all platforms. + + +2017-05-02: Version 6.0.137 + + Performance and stability improvements on all platforms. + + +2017-05-02: Version 6.0.136 + + Performance and stability improvements on all platforms. + + +2017-05-02: Version 6.0.135 + + Performance and stability improvements on all platforms. + + +2017-05-02: Version 6.0.134 + + Performance and stability improvements on all platforms. + + +2017-05-02: Version 6.0.133 + + Performance and stability improvements on all platforms. + + +2017-05-02: Version 6.0.132 + + Performance and stability improvements on all platforms. + + +2017-05-02: Version 6.0.131 + + Performance and stability improvements on all platforms. + + +2017-05-02: Version 6.0.130 + + Performance and stability improvements on all platforms. + + +2017-05-01: Version 6.0.129 + + Performance and stability improvements on all platforms. + + +2017-05-01: Version 6.0.128 + + Performance and stability improvements on all platforms. + + +2017-05-01: Version 6.0.127 + + Performance and stability improvements on all platforms. + + +2017-05-01: Version 6.0.126 + + Performance and stability improvements on all platforms. + + +2017-04-30: Version 6.0.125 + + Performance and stability improvements on all platforms. + + +2017-04-30: Version 6.0.124 + + Performance and stability improvements on all platforms. + + +2017-04-29: Version 6.0.123 + + Performance and stability improvements on all platforms. + + +2017-04-29: Version 6.0.122 + + Performance and stability improvements on all platforms. + + +2017-04-29: Version 6.0.121 + + Performance and stability improvements on all platforms. + + +2017-04-29: Version 6.0.120 + + Performance and stability improvements on all platforms. + + +2017-04-29: Version 6.0.119 + + Performance and stability improvements on all platforms. + + +2017-04-28: Version 6.0.118 + + Performance and stability improvements on all platforms. + + +2017-04-28: Version 6.0.117 + + Performance and stability improvements on all platforms. + + +2017-04-28: Version 6.0.116 + + Performance and stability improvements on all platforms. + + +2017-04-28: Version 6.0.115 + + Performance and stability improvements on all platforms. + + +2017-04-28: Version 6.0.114 + + Performance and stability improvements on all platforms. + + +2017-04-28: Version 6.0.113 + + Performance and stability improvements on all platforms. + + +2017-04-28: Version 6.0.112 + + Performance and stability improvements on all platforms. + + +2017-04-28: Version 6.0.111 + + Performance and stability improvements on all platforms. + + +2017-04-28: Version 6.0.110 + + Performance and stability improvements on all platforms. + + +2017-04-28: Version 6.0.109 + + Performance and stability improvements on all platforms. + + +2017-04-28: Version 6.0.108 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.107 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.106 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.105 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.104 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.103 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.102 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.101 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.100 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.99 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.98 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.97 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.96 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.95 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.94 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.93 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.92 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.91 + + Performance and stability improvements on all platforms. + + +2017-04-26: Version 6.0.90 + + Performance and stability improvements on all platforms. + + +2017-04-26: Version 6.0.89 + + Performance and stability improvements on all platforms. + + +2017-04-26: Version 6.0.88 + + Performance and stability improvements on all platforms. + + +2017-04-26: Version 6.0.87 + + Performance and stability improvements on all platforms. + + +2017-04-26: Version 6.0.86 + + Performance and stability improvements on all platforms. + + +2017-04-25: Version 6.0.85 + + Performance and stability improvements on all platforms. + + +2017-04-25: Version 6.0.84 + + Performance and stability improvements on all platforms. + + +2017-04-25: Version 6.0.83 + + Performance and stability improvements on all platforms. + + +2017-04-25: Version 6.0.82 + + Performance and stability improvements on all platforms. + + +2017-04-25: Version 6.0.81 + + Performance and stability improvements on all platforms. + + +2017-04-25: Version 6.0.80 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.79 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.78 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.77 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.76 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.75 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.74 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.73 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.72 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.71 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.70 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.69 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.68 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.67 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.66 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.65 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.64 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.63 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.62 + + Performance and stability improvements on all platforms. + + +2017-04-22: Version 6.0.61 + + Performance and stability improvements on all platforms. + + +2017-04-21: Version 6.0.60 + + Performance and stability improvements on all platforms. + + +2017-04-21: Version 6.0.59 + + Performance and stability improvements on all platforms. + + +2017-04-21: Version 6.0.58 + + Performance and stability improvements on all platforms. + + +2017-04-21: Version 6.0.57 + + Performance and stability improvements on all platforms. + + +2017-04-21: Version 6.0.56 + + Performance and stability improvements on all platforms. + + +2017-04-21: Version 6.0.55 + + Performance and stability improvements on all platforms. + + +2017-04-21: Version 6.0.54 + + Performance and stability improvements on all platforms. + + +2017-04-21: Version 6.0.53 + + Performance and stability improvements on all platforms. + + +2017-04-21: Version 6.0.52 + + Performance and stability improvements on all platforms. + + +2017-04-20: Version 6.0.51 + + Performance and stability improvements on all platforms. + + +2017-04-20: Version 6.0.50 + + Performance and stability improvements on all platforms. + + +2017-04-20: Version 6.0.49 + + Performance and stability improvements on all platforms. + + +2017-04-20: Version 6.0.48 + + Performance and stability improvements on all platforms. + + +2017-04-20: Version 6.0.47 + + Performance and stability improvements on all platforms. + + +2017-04-20: Version 6.0.46 + + Performance and stability improvements on all platforms. + + +2017-04-20: Version 6.0.45 + + Performance and stability improvements on all platforms. + + +2017-04-20: Version 6.0.44 + + Performance and stability improvements on all platforms. + + +2017-04-20: Version 6.0.43 + + Performance and stability improvements on all platforms. + + +2017-04-20: Version 6.0.42 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.41 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.40 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.39 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.38 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.37 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.36 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.35 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.34 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.33 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.32 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.31 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.30 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.29 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.28 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.27 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.26 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.25 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.24 + + Performance and stability improvements on all platforms. + + +2017-04-18: Version 6.0.23 + + Performance and stability improvements on all platforms. + + +2017-04-18: Version 6.0.22 + + Performance and stability improvements on all platforms. + + +2017-04-18: Version 6.0.21 + + Performance and stability improvements on all platforms. + + +2017-04-18: Version 6.0.20 + + Performance and stability improvements on all platforms. + + +2017-04-18: Version 6.0.19 + + Performance and stability improvements on all platforms. + + +2017-04-18: Version 6.0.18 + + Performance and stability improvements on all platforms. + + +2017-04-18: Version 6.0.17 + + Performance and stability improvements on all platforms. + + +2017-04-18: Version 6.0.16 + + Performance and stability improvements on all platforms. + + +2017-04-18: Version 6.0.15 + + Performance and stability improvements on all platforms. + + +2017-04-18: Version 6.0.14 + + Performance and stability improvements on all platforms. + + +2017-04-18: Version 6.0.13 + + Performance and stability improvements on all platforms. + + +2017-04-18: Version 6.0.12 + + Performance and stability improvements on all platforms. + + +2017-04-18: Version 6.0.11 + + Performance and stability improvements on all platforms. + + +2017-04-17: Version 6.0.10 + + Performance and stability improvements on all platforms. + + +2017-04-17: Version 6.0.9 + + Performance and stability improvements on all platforms. + + +2017-04-17: Version 6.0.8 + + Performance and stability improvements on all platforms. + + +2017-04-17: Version 6.0.7 + + Performance and stability improvements on all platforms. + + +2017-04-17: Version 6.0.6 + + Performance and stability improvements on all platforms. + + +2017-04-17: Version 6.0.5 + + Performance and stability improvements on all platforms. + + +2017-04-16: Version 6.0.4 + + Performance and stability improvements on all platforms. + + +2017-04-15: Version 6.0.3 + + Performance and stability improvements on all platforms. + + +2017-04-15: Version 6.0.2 + + Performance and stability improvements on all platforms. + + +2017-04-14: Version 6.0.1 + + Performance and stability improvements on all platforms. + + +2017-04-13: Version 5.9.223 + + Performance and stability improvements on all platforms. + + +2017-04-13: Version 5.9.222 + + Performance and stability improvements on all platforms. + + +2017-04-13: Version 5.9.221 + + Performance and stability improvements on all platforms. + + +2017-04-12: Version 5.9.220 + + Performance and stability improvements on all platforms. + + +2017-04-12: Version 5.9.219 + + Performance and stability improvements on all platforms. + + +2017-04-12: Version 5.9.218 + + Performance and stability improvements on all platforms. + + +2017-04-12: Version 5.9.217 + + Performance and stability improvements on all platforms. + + +2017-04-12: Version 5.9.216 + + Performance and stability improvements on all platforms. + + +2017-04-12: Version 5.9.215 + + Performance and stability improvements on all platforms. + + +2017-04-12: Version 5.9.214 + + Performance and stability improvements on all platforms. + + +2017-04-12: Version 5.9.213 + + Performance and stability improvements on all platforms. + + +2017-04-11: Version 5.9.212 + + Performance and stability improvements on all platforms. + + 2017-04-11: Version 5.9.211 Performance and stability improvements on all platforms. diff --git a/deps/v8/DEPS b/deps/v8/DEPS index aeeb0e5911d716..1a55e663c6b17a 100644 --- a/deps/v8/DEPS +++ b/deps/v8/DEPS @@ -8,23 +8,23 @@ vars = { deps = { "v8/build": - Var("chromium_url") + "/chromium/src/build.git" + "@" + "94c06fe70f3f6429c59e3ec0f6acd4f6710050b2", + Var("chromium_url") + "/chromium/src/build.git" + "@" + "1caf3a69f3b0379c9fef2493aa1b3cda96e17d7b", "v8/tools/gyp": - Var("chromium_url") + "/external/gyp.git" + "@" + "e7079f0e0e14108ab0dba58728ff219637458563", + Var("chromium_url") + "/external/gyp.git" + "@" + "eb296f67da078ec01f5e3a9ea9cdc6d26d680161", "v8/third_party/icu": - Var("chromium_url") + "/chromium/deps/icu.git" + "@" + "450be73c9ee8ae29d43d4fdc82febb2a5f62bfb5", + Var("chromium_url") + "/chromium/deps/icu.git" + "@" + "c844075aa0f1758d04f9192825f1b1e7e607992e", "v8/third_party/instrumented_libraries": - Var("chromium_url") + "/chromium/src/third_party/instrumented_libraries.git" + "@" + "05d5695a73e78b9cae55b8579fd8bf22b85eb283", + Var("chromium_url") + "/chromium/src/third_party/instrumented_libraries.git" + "@" + "644afd349826cb68204226a16c38bde13abe9c3c", "v8/buildtools": - Var("chromium_url") + "/chromium/buildtools.git" + "@" + "d3074448541662f242bcee623049c13a231b5648", + Var("chromium_url") + "/chromium/buildtools.git" + "@" + "98f00fa10dbad2cdbb2e297a66c3d6d5bc3994f3", "v8/base/trace_event/common": - Var("chromium_url") + "/chromium/src/base/trace_event/common.git" + "@" + "06294c8a4a6f744ef284cd63cfe54dbf61eea290", + Var("chromium_url") + "/chromium/src/base/trace_event/common.git" + "@" + "39a3450531fc73432e963db8668695d2e8f13053", "v8/third_party/jinja2": Var("chromium_url") + "/chromium/src/third_party/jinja2.git" + "@" + "d34383206fa42d52faa10bb9931d6d538f3a57e0", "v8/third_party/markupsafe": Var("chromium_url") + "/chromium/src/third_party/markupsafe.git" + "@" + "8f45f5cfa0009d2a70589bcda0349b8cb2b72783", "v8/tools/swarming_client": - Var('chromium_url') + '/external/swarming.client.git' + '@' + "11e31afa5d330756ff87aa12064bb5d032896cb5", + Var('chromium_url') + '/external/swarming.client.git' + '@' + "a941a089ff1000403078b74cb628eb430f07d271", "v8/testing/gtest": Var("chromium_url") + "/external/github.com/google/googletest.git" + "@" + "6f8a66431cb592dad629028a50b3dd418a408c87", "v8/testing/gmock": @@ -38,7 +38,7 @@ deps = { "v8/test/test262/harness": Var("chromium_url") + "/external/github.com/test262-utils/test262-harness-py.git" + "@" + "0f2acdd882c84cff43b9d60df7574a1901e2cdcd", "v8/tools/clang": - Var("chromium_url") + "/chromium/src/tools/clang.git" + "@" + "49df471350a60efaec6951f321dd65475496ba17", + Var("chromium_url") + "/chromium/src/tools/clang.git" + "@" + "05f306039aa5029fa88768690e5c512097419f9d", "v8/test/wasm-js": Var("chromium_url") + "/external/github.com/WebAssembly/spec.git" + "@" + "07fd6430f879d36928d179a62d9bdeed82286065", } @@ -46,9 +46,9 @@ deps = { deps_os = { "android": { "v8/third_party/android_tools": - Var("chromium_url") + "/android_tools.git" + "@" + "b65c4776dac2cf1b80e969b3b2d4e081b9c84f29", + Var("chromium_url") + "/android_tools.git" + "@" + "cb6bc21107001e2f2eeee2707b482b2b755baf51", "v8/third_party/catapult": - Var('chromium_url') + "/external/github.com/catapult-project/catapult.git" + "@" + "9a55abab029cb9ae94f5160ded11b09a4638a955", + Var('chromium_url') + "/external/github.com/catapult-project/catapult.git" + "@" + "08a6e0ac161db7309d8f9cad0ccd38e0b1fd41e0", }, } @@ -202,25 +202,14 @@ hooks = [ ], }, { - "name": "wasm_fuzzer", + "name": "wasm_spec_tests", "pattern": ".", "action": [ "download_from_google_storage", "--no_resume", "--no_auth", "-u", - "--bucket", "v8-wasm-fuzzer", - "-s", "v8/test/fuzzer/wasm.tar.gz.sha1", - ], - }, - { - "name": "wasm_asmjs_fuzzer", - "pattern": ".", - "action": [ "download_from_google_storage", - "--no_resume", - "--no_auth", - "-u", - "--bucket", "v8-wasm-asmjs-fuzzer", - "-s", "v8/test/fuzzer/wasm_asmjs.tar.gz.sha1", + "--bucket", "v8-wasm-spec-tests", + "-s", "v8/test/wasm-spec-tests/tests.tar.gz.sha1", ], }, { diff --git a/deps/v8/Makefile b/deps/v8/Makefile index 299d4aa09c97ac..ed5b3a7fabc325 100644 --- a/deps/v8/Makefile +++ b/deps/v8/Makefile @@ -240,7 +240,6 @@ ifdef android_ndk_root endif # ----------------- available targets: -------------------- -# - "grokdump": rebuilds heap constants lists used by grokdump # - any arch listed in ARCHES (see below) # - any mode listed in MODES # - every combination ., e.g. "ia32.release" @@ -467,12 +466,6 @@ $(ENVFILE).new: $(eval CXX_TARGET_ARCH:=$(subst x86_64,x64,$(CXX_TARGET_ARCH))) @mkdir -p $(OUTDIR); echo "GYPFLAGS=$(GYPFLAGS) -Dtarget_arch=$(CXX_TARGET_ARCH)" > $(ENVFILE).new; -# Heap constants for grokdump. -DUMP_FILE = tools/v8heapconst.py -grokdump: ia32.release - @cat $(DUMP_FILE).tmpl > $(DUMP_FILE) - @$(OUTDIR)/ia32.release/d8 --dump-heap-constants >> $(DUMP_FILE) - # Support for the GNU GLOBAL Source Code Tag System. gtags.files: $(GYPFILES) $(ENVFILE) @find include src test -name '*.h' -o -name '*.cc' -o -name '*.c' > $@ diff --git a/deps/v8/PRESUBMIT.py b/deps/v8/PRESUBMIT.py index 6aa94a01b37e8b..7d7faec69614be 100644 --- a/deps/v8/PRESUBMIT.py +++ b/deps/v8/PRESUBMIT.py @@ -43,6 +43,12 @@ ) +# Regular expression that matches code which should not be run through cpplint. +_NO_LINT_PATHS = ( + r'src[\\\/]base[\\\/]export-template\.h', +) + + # Regular expression that matches code only used for test binaries # (best effort). _TEST_CODE_EXCLUDED_PATHS = ( @@ -70,9 +76,15 @@ def _V8PresubmitChecks(input_api, output_api): from presubmit import SourceProcessor from presubmit import StatusFilesProcessor + def FilterFile(affected_file): + return input_api.FilterSourceFile( + affected_file, + white_list=None, + black_list=_NO_LINT_PATHS) + results = [] if not CppLintProcessor().RunOnFiles( - input_api.AffectedFiles(include_deletes=False)): + input_api.AffectedFiles(file_filter=FilterFile, include_deletes=False)): results.append(output_api.PresubmitError("C++ lint check failed")) if not SourceProcessor().RunOnFiles( input_api.AffectedFiles(include_deletes=False)): diff --git a/deps/v8/base/trace_event/common/trace_event_common.h b/deps/v8/base/trace_event/common/trace_event_common.h index e87665b8cdb12b..76d3039250ed89 100644 --- a/deps/v8/base/trace_event/common/trace_event_common.h +++ b/deps/v8/base/trace_event/common/trace_event_common.h @@ -258,6 +258,12 @@ TRACE_EVENT_PHASE_INSTANT, category_group, name, timestamp, \ TRACE_EVENT_FLAG_NONE | scope) +#define TRACE_EVENT_INSTANT_WITH_TIMESTAMP1(category_group, name, scope, \ + timestamp, arg_name, arg_val) \ + INTERNAL_TRACE_EVENT_ADD_WITH_TIMESTAMP( \ + TRACE_EVENT_PHASE_INSTANT, category_group, name, timestamp, \ + TRACE_EVENT_FLAG_NONE | scope, arg_name, arg_val) + // Records a single BEGIN event called "name" immediately, with 0, 1 or 2 // associated arguments. If the category is not enabled, then this // does nothing. diff --git a/deps/v8/codereview.settings b/deps/v8/codereview.settings index 532e4b4d7b0c07..bff4e38ba51885 100644 --- a/deps/v8/codereview.settings +++ b/deps/v8/codereview.settings @@ -1,8 +1,6 @@ +PROJECT: v8 +GERRIT_HOST: True CODE_REVIEW_SERVER: https://codereview.chromium.org CC_LIST: v8-reviews@googlegroups.com 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 -PROJECT: v8 -PENDING_REF_PREFIX: refs/pending/ diff --git a/deps/v8/gypfiles/all.gyp b/deps/v8/gypfiles/all.gyp index bbad66741c7e26..bc9d9650eb5958 100644 --- a/deps/v8/gypfiles/all.gyp +++ b/deps/v8/gypfiles/all.gyp @@ -10,6 +10,7 @@ 'dependencies': [ '../src/d8.gyp:d8', '../test/inspector/inspector.gyp:*', + '../test/mkgrokdump/mkgrokdump.gyp:*', ], 'conditions': [ ['component!="shared_library"', { diff --git a/deps/v8/gypfiles/coverage_wrapper.py b/deps/v8/gypfiles/coverage_wrapper.py index 5b365d8e63d911..d5fdee43cfb761 100755 --- a/deps/v8/gypfiles/coverage_wrapper.py +++ b/deps/v8/gypfiles/coverage_wrapper.py @@ -31,6 +31,8 @@ def remove_if_exists(string_list, item): remove_if_exists(args, '-fsanitize-coverage=func') remove_if_exists(args, '-fsanitize-coverage=bb') remove_if_exists(args, '-fsanitize-coverage=edge') + remove_if_exists(args, '-fsanitize-coverage=trace-pc-guard') + remove_if_exists(args, '-fsanitize-coverage=bb,trace-pc-guard') break sys.exit(subprocess.check_call(args)) diff --git a/deps/v8/gypfiles/features.gypi b/deps/v8/gypfiles/features.gypi index f6a442f66341d5..b38735e162ec8e 100644 --- a/deps/v8/gypfiles/features.gypi +++ b/deps/v8/gypfiles/features.gypi @@ -95,7 +95,7 @@ 'defines': ['VERIFY_HEAP',], }], ['v8_trace_maps==1', { - 'defines': ['TRACE_MAPS',], + 'defines': ['V8_TRACE_MAPS',], }], ['v8_enable_verify_predictable==1', { 'defines': ['VERIFY_PREDICTABLE',], @@ -110,7 +110,7 @@ 'defines': ['V8_IMMINENT_DEPRECATION_WARNINGS',], }], ['v8_enable_i18n_support==1', { - 'defines': ['V8_I18N_SUPPORT',], + 'defines': ['V8_INTL_SUPPORT',], }], ['v8_use_snapshot=="true" and v8_use_external_startup_data==1', { 'defines': ['V8_USE_EXTERNAL_STARTUP_DATA',], @@ -123,7 +123,7 @@ 'DebugBaseCommon': { 'abstract': 1, 'variables': { - 'v8_enable_handle_zapping%': 1, + 'v8_enable_handle_zapping%': 0, }, 'conditions': [ ['v8_enable_handle_zapping==1', { @@ -133,7 +133,7 @@ }, # Debug 'Release': { 'variables': { - 'v8_enable_handle_zapping%': 0, + 'v8_enable_handle_zapping%': 1, }, 'conditions': [ ['v8_enable_handle_zapping==1', { diff --git a/deps/v8/gypfiles/standalone.gypi b/deps/v8/gypfiles/standalone.gypi index 986aaaaebb224c..4c805bf6432ff3 100644 --- a/deps/v8/gypfiles/standalone.gypi +++ b/deps/v8/gypfiles/standalone.gypi @@ -780,6 +780,12 @@ # Don't warn about unrecognized command line option. '-Wno-gnu-zero-variadic-macro-arguments', ], + 'cflags' : [ + # Disable gcc warnings for optimizations based on the assumption + # that signed overflow does not occur. Generates false positives + # (see http://crbug.com/v8/6341). + "-Wno-strict-overflow", + ], }], [ 'clang==1 and (v8_target_arch=="x64" or v8_target_arch=="arm64" \ or v8_target_arch=="mips64el")', { @@ -855,7 +861,6 @@ }], ], 'msvs_cygwin_shell': 0, - 'msvs_cygwin_dirs': ['<(DEPTH)/third_party/cygwin'], 'msvs_disabled_warnings': [ # C4091: 'typedef ': ignored on left of 'X' when no variable is # declared. diff --git a/deps/v8/gypfiles/toolchain.gypi b/deps/v8/gypfiles/toolchain.gypi index 815070a508379c..6b82cfbd491db9 100644 --- a/deps/v8/gypfiles/toolchain.gypi +++ b/deps/v8/gypfiles/toolchain.gypi @@ -1245,7 +1245,7 @@ 'OBJECT_PRINT', 'VERIFY_HEAP', 'DEBUG', - 'TRACE_MAPS' + 'V8_TRACE_MAPS' ], 'conditions': [ ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" or \ diff --git a/deps/v8/include/libplatform/libplatform.h b/deps/v8/include/libplatform/libplatform.h index f77742f0f6b00d..e9450456299698 100644 --- a/deps/v8/include/libplatform/libplatform.h +++ b/deps/v8/include/libplatform/libplatform.h @@ -15,6 +15,11 @@ namespace platform { enum class IdleTaskSupport { kDisabled, kEnabled }; enum class InProcessStackDumping { kDisabled, kEnabled }; +enum class MessageLoopBehavior : bool { + kDoNotWait = false, + kWaitForWork = true +}; + /** * Returns a new instance of the default v8::Platform implementation. * @@ -36,12 +41,16 @@ V8_PLATFORM_EXPORT v8::Platform* CreateDefaultPlatform( * Pumps the message loop for the given isolate. * * The caller has to make sure that this is called from the right thread. - * Returns true if a task was executed, and false otherwise. This call does - * not block if no task is pending. The |platform| has to be created using - * |CreateDefaultPlatform|. + * Returns true if a task was executed, and false otherwise. Unless requested + * through the |behavior| parameter, this call does not block if no task is + * pending. The |platform| has to be created using |CreateDefaultPlatform|. */ -V8_PLATFORM_EXPORT bool PumpMessageLoop(v8::Platform* platform, - v8::Isolate* isolate); +V8_PLATFORM_EXPORT bool PumpMessageLoop( + v8::Platform* platform, v8::Isolate* isolate, + MessageLoopBehavior behavior = MessageLoopBehavior::kDoNotWait); + +V8_PLATFORM_EXPORT void EnsureEventLoopInitialized(v8::Platform* platform, + v8::Isolate* isolate); /** * Runs pending idle tasks for at most |idle_time_in_seconds| seconds. diff --git a/deps/v8/include/v8-value-serializer-version.h b/deps/v8/include/v8-value-serializer-version.h new file mode 100644 index 00000000000000..c72911c64dc571 --- /dev/null +++ b/deps/v8/include/v8-value-serializer-version.h @@ -0,0 +1,24 @@ +// Copyright 2017 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +/** + * Compile-time constants. + * + * This header provides access to information about the value serializer at + * compile time, without declaring or defining any symbols that require linking + * to V8. + */ + +#ifndef INCLUDE_V8_VALUE_SERIALIZER_VERSION_H_ +#define INCLUDE_V8_VALUE_SERIALIZER_VERSION_H_ + +#include + +namespace v8 { + +constexpr uint32_t CurrentValueSerializerFormatVersion() { return 13; } + +} // namespace v8 + +#endif // INCLUDE_V8_VALUE_SERIALIZER_VERSION_H_ diff --git a/deps/v8/include/v8-version.h b/deps/v8/include/v8-version.h index 0bfc4e8c5df9b0..0889459ca778da 100644 --- a/deps/v8/include/v8-version.h +++ b/deps/v8/include/v8-version.h @@ -8,10 +8,10 @@ // These macros define the version number for the current version. // NOTE these macros are used by some of the tool scripts and the build // system so their names cannot be changed without changing the scripts. -#define V8_MAJOR_VERSION 5 -#define V8_MINOR_VERSION 9 -#define V8_BUILD_NUMBER 211 -#define V8_PATCH_LEVEL 39 +#define V8_MAJOR_VERSION 6 +#define V8_MINOR_VERSION 0 +#define V8_BUILD_NUMBER 286 +#define V8_PATCH_LEVEL 52 // Use 1 for candidates and 0 otherwise. // (Boolean macro values are not supported by all preprocessors.) diff --git a/deps/v8/include/v8.h b/deps/v8/include/v8.h index ce7741a08c0364..1b3117ef34c67d 100644 --- a/deps/v8/include/v8.h +++ b/deps/v8/include/v8.h @@ -150,6 +150,9 @@ class FunctionCallbackArguments; class GlobalHandles; } // namespace internal +namespace debug { +class ConsoleCallArguments; +} // namespace debug // --- Handles --- @@ -1092,7 +1095,8 @@ class V8_EXPORT Module { /** * ModuleDeclarationInstantiation * - * Returns false if an exception occurred during instantiation. + * Returns false if an exception occurred during instantiation. (In the case + * where the callback throws an exception, that exception is propagated.) */ V8_WARN_UNUSED_RESULT bool Instantiate(Local context, ResolveCallback callback); @@ -1789,8 +1793,6 @@ class V8_EXPORT ValueSerializer { virtual void FreeBufferMemory(void* buffer); }; - static uint32_t GetCurrentDataFormatVersion(); - explicit ValueSerializer(Isolate* isolate); ValueSerializer(Isolate* isolate, Delegate* delegate); ~ValueSerializer(); @@ -2317,6 +2319,8 @@ class V8_EXPORT Value : public Data { Local TypeOf(Isolate*); + Maybe InstanceOf(Local context, Local object); + private: V8_INLINE bool QuickIsUndefined() const; V8_INLINE bool QuickIsNull() const; @@ -2791,11 +2795,16 @@ class V8_EXPORT Symbol : public Name { static Local ForApi(Isolate *isolate, Local name); // Well-known symbols + static Local GetHasInstance(Isolate* isolate); + static Local GetIsConcatSpreadable(Isolate* isolate); static Local GetIterator(Isolate* isolate); - static Local GetUnscopables(Isolate* isolate); + static Local GetMatch(Isolate* isolate); + static Local GetReplace(Isolate* isolate); + static Local GetSearch(Isolate* isolate); + static Local GetSplit(Isolate* isolate); static Local GetToPrimitive(Isolate* isolate); static Local GetToStringTag(Isolate* isolate); - static Local GetIsConcatSpreadable(Isolate* isolate); + static Local GetUnscopables(Isolate* isolate); V8_INLINE static Symbol* Cast(Value* obj); @@ -3070,12 +3079,12 @@ class V8_EXPORT Object : public Value { Local context, Local key); /** - * Returns Object.getOwnPropertyDescriptor as per ES5 section 15.2.3.3. + * Returns Object.getOwnPropertyDescriptor as per ES2016 section 19.1.2.6. */ V8_DEPRECATED("Use maybe version", - Local GetOwnPropertyDescriptor(Local key)); + Local GetOwnPropertyDescriptor(Local key)); V8_WARN_UNUSED_RESULT MaybeLocal GetOwnPropertyDescriptor( - Local context, Local key); + Local context, Local key); V8_DEPRECATE_SOON("Use maybe version", bool Has(Local key)); /** @@ -3135,6 +3144,16 @@ class V8_EXPORT Object : public Value { PropertyAttribute attribute = None, AccessControl settings = DEFAULT); + /** + * Sets a native data property like Template::SetNativeDataProperty, but + * this method sets on this object directly. + */ + V8_WARN_UNUSED_RESULT Maybe SetNativeDataProperty( + Local context, Local name, + AccessorNameGetterCallback getter, + AccessorNameSetterCallback setter = nullptr, + Local data = Local(), PropertyAttribute attributes = None); + /** * Functionality for private properties. * This is an experimental feature, use at your own risk. @@ -3578,16 +3597,34 @@ class ReturnValue { template class FunctionCallbackInfo { public: + /** The number of available arguments. */ V8_INLINE int Length() const; + /** Accessor for the available arguments. */ V8_INLINE Local operator[](int i) const; V8_INLINE V8_DEPRECATED("Use Data() to explicitly pass Callee instead", Local Callee() const); + /** Returns the receiver. This corresponds to the "this" value. */ V8_INLINE Local This() const; + /** + * If the callback was created without a Signature, this is the same + * value as This(). If there is a signature, and the signature didn't match + * This() but one of its hidden prototypes, this will be the respective + * hidden prototype. + * + * Note that this is not the prototype of This() on which the accessor + * referencing this callback was found (which in V8 internally is often + * referred to as holder [sic]). + */ V8_INLINE Local Holder() const; + /** For construct calls, this returns the "new.target" value. */ V8_INLINE Local NewTarget() const; + /** Indicates whether this is a regular call or a construct call. */ V8_INLINE bool IsConstructCall() const; + /** The data argument specified when creating the callback. */ V8_INLINE Local Data() const; + /** The current Isolate. */ V8_INLINE Isolate* GetIsolate() const; + /** The ReturnValue for the call. */ V8_INLINE ReturnValue GetReturnValue() const; // This shouldn't be public, but the arm compiler needs it. static const int kArgsLength = 8; @@ -3595,6 +3632,7 @@ class FunctionCallbackInfo { protected: friend class internal::FunctionCallbackArguments; friend class internal::CustomArguments; + friend class debug::ConsoleCallArguments; static const int kHolderIndex = 0; static const int kIsolateIndex = 1; static const int kReturnValueDefaultValueIndex = 2; @@ -4158,12 +4196,42 @@ class V8_EXPORT ArrayBuffer : public Object { */ virtual void* AllocateUninitialized(size_t length) = 0; + /** + * Reserved |length| bytes, but do not commit the memory. Must call + * |SetProtection| to make memory accessible. + */ + // TODO(eholk): make this pure virtual once blink implements this. + virtual void* Reserve(size_t length); + /** * Free the memory block of size |length|, pointed to by |data|. * That memory is guaranteed to be previously allocated by |Allocate|. */ virtual void Free(void* data, size_t length) = 0; + enum class AllocationMode { kNormal, kReservation }; + + /** + * Free the memory block of size |length|, pointed to by |data|. + * That memory is guaranteed to be previously allocated by |Allocate| or + * |Reserve|, depending on |mode|. + */ + // TODO(eholk): make this pure virtual once blink implements this. + virtual void Free(void* data, size_t length, AllocationMode mode); + + enum class Protection { kNoAccess, kReadWrite }; + + /** + * Change the protection on a region of memory. + * + * On platforms that make a distinction between reserving and committing + * memory, changing the protection to kReadWrite must also ensure the memory + * is committed. + */ + // TODO(eholk): make this pure virtual once blink implements this. + virtual void SetProtection(void* data, size_t length, + Protection protection); + /** * malloc/free based convenience allocator. * @@ -5745,9 +5813,13 @@ class V8_EXPORT ObjectTemplate : public Template { friend class FunctionTemplate; }; - /** * A Signature specifies which receiver is valid for a function. + * + * A receiver matches a given signature if the receiver (or any of its + * hidden prototypes) was created from the signature's FunctionTemplate, or + * from a FunctionTemplate that inherits directly or indirectly from the + * signature's FunctionTemplate. */ class V8_EXPORT Signature : public Data { public: @@ -5878,8 +5950,12 @@ class V8_EXPORT ResourceConstraints { void set_max_old_space_size(int limit_in_mb) { max_old_space_size_ = limit_in_mb; } - int max_executable_size() const { return max_executable_size_; } - void set_max_executable_size(int limit_in_mb) { + V8_DEPRECATE_SOON("max_executable_size_ is subsumed by max_old_space_size_", + int max_executable_size() const) { + return max_executable_size_; + } + V8_DEPRECATE_SOON("max_executable_size_ is subsumed by max_old_space_size_", + void set_max_executable_size(int limit_in_mb)) { max_executable_size_ = limit_in_mb; } uint32_t* stack_limit() const { return stack_limit_; } @@ -6154,6 +6230,8 @@ enum GCType { * - kGCCallbackFlagCollectAllAvailableGarbage: The GC callback is called * in a phase where V8 is trying to collect all available garbage * (e.g., handling a low memory notification). + * - kGCCallbackScheduleIdleGarbageCollection: The GC callback is called to + * trigger an idle garbage collection. */ enum GCCallbackFlags { kNoGCCallbackFlags = 0, @@ -6162,6 +6240,7 @@ enum GCCallbackFlags { kGCCallbackFlagSynchronousPhantomCallbackProcessing = 1 << 3, kGCCallbackFlagCollectAllAvailableGarbage = 1 << 4, kGCCallbackFlagCollectAllExternalMemory = 1 << 5, + kGCCallbackScheduleIdleGarbageCollection = 1 << 6, }; typedef void (*GCCallback)(GCType type, GCCallbackFlags flags); @@ -6188,9 +6267,8 @@ class V8_EXPORT HeapStatistics { size_t peak_malloced_memory() { return peak_malloced_memory_; } /** - * Returns a 0/1 boolean, which signifies whether the |--zap_code_space| - * option is enabled or not, which makes V8 overwrite heap garbage with a bit - * pattern. + * Returns a 0/1 boolean, which signifies whether the V8 overwrite heap + * garbage with a bit pattern. */ size_t does_zap_garbage() { return does_zap_garbage_; } @@ -6607,7 +6685,7 @@ class V8_EXPORT Isolate { /** * Whether calling Atomics.wait (a function that may block) is allowed in - * this isolate. + * this isolate. This can also be configured via SetAllowAtomicsWait. */ bool allow_atomics_wait; @@ -7467,6 +7545,13 @@ class V8_EXPORT Isolate { */ bool IsInUse(); + /** + * Set whether calling Atomics.wait (a function that may block) is allowed in + * this isolate. This can also be configured via + * CreateParams::allow_atomics_wait. + */ + void SetAllowAtomicsWait(bool allow); + Isolate() = delete; ~Isolate() = delete; Isolate(const Isolate&) = delete; @@ -8365,16 +8450,14 @@ class V8_EXPORT Context { Isolate* GetIsolate(); /** - * The field at kDebugIdIndex is reserved for V8 debugger implementation. - * The value is propagated to the scripts compiled in given Context and - * can be used for filtering scripts. + * The field at kDebugIdIndex used to be reserved for the inspector. + * It now serves no purpose. */ enum EmbedderDataFields { kDebugIdIndex = 0 }; /** * Gets the embedder data with the given index, which must have been set by a - * previous call to SetEmbedderData with the same index. Note that index 0 - * currently has a special meaning for Chrome's debugger. + * previous call to SetEmbedderData with the same index. */ V8_INLINE Local GetEmbedderData(int index); diff --git a/deps/v8/include/v8config.h b/deps/v8/include/v8config.h index c34cb69a89112e..964949c24c3293 100644 --- a/deps/v8/include/v8config.h +++ b/deps/v8/include/v8config.h @@ -316,7 +316,7 @@ // V8_NORETURN void MyAbort() { abort(); } #if V8_HAS_ATTRIBUTE_NORETURN # define V8_NORETURN __attribute__((noreturn)) -#elif HAS_DECLSPEC_NORETURN +#elif V8_HAS_DECLSPEC_NORETURN # define V8_NORETURN __declspec(noreturn) #else # define V8_NORETURN /* NOT SUPPORTED */ diff --git a/deps/v8/infra/config/cq.cfg b/deps/v8/infra/config/cq.cfg index e9bc8fdd3c2c9d..dcf8e5c0b726e1 100644 --- a/deps/v8/infra/config/cq.cfg +++ b/deps/v8/infra/config/cq.cfg @@ -32,10 +32,7 @@ verifiers { buckets { name: "master.tryserver.v8" builders { name: "v8_android_arm_compile_rel" } - builders { - name: "v8_node_linux64_rel" - experiment_percentage: 100 - } + builders { name: "v8_node_linux64_rel" } builders { name: "v8_linux64_asan_rel_ng" } builders { name: "v8_linux64_asan_rel_ng_triggered" @@ -46,6 +43,7 @@ verifiers { name: "v8_linux64_avx2_rel_ng_triggered" triggered_by: "v8_linux64_avx2_rel_ng" } + builders { name: "v8_linux64_gcc_compile_dbg" } builders { name: "v8_linux64_gyp_rel_ng" } builders { name: "v8_linux64_gyp_rel_ng_triggered" diff --git a/deps/v8/infra/mb/mb_config.pyl b/deps/v8/infra/mb/mb_config.pyl index 0df30d457129f9..1a8247fc2b71af 100644 --- a/deps/v8/infra/mb/mb_config.pyl +++ b/deps/v8/infra/mb/mb_config.pyl @@ -84,6 +84,8 @@ # Sanitizers. 'V8 Linux64 ASAN': 'gn_release_x64_asan', 'V8 Linux64 TSAN': 'gn_release_x64_tsan', + 'V8 Linux64 TSAN - concurrent marking': + 'gn_release_x64_tsan_concurrent_marking', 'V8 Linux - arm64 - sim - MSAN': 'gn_release_simulate_arm64_msan', # Clusterfuzz. 'V8 Linux64 - release builder': 'gn_release_x64_correctness_fuzzer', @@ -98,6 +100,7 @@ 'gn_debug_simulate_mipsel_asan_edge', # Misc. 'V8 Linux gcc 4.8': 'gn_release_x86_gcc', + 'V8 Linux64 gcc 4.8 - debug': 'gn_debug_x64_gcc', # FYI. 'V8 Linux - swarming staging': 'gn_release_x64', # TODO(machenbach): Figure out if symbolized is still needed. The @@ -177,6 +180,7 @@ 'v8_linux_nosnap_dbg': 'gn_debug_x86_no_snap_trybot', 'v8_linux_gcc_compile_rel': 'gn_release_x86_gcc_minimal_symbols', 'v8_linux_gcc_rel': 'gn_release_x86_gcc_minimal_symbols', + 'v8_linux64_gcc_compile_dbg': 'gn_debug_x64_gcc', 'v8_linux64_rel_ng': 'gn_release_x64_valgrind_trybot', 'v8_linux64_verify_csa_rel_ng': 'gn_release_x64_verify_csa', 'v8_linux64_gyp_rel_ng': 'gyp_release_x64', @@ -187,6 +191,8 @@ 'v8_linux64_sanitizer_coverage_rel': 'gyp_release_x64_asan_minimal_symbols_coverage', 'v8_linux64_tsan_rel': 'gn_release_x64_tsan_minimal_symbols', + 'v8_linux64_tsan_concurrent_marking_rel_ng': + 'gn_release_x64_tsan_concurrent_marking_minimal_symbols', 'v8_win_dbg': 'gn_debug_x86_trybot', 'v8_win_compile_dbg': 'gn_debug_x86_trybot', 'v8_win_rel_ng': 'gn_release_x86_trybot', @@ -298,7 +304,8 @@ 'gn_debug_simulate_arm64_asan_edge': [ 'gn', 'debug_bot', 'simulate_arm64', 'asan', 'lsan', 'edge'], 'gn_debug_simulate_arm64_no_snap': [ - 'gn', 'debug_bot', 'simulate_arm64', 'swarming', 'v8_snapshot_none'], + 'gn', 'debug', 'simulate_arm64', 'shared', 'goma', + 'v8_optimized_debug', 'swarming', 'v8_snapshot_none'], 'gn_debug_simulate_mipsel_asan_edge': [ 'gn', 'debug_bot', 'simulate_mipsel', 'asan', 'edge'], @@ -360,6 +367,12 @@ 'gn', 'release_trybot', 'x64', 'swarming'], 'gn_release_x64_tsan': [ 'gn', 'release_bot', 'x64', 'tsan', 'swarming'], + 'gn_release_x64_tsan_concurrent_marking': [ + 'gn', 'release_bot', 'x64', 'v8_enable_concurrent_marking', 'tsan', + 'swarming'], + 'gn_release_x64_tsan_concurrent_marking_minimal_symbols': [ + 'gn', 'release_bot', 'x64', 'v8_enable_concurrent_marking', 'tsan', + 'minimal_symbols', 'swarming'], 'gn_release_x64_tsan_minimal_symbols': [ 'gn', 'release_bot', 'x64', 'tsan', 'minimal_symbols', 'swarming'], 'gn_release_x64_valgrind': [ @@ -377,6 +390,8 @@ 'gn', 'debug_bot', 'x64', 'asan', 'lsan', 'edge'], 'gn_debug_x64_custom': [ 'gn', 'debug_bot', 'x64', 'swarming', 'v8_snapshot_custom'], + 'gn_debug_x64_gcc': [ + 'gn', 'debug_bot', 'x64', 'gcc'], 'gn_debug_x64_minimal_symbols': [ 'gn', 'debug_bot', 'x64', 'minimal_symbols', 'swarming'], 'gn_debug_x64_trybot': [ @@ -498,8 +513,8 @@ }, 'bb': { - 'gn_args': 'sanitizer_coverage_flags="bb"', - 'gyp_defines': 'sanitizer_coverage=bb', + 'gn_args': 'sanitizer_coverage_flags="bb,trace-pc-guard"', + 'gyp_defines': 'sanitizer_coverage=bb,trace-pc-guard', }, 'cfi': { @@ -548,8 +563,8 @@ }, 'edge': { - 'gn_args': 'sanitizer_coverage_flags="edge"', - 'gyp_defines': 'sanitizer_coverage=edge', + 'gn_args': 'sanitizer_coverage_flags="trace-pc-guard"', + 'gyp_defines': 'sanitizer_coverage=trace-pc-guard', }, 'gcc': { @@ -695,6 +710,10 @@ 'gyp_defines': 'v8_enable_i18n_support=0 icu_use_data_file_flag=0', }, + 'v8_enable_concurrent_marking': { + 'gn_args': 'v8_enable_concurrent_marking=true', + }, + 'v8_correctness_fuzzer': { 'gn_args': 'v8_correctness_fuzzer=true v8_multi_arch_build=true', }, diff --git a/deps/v8/src/DEPS b/deps/v8/src/DEPS index bfeca932415299..bbf47e61071faf 100644 --- a/deps/v8/src/DEPS +++ b/deps/v8/src/DEPS @@ -1,6 +1,8 @@ include_rules = [ "+base/trace_event/common/trace_event_common.h", "+src", + "-src/asmjs", + "+src/asmjs/asm-js.h", "-src/compiler", "+src/compiler/pipeline.h", "+src/compiler/code-assembler.h", diff --git a/deps/v8/src/OWNERS b/deps/v8/src/OWNERS index 3a05c3a95b5b64..8bbbab6ecb7287 100644 --- a/deps/v8/src/OWNERS +++ b/deps/v8/src/OWNERS @@ -1,5 +1,5 @@ -per-file i18n.*=cira@chromium.org -per-file i18n.*=mnita@google.com -per-file i18n.*=jshin@chromium.org +per-file intl.*=cira@chromium.org +per-file intl.*=mnita@google.com +per-file intl.*=jshin@chromium.org per-file typing-asm.*=aseemgarg@chromium.org per-file typing-asm.*=bradnelson@chromium.org diff --git a/deps/v8/src/accessors.cc b/deps/v8/src/accessors.cc index 1f2ce97240f5d1..98f780d5895dbd 100644 --- a/deps/v8/src/accessors.cc +++ b/deps/v8/src/accessors.cc @@ -681,23 +681,6 @@ static Handle GetFunctionPrototype(Isolate* isolate, return Handle(function->prototype(), isolate); } - -MUST_USE_RESULT static MaybeHandle SetFunctionPrototype( - Isolate* isolate, Handle function, Handle value) { - JSFunction::SetPrototype(function, value); - DCHECK(function->prototype() == *value); - return function; -} - - -MaybeHandle Accessors::FunctionSetPrototype(Handle function, - Handle prototype) { - DCHECK(function->IsConstructor()); - Isolate* isolate = function->GetIsolate(); - return SetFunctionPrototype(isolate, function, prototype); -} - - void Accessors::FunctionPrototypeGetter( v8::Local name, const v8::PropertyCallbackInfo& info) { @@ -719,11 +702,8 @@ void Accessors::FunctionPrototypeSetter( Handle value = Utils::OpenHandle(*val); Handle object = Handle::cast(Utils::OpenHandle(*info.Holder())); - if (SetFunctionPrototype(isolate, object, value).is_null()) { - isolate->OptionalRescheduleException(false); - } else { - info.GetReturnValue().Set(true); - } + JSFunction::SetPrototype(object, value); + info.GetReturnValue().Set(true); } diff --git a/deps/v8/src/accessors.h b/deps/v8/src/accessors.h index a4d51fd18abfc4..52420d91de347d 100644 --- a/deps/v8/src/accessors.h +++ b/deps/v8/src/accessors.h @@ -90,8 +90,6 @@ class Accessors : public AllStatic { }; // Accessor functions called directly from the runtime system. - MUST_USE_RESULT static MaybeHandle FunctionSetPrototype( - Handle object, Handle value); static Handle FunctionGetArguments(Handle object); // Returns true for properties that are accessors to object fields. diff --git a/deps/v8/src/api-arguments.h b/deps/v8/src/api-arguments.h index 6c9ad7ad6b93f2..ca7b4833e9947e 100644 --- a/deps/v8/src/api-arguments.h +++ b/deps/v8/src/api-arguments.h @@ -7,6 +7,7 @@ #include "src/api.h" #include "src/isolate.h" +#include "src/visitors.h" namespace v8 { namespace internal { @@ -17,8 +18,8 @@ namespace internal { template class CustomArgumentsBase : public Relocatable { public: - virtual inline void IterateInstance(ObjectVisitor* v) { - v->VisitPointers(values_, values_ + kArrayLength); + virtual inline void IterateInstance(RootVisitor* v) { + v->VisitRootPointers(Root::kRelocatable, values_, values_ + kArrayLength); } protected: diff --git a/deps/v8/src/api-natives.cc b/deps/v8/src/api-natives.cc index 0957c47823decd..ef51f950a5ecb8 100644 --- a/deps/v8/src/api-natives.cc +++ b/deps/v8/src/api-natives.cc @@ -261,14 +261,25 @@ MaybeHandle ConfigureInstance(Isolate* isolate, Handle obj, return obj; } +// Whether or not to cache every instance: when we materialize a getter or +// setter from an lazy AccessorPair, we rely on this cache to be able to always +// return the same getter or setter. However, objects will be cloned anyways, +// so it's not observable if we didn't cache an instance. Furthermore, a badly +// behaved embedder might create an unlimited number of objects, so we limit +// the cache for those cases. +enum class CachingMode { kLimited, kUnlimited }; + MaybeHandle ProbeInstantiationsCache(Isolate* isolate, - int serial_number) { + int serial_number, + CachingMode caching_mode) { DCHECK_LE(1, serial_number); if (serial_number <= TemplateInfo::kFastTemplateInstantiationsCacheSize) { Handle fast_cache = isolate->fast_template_instantiations_cache(); return fast_cache->GetValue(isolate, serial_number - 1); - } else { + } else if (caching_mode == CachingMode::kUnlimited || + (serial_number <= + TemplateInfo::kSlowTemplateInstantiationsCacheSize)) { Handle slow_cache = isolate->slow_template_instantiations_cache(); int entry = slow_cache->FindEntry(serial_number); @@ -276,10 +287,13 @@ MaybeHandle ProbeInstantiationsCache(Isolate* isolate, return MaybeHandle(); } return handle(JSObject::cast(slow_cache->ValueAt(entry)), isolate); + } else { + return MaybeHandle(); } } void CacheTemplateInstantiation(Isolate* isolate, int serial_number, + CachingMode caching_mode, Handle object) { DCHECK_LE(1, serial_number); if (serial_number <= TemplateInfo::kFastTemplateInstantiationsCacheSize) { @@ -291,7 +305,9 @@ void CacheTemplateInstantiation(Isolate* isolate, int serial_number, isolate->native_context()->set_fast_template_instantiations_cache( *new_cache); } - } else { + } else if (caching_mode == CachingMode::kUnlimited || + (serial_number <= + TemplateInfo::kSlowTemplateInstantiationsCacheSize)) { Handle cache = isolate->slow_template_instantiations_cache(); auto new_cache = @@ -303,14 +319,17 @@ void CacheTemplateInstantiation(Isolate* isolate, int serial_number, } } -void UncacheTemplateInstantiation(Isolate* isolate, int serial_number) { +void UncacheTemplateInstantiation(Isolate* isolate, int serial_number, + CachingMode caching_mode) { DCHECK_LE(1, serial_number); if (serial_number <= TemplateInfo::kFastTemplateInstantiationsCacheSize) { Handle fast_cache = isolate->fast_template_instantiations_cache(); DCHECK(!fast_cache->get(serial_number - 1)->IsUndefined(isolate)); fast_cache->set_undefined(serial_number - 1); - } else { + } else if (caching_mode == CachingMode::kUnlimited || + (serial_number <= + TemplateInfo::kSlowTemplateInstantiationsCacheSize)) { Handle cache = isolate->slow_template_instantiations_cache(); int entry = cache->FindEntry(serial_number); @@ -354,7 +373,8 @@ MaybeHandle InstantiateObject(Isolate* isolate, // Fast path. Handle result; if (serial_number) { - if (ProbeInstantiationsCache(isolate, serial_number).ToHandle(&result)) { + if (ProbeInstantiationsCache(isolate, serial_number, CachingMode::kLimited) + .ToHandle(&result)) { return isolate->factory()->CopyJSObject(result); } } @@ -396,7 +416,8 @@ MaybeHandle InstantiateObject(Isolate* isolate, JSObject::MigrateSlowToFast(result, 0, "ApiNatives::InstantiateObject"); // Don't cache prototypes. if (serial_number) { - CacheTemplateInstantiation(isolate, serial_number, result); + CacheTemplateInstantiation(isolate, serial_number, CachingMode::kLimited, + result); result = isolate->factory()->CopyJSObject(result); } } @@ -433,7 +454,9 @@ MaybeHandle InstantiateFunction(Isolate* isolate, int serial_number = Smi::cast(data->serial_number())->value(); if (serial_number) { Handle result; - if (ProbeInstantiationsCache(isolate, serial_number).ToHandle(&result)) { + if (ProbeInstantiationsCache(isolate, serial_number, + CachingMode::kUnlimited) + .ToHandle(&result)) { return Handle::cast(result); } } @@ -475,14 +498,16 @@ MaybeHandle InstantiateFunction(Isolate* isolate, } if (serial_number) { // Cache the function. - CacheTemplateInstantiation(isolate, serial_number, function); + CacheTemplateInstantiation(isolate, serial_number, CachingMode::kUnlimited, + function); } MaybeHandle result = ConfigureInstance(isolate, function, data, data->hidden_prototype()); if (result.is_null()) { // Uncache on error. if (serial_number) { - UncacheTemplateInstantiation(isolate, serial_number); + UncacheTemplateInstantiation(isolate, serial_number, + CachingMode::kUnlimited); } return MaybeHandle(); } diff --git a/deps/v8/src/api.cc b/deps/v8/src/api.cc index e725ef50fe3e93..818dfa1e22e69a 100644 --- a/deps/v8/src/api.cc +++ b/deps/v8/src/api.cc @@ -25,6 +25,7 @@ #include "src/base/safe_conversions.h" #include "src/base/utils/random-number-generator.h" #include "src/bootstrapper.h" +#include "src/builtins/builtins-utils.h" #include "src/char-predicates-inl.h" #include "src/code-stubs.h" #include "src/compiler-dispatcher/compiler-dispatcher.h" @@ -84,7 +85,7 @@ namespace v8 { isolate, &i::RuntimeCallStats::API_##class_name##_##function_name); \ LOG(isolate, ApiEntryCall("v8::" #class_name "::" #function_name)) -#define ENTER_V8(isolate) i::VMState __state__((isolate)) +#define ENTER_V8_DO_NOT_USE(isolate) i::VMState __state__((isolate)) #define PREPARE_FOR_EXECUTION_GENERIC(isolate, context, class_name, \ function_name, bailout_value, \ @@ -95,7 +96,7 @@ namespace v8 { HandleScopeClass handle_scope(isolate); \ CallDepthScope call_depth_scope(isolate, context); \ LOG_API(isolate, class_name, function_name); \ - ENTER_V8(isolate); \ + ENTER_V8_DO_NOT_USE(isolate); \ bool has_pending_exception = false #define PREPARE_FOR_DEBUG_INTERFACE_EXECUTION_WITH_ISOLATE(isolate, T) \ @@ -104,7 +105,7 @@ namespace v8 { } \ InternalEscapableScope handle_scope(isolate); \ CallDepthScope call_depth_scope(isolate, v8::Local()); \ - ENTER_V8(isolate); \ + ENTER_V8_DO_NOT_USE(isolate); \ bool has_pending_exception = false #define PREPARE_FOR_EXECUTION_WITH_CONTEXT(context, class_name, function_name, \ @@ -231,17 +232,20 @@ class CallDepthScope { i::Handle env = Utils::OpenHandle(*context); i::HandleScopeImplementer* impl = isolate->handle_scope_implementer(); if (isolate->context() != nullptr && - isolate->context()->native_context() == env->native_context() && - impl->LastEnteredContextWas(env)) { + isolate->context()->native_context() == env->native_context()) { context_ = Local(); } else { - context_->Enter(); + impl->SaveContext(isolate->context()); + isolate->set_context(*env); } } if (do_callback) isolate_->FireBeforeCallEnteredCallback(); } ~CallDepthScope() { - if (!context_.IsEmpty()) context_->Exit(); + if (!context_.IsEmpty()) { + i::HandleScopeImplementer* impl = isolate_->handle_scope_implementer(); + isolate_->set_context(impl->RestoreContext()); + } if (!escaped_) isolate_->handle_scope_implementer()->DecrementCallDepth(); if (do_callback) isolate_->FireCallCompletedCallback(); #ifdef DEBUG @@ -437,6 +441,28 @@ void V8::SetSnapshotDataBlob(StartupData* snapshot_blob) { i::V8::SetSnapshotBlob(snapshot_blob); } +void* v8::ArrayBuffer::Allocator::Reserve(size_t length) { UNIMPLEMENTED(); } + +void v8::ArrayBuffer::Allocator::Free(void* data, size_t length, + AllocationMode mode) { + switch (mode) { + case AllocationMode::kNormal: { + Free(data, length); + return; + } + case AllocationMode::kReservation: { + UNIMPLEMENTED(); + return; + } + } +} + +void v8::ArrayBuffer::Allocator::SetProtection( + void* data, size_t length, + v8::ArrayBuffer::Allocator::Protection protection) { + UNIMPLEMENTED(); +} + namespace { class ArrayBufferAllocator : public v8::ArrayBuffer::Allocator { @@ -447,6 +473,39 @@ class ArrayBufferAllocator : public v8::ArrayBuffer::Allocator { } virtual void* AllocateUninitialized(size_t length) { return malloc(length); } virtual void Free(void* data, size_t) { free(data); } + + virtual void* Reserve(size_t length) { + return base::VirtualMemory::ReserveRegion(length); + } + + virtual void Free(void* data, size_t length, + v8::ArrayBuffer::Allocator::AllocationMode mode) { + switch (mode) { + case v8::ArrayBuffer::Allocator::AllocationMode::kNormal: { + return Free(data, length); + } + case v8::ArrayBuffer::Allocator::AllocationMode::kReservation: { + base::VirtualMemory::ReleaseRegion(data, length); + return; + } + } + } + + virtual void SetProtection( + void* data, size_t length, + v8::ArrayBuffer::Allocator::Protection protection) { + switch (protection) { + case v8::ArrayBuffer::Allocator::Protection::kNoAccess: { + base::VirtualMemory::UncommitRegion(data, length); + return; + } + case v8::ArrayBuffer::Allocator::Protection::kReadWrite: { + const bool is_executable = false; + base::VirtualMemory::CommitRegion(data, length, is_executable); + return; + } + } + } }; bool RunExtraCode(Isolate* isolate, Local context, @@ -818,7 +877,6 @@ Extension::Extension(const char* name, ResourceConstraints::ResourceConstraints() : max_semi_space_size_(0), max_old_space_size_(0), - max_executable_size_(0), stack_limit_(NULL), code_range_size_(0), max_zone_pool_size_(0) {} @@ -840,24 +898,20 @@ void ResourceConstraints::ConfigureDefaults(uint64_t physical_memory, if (physical_memory <= low_limit) { set_max_semi_space_size(i::Heap::kMaxSemiSpaceSizeLowMemoryDevice); set_max_old_space_size(i::Heap::kMaxOldSpaceSizeLowMemoryDevice); - set_max_executable_size(i::Heap::kMaxExecutableSizeLowMemoryDevice); set_max_zone_pool_size(i::AccountingAllocator::kMaxPoolSizeLowMemoryDevice); } else if (physical_memory <= medium_limit) { set_max_semi_space_size(i::Heap::kMaxSemiSpaceSizeMediumMemoryDevice); set_max_old_space_size(i::Heap::kMaxOldSpaceSizeMediumMemoryDevice); - set_max_executable_size(i::Heap::kMaxExecutableSizeMediumMemoryDevice); set_max_zone_pool_size( i::AccountingAllocator::kMaxPoolSizeMediumMemoryDevice); } else if (physical_memory <= high_limit) { set_max_semi_space_size(i::Heap::kMaxSemiSpaceSizeHighMemoryDevice); set_max_old_space_size(i::Heap::kMaxOldSpaceSizeHighMemoryDevice); - set_max_executable_size(i::Heap::kMaxExecutableSizeHighMemoryDevice); set_max_zone_pool_size( i::AccountingAllocator::kMaxPoolSizeHighMemoryDevice); } else { set_max_semi_space_size(i::Heap::kMaxSemiSpaceSizeHugeMemoryDevice); set_max_old_space_size(i::Heap::kMaxOldSpaceSizeHugeMemoryDevice); - set_max_executable_size(i::Heap::kMaxExecutableSizeHugeMemoryDevice); set_max_zone_pool_size( i::AccountingAllocator::kMaxPoolSizeHugeMemoryDevice); } @@ -876,13 +930,11 @@ void SetResourceConstraints(i::Isolate* isolate, const ResourceConstraints& constraints) { int semi_space_size = constraints.max_semi_space_size(); int old_space_size = constraints.max_old_space_size(); - int max_executable_size = constraints.max_executable_size(); size_t code_range_size = constraints.code_range_size(); size_t max_pool_size = constraints.max_zone_pool_size(); - if (semi_space_size != 0 || old_space_size != 0 || - max_executable_size != 0 || code_range_size != 0) { + if (semi_space_size != 0 || old_space_size != 0 || code_range_size != 0) { isolate->heap()->ConfigureHeap(semi_space_size, old_space_size, - max_executable_size, code_range_size); + code_range_size); } isolate->allocator()->ConfigureSegmentPool(max_pool_size); @@ -1015,10 +1067,7 @@ HandleScope::~HandleScope() { i::HandleScope::CloseScope(isolate_, prev_next_, prev_limit_); } -V8_NORETURN void* HandleScope::operator new(size_t) { - base::OS::Abort(); - abort(); -} +void* HandleScope::operator new(size_t) { base::OS::Abort(); } void HandleScope::operator delete(void*, size_t) { base::OS::Abort(); } @@ -1059,10 +1108,7 @@ i::Object** EscapableHandleScope::Escape(i::Object** escape_value) { return escape_slot_; } -V8_NORETURN void* EscapableHandleScope::operator new(size_t) { - base::OS::Abort(); - abort(); -} +void* EscapableHandleScope::operator new(size_t) { base::OS::Abort(); } void EscapableHandleScope::operator delete(void*, size_t) { base::OS::Abort(); } @@ -1084,10 +1130,7 @@ SealHandleScope::~SealHandleScope() { current->sealed_level = prev_sealed_level_; } -V8_NORETURN void* SealHandleScope::operator new(size_t) { - base::OS::Abort(); - abort(); -} +void* SealHandleScope::operator new(size_t) { base::OS::Abort(); } void SealHandleScope::operator delete(void*, size_t) { base::OS::Abort(); } @@ -1396,7 +1439,7 @@ void FunctionTemplate::SetCallHandler(FunctionCallback callback, ENTER_V8_NO_SCRIPT_NO_EXCEPTION(isolate); i::HandleScope scope(isolate); i::Handle struct_obj = - isolate->factory()->NewStruct(i::CALL_HANDLER_INFO_TYPE); + isolate->factory()->NewStruct(i::TUPLE2_TYPE); i::Handle obj = i::Handle::cast(struct_obj); SET_FIELD_WRAPPED(obj, set_callback, callback); @@ -1853,7 +1896,7 @@ void ObjectTemplate::SetCallAsFunctionHandler(FunctionCallback callback, auto cons = EnsureConstructor(isolate, this); EnsureNotInstantiated(cons, "v8::ObjectTemplate::SetCallAsFunctionHandler"); i::Handle struct_obj = - isolate->factory()->NewStruct(i::CALL_HANDLER_INFO_TYPE); + isolate->factory()->NewStruct(i::TUPLE2_TYPE); i::Handle obj = i::Handle::cast(struct_obj); SET_FIELD_WRAPPED(obj, set_callback, callback); @@ -2478,6 +2521,7 @@ MaybeLocal + + +
+

+ +

+

+ +

+

+ +

+

+ +

+
+ + diff --git a/deps/v8/tools/link_clicker.extension/popup.js b/deps/v8/tools/link_clicker.extension/popup.js new file mode 100644 index 00000000000000..865a9480eb20b8 --- /dev/null +++ b/deps/v8/tools/link_clicker.extension/popup.js @@ -0,0 +1,53 @@ +// Copyright 2017 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +function $(id) { + return document.querySelector(id); +} + +// =========================================================================== +document.addEventListener('DOMContentLoaded', function () { + installFormChangeHandler() +}); + + +function installFormChangeHandler() { + initForm(); + let inputs = document.getElementsByTagName("input"); + for (let i = 0; i < inputs.length; i++){ + inputs[i].onchange = onFormChange; + } +} + +function initForm() { + chrome.runtime.sendMessage({type:'get'}, function(response) { + updateFromMessage(response); + }); +} +// =========================================================================== + +function updateFromMessage(msg) { + $("#minInterval").value = msg.minInterval; + $("#maxInterval").value = msg.maxInterval; + $("#pattern").value = msg.pattern; + $("#enabled").checked = msg.enabled; + $("#minIntervalValue").innerText = msg.minInterval+"ms"; + $("#maxIntervalValue").innerText = msg.maxInterval+"ms"; +} + +function onFormChange() { + let minInterval = $("#minInterval").value; + let maxInterval = $("#maxInterval").value; + + let message = { + type: 'update', + minInterval: minInterval, + maxInterval: maxInterval, + pattern: $("#pattern").value, + enabled: $("#enabled").checked + } + chrome.runtime.sendMessage(message, function(response) { + updateFromMessage(response); + }); +} diff --git a/deps/v8/tools/luci-go/linux64/isolate.sha1 b/deps/v8/tools/luci-go/linux64/isolate.sha1 index b8593a765bd18c..f14d0ea76cc8f3 100644 --- a/deps/v8/tools/luci-go/linux64/isolate.sha1 +++ b/deps/v8/tools/luci-go/linux64/isolate.sha1 @@ -1 +1 @@ -3c0fbcab83730c86bbd5a09e760388dcb7053bc4 +bcc0e73f051cc01452c24babbb4be9d5f4556c55 diff --git a/deps/v8/tools/luci-go/mac64/isolate.sha1 b/deps/v8/tools/luci-go/mac64/isolate.sha1 index bf7e1c1dd579ff..750697414370ca 100644 --- a/deps/v8/tools/luci-go/mac64/isolate.sha1 +++ b/deps/v8/tools/luci-go/mac64/isolate.sha1 @@ -1 +1 @@ -d37a2f34eff58e1fb04038bd52381001479d4aa1 +47ffac85c87dd0a2cfd6c4ded9c29c5bbcc8245d diff --git a/deps/v8/tools/luci-go/win64/isolate.exe.sha1 b/deps/v8/tools/luci-go/win64/isolate.exe.sha1 index c575f97042c4a1..9dccf311b2ba54 100644 --- a/deps/v8/tools/luci-go/win64/isolate.exe.sha1 +++ b/deps/v8/tools/luci-go/win64/isolate.exe.sha1 @@ -1 +1 @@ -d4b894493b1ee5c04ec5bc88e6ea286426540770 +1ed79378fe41640a963f1aa6d1674e8456993d10 diff --git a/deps/v8/tools/memory/lsan/suppressions.txt b/deps/v8/tools/memory/lsan/suppressions.txt index 36e59ecd5108b8..f5c73935bebba4 100644 --- a/deps/v8/tools/memory/lsan/suppressions.txt +++ b/deps/v8/tools/memory/lsan/suppressions.txt @@ -14,6 +14,3 @@ leak:v8::internal::compiler::JumpThreading::ApplyForwarding # mjsunit leak:v8::internal::FuncNameInferrer::FuncNameInferrer leak:v8::internal::JSArrayBuffer::SetupAllocatingData - -# unittests -leak:v8::internal::Isolate::FindOrAllocatePerThreadDataForThisThread diff --git a/deps/v8/tools/perf_tests/chromium_revision b/deps/v8/tools/perf_tests/chromium_revision deleted file mode 100644 index 0cdcc110f84c13..00000000000000 --- a/deps/v8/tools/perf_tests/chromium_revision +++ /dev/null @@ -1 +0,0 @@ -210122 diff --git a/deps/v8/tools/plot-timer-events b/deps/v8/tools/plot-timer-events index da2e823c14df61..b65937cfe6dd28 100755 --- a/deps/v8/tools/plot-timer-events +++ b/deps/v8/tools/plot-timer-events @@ -51,7 +51,7 @@ if test "$contains" -eq 0; then calibration_log=calibration.log calibration_script="for (var i = 0; i < 1000000; i++) print();" - $d8_exec --nocrankshaft --prof --logfile $calibration_log \ + $d8_exec --noopt --prof --logfile $calibration_log \ --log-timer-events -e "$calibration_script" > /dev/null t_1_start=`grep "timer-event-start,\"V8.Execute\"" $calibration_log \ | tail -n1 | awk -F, '{print $3}'` @@ -59,7 +59,7 @@ if test "$contains" -eq 0; then | tail -n1 | awk -F, '{print $3}'` n_1=`grep "timer-event\|tick" $calibration_log | wc -l` - $d8_exec --nocrankshaft --prof --logfile $calibration_log \ + $d8_exec --noopt --prof --logfile $calibration_log \ --log-internal-timer-events -e "$calibration_script" > /dev/null t_2_start=`grep "timer-event-start,\"V8.Execute\"" $calibration_log \ | tail -n1 | awk -F, '{print $3}'` diff --git a/deps/v8/tools/presubmit.py b/deps/v8/tools/presubmit.py index c6561476f9472f..c95936037b2260 100755 --- a/deps/v8/tools/presubmit.py +++ b/deps/v8/tools/presubmit.py @@ -70,7 +70,7 @@ LINT_OUTPUT_PATTERN = re.compile(r'^.+[:(]\d+[:)]|^Done processing') FLAGS_LINE = re.compile("//\s*Flags:.*--([A-z0-9-])+_[A-z0-9].*\n") ASSERT_OPTIMIZED_PATTERN = re.compile("assertOptimized") -FLAGS_ENABLE_OPT = re.compile("//\s*Flags:.*--(crankshaft|turbo)[^-].*\n") +FLAGS_ENABLE_OPT = re.compile("//\s*Flags:.*--(opt|turbo)[^-].*\n") ASSERT_UNOPTIMIZED_PATTERN = re.compile("assertUnoptimized") FLAGS_NO_ALWAYS_OPT = re.compile("//\s*Flags:.*--no-?always-opt.*\n") @@ -193,7 +193,7 @@ def RunOnFiles(self, files): def IgnoreDir(self, name): return (name.startswith('.') or name in ('buildtools', 'data', 'gmock', 'gtest', 'kraken', - 'octane', 'sunspider')) + 'octane', 'sunspider', 'traces-arm64')) def IgnoreFile(self, name): return name.startswith('.') @@ -221,7 +221,7 @@ def IgnoreDir(self, name): return (super(CppLintProcessor, self).IgnoreDir(name) or (name == 'third_party')) - IGNORE_LINT = ['flag-definitions.h'] + IGNORE_LINT = ['export-template.h', 'flag-definitions.h'] def IgnoreFile(self, name): return (super(CppLintProcessor, self).IgnoreFile(name) @@ -413,7 +413,7 @@ def ProcessContents(self, name, contents): if not "mjsunit/mjsunit.js" in name: if ASSERT_OPTIMIZED_PATTERN.search(contents) and \ not FLAGS_ENABLE_OPT.search(contents): - print "%s Flag --crankshaft or --turbo should be set " \ + print "%s Flag --opt or --turbo should be set " \ "if assertOptimized() is used" % name result = False if ASSERT_UNOPTIMIZED_PATTERN.search(contents) and \ diff --git a/deps/v8/tools/profile.js b/deps/v8/tools/profile.js index de9c42c5b1100c..21d9d22a5e3658 100644 --- a/deps/v8/tools/profile.js +++ b/deps/v8/tools/profile.js @@ -508,12 +508,19 @@ Profile.DynamicFuncCodeEntry = function(size, type, func, state) { Profile.DynamicFuncCodeEntry.STATE_PREFIX = ["", "~", "*"]; +/** + * Returns state. + */ +Profile.DynamicFuncCodeEntry.prototype.getState = function() { + return Profile.DynamicFuncCodeEntry.STATE_PREFIX[this.state]; +}; + /** * Returns node name. */ Profile.DynamicFuncCodeEntry.prototype.getName = function() { var name = this.func.getName(); - return this.type + ': ' + Profile.DynamicFuncCodeEntry.STATE_PREFIX[this.state] + name; + return this.type + ': ' + this.getState() + name; }; diff --git a/deps/v8/tools/release/git_recipes.py b/deps/v8/tools/release/git_recipes.py index e688ecb95353c4..ce65b973ac3f92 100644 --- a/deps/v8/tools/release/git_recipes.py +++ b/deps/v8/tools/release/git_recipes.py @@ -32,7 +32,7 @@ ROLL_DEPS_GIT_SVN_ID_RE = re.compile('^git-svn-id: .*@([0-9]+) .*$') # Regular expression that matches a single commit footer line. -COMMIT_FOOTER_ENTRY_RE = re.compile(r'([^:]+):\s+(.+)') +COMMIT_FOOTER_ENTRY_RE = re.compile(r'([^:]+):\s*(.*)') # Footer metadata key for commit position. COMMIT_POSITION_FOOTER_KEY = 'Cr-Commit-Position' @@ -67,9 +67,9 @@ def GetCommitMessageFooterMap(message): for line in lines: m = COMMIT_FOOTER_ENTRY_RE.match(line) if not m: - # If any single line isn't valid, the entire footer is invalid. - footers.clear() - return footers + # If any single line isn't valid, continue anyway for compatibility with + # Gerrit (which itself uses JGit for this). + continue footers[m.group(1)] = m.group(2).strip() return footers diff --git a/deps/v8/tools/release/update_node.py b/deps/v8/tools/release/update_node.py index e05f71234da4e3..de6bb06838b722 100755 --- a/deps/v8/tools/release/update_node.py +++ b/deps/v8/tools/release/update_node.py @@ -3,6 +3,26 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +""" +Use this script to update V8 in a Node.js checkout. + +Requirements: + - Node.js checkout in which V8 should be updated. + - V8 checkout at the commit to which Node.js should be updated. + +Usage: + $ update_node.py + + This will synchronize the content of /deps/v8 with , + and a few V8 dependencies require in Node.js. It will also update .gitignore + appropriately. + +Optional flags: + --gclient Run `gclient sync` on the V8 checkout before updating. + --commit Create commit with the updated V8 in the Node.js checkout. + --with-patch Also include currently staged files in the V8 checkout. +""" + import argparse import os import shutil @@ -52,7 +72,8 @@ def CommitPatch(options): """ print ">> Comitting patch" subprocess.check_call( - ["git", "commit", "--allow-empty", "-m", "placeholder-commit"], + ["git", "-c", "user.name=fake", "-c", "user.email=fake@chromium.org", + "commit", "--allow-empty", "-m", "placeholder-commit"], cwd=options.v8_path, ) diff --git a/deps/v8/tools/run-tests.py b/deps/v8/tools/run-tests.py index 0b1675b75e6ced..7a9e90cd5e278b 100755 --- a/deps/v8/tools/run-tests.py +++ b/deps/v8/tools/run-tests.py @@ -68,8 +68,10 @@ "debugger", "mjsunit", "cctest", + "wasm-spec-tests", "inspector", "webkit", + "mkgrokdump", "fuzzer", "message", "preparser", @@ -81,7 +83,9 @@ "debugger", "mjsunit", "cctest", + "wasm-spec-tests", "inspector", + "mkgrokdump", "fuzzer", "message", "preparser", @@ -265,7 +269,7 @@ def BuildOptions(): default=False, action="store_true") result.add_option("--extra-flags", help="Additional flags to pass to each test command", - default="") + action="append", default=[]) result.add_option("--isolates", help="Whether to test isolates", default=False, action="store_true") result.add_option("-j", help="The number of parallel tasks to run", @@ -419,6 +423,7 @@ def SetupEnvironment(options): 'coverage=1', 'coverage_dir=%s' % options.sancov_dir, symbolizer, + "allow_user_segv_handler=1", ]) if options.cfi_vptr: @@ -532,7 +537,7 @@ def ProcessOptions(options): "running tests locally.") options.no_network = True options.command_prefix = shlex.split(options.command_prefix) - options.extra_flags = shlex.split(options.extra_flags) + options.extra_flags = sum(map(shlex.split, options.extra_flags), []) if options.gc_stress: options.extra_flags += GC_STRESS_FLAGS @@ -781,8 +786,8 @@ def Execute(arch, mode, args, options, suites): # target_arch != v8_target_arch in the dumped build config. simulator_run = not options.dont_skip_simulator_slow_tests and \ arch in ['arm64', 'arm', 'mipsel', 'mips', 'mips64', 'mips64el', \ - 'ppc', 'ppc64'] and \ - ARCH_GUESS and arch != ARCH_GUESS + 'ppc', 'ppc64', 's390', 's390x'] and \ + bool(ARCH_GUESS) and arch != ARCH_GUESS # Find available test suites and read test cases from them. variables = { "arch": arch, diff --git a/deps/v8/tools/run_perf.py b/deps/v8/tools/run_perf.py index 59669c6bbcacd0..e6ec9cb38bc636 100755 --- a/deps/v8/tools/run_perf.py +++ b/deps/v8/tools/run_perf.py @@ -1000,6 +1000,12 @@ def Main(args): "'powersave' for more stable results, or 'performance' " "for shorter completion time of suite, with potentially " "more noise in results.") + parser.add_option("--filter", + help="Only run the benchmarks beginning with this string. " + "For example: " + "--filter=JSTests/TypedArrays/ will run only TypedArray " + "benchmarks from the JSTests suite.", + default="") (options, args) = parser.parse_args(args) @@ -1092,9 +1098,12 @@ def Main(args): def NodeCB(node): platform.PreTests(node, path) - # Traverse graph/trace tree and interate over all runnables. + # Traverse graph/trace tree and iterate over all runnables. for runnable in FlattenRunnables(root, NodeCB): - print ">>> Running suite: %s" % "/".join(runnable.graphs) + runnable_name = "/".join(runnable.graphs) + if not runnable_name.startswith(options.filter): + continue + print ">>> Running suite: %s" % runnable_name def Runner(): """Output generator that reruns several times.""" diff --git a/deps/v8/tools/testrunner/local/execution.py b/deps/v8/tools/testrunner/local/execution.py index d5b519aadbdc50..dc55129a1477bf 100644 --- a/deps/v8/tools/testrunner/local/execution.py +++ b/deps/v8/tools/testrunner/local/execution.py @@ -62,17 +62,18 @@ def __init__(self, command, test_id, timeout, verbose, env): "process_context", ["suites", "context"]) -def MakeProcessContext(context): +def MakeProcessContext(context, suite_names): """Generate a process-local context. This reloads all suites per process and stores the global context. Args: context: The global context from the test runner. + suite_names (list of str): Suite names as loaded by the parent process. + Load the same suites in each subprocess. """ - suite_paths = utils.GetSuitePaths(TEST_DIR) suites = {} - for root in suite_paths: + for root in suite_names: # Don't reinitialize global state as this is concurrently called from # different processes. suite = testsuite.TestSuite.LoadTestSuite( @@ -198,7 +199,8 @@ def __init__(self, suites, progress_indicator, context): self.perfdata = self.perf_data_manager.GetStore(context.arch, context.mode) self.perf_failures = False self.printed_allocations = False - self.tests = [ t for s in suites for t in s.tests ] + self.tests = [t for s in suites for t in s.tests] + self.suite_names = [s.name for s in suites] # Always pre-sort by status file, slowest tests first. slow_key = lambda t: statusfile.IsSlow(t.outcomes) @@ -353,7 +355,7 @@ def gen_tests(): fn=RunTest, gen=gen_tests(), process_context_fn=MakeProcessContext, - process_context_args=[self.context], + process_context_args=[self.context, self.suite_names], ) for result in it: if result.heartbeat: diff --git a/deps/v8/tools/testrunner/local/testsuite.py b/deps/v8/tools/testrunner/local/testsuite.py index f7fa19b20a0b5c..68f39d6b4a6cf0 100644 --- a/deps/v8/tools/testrunner/local/testsuite.py +++ b/deps/v8/tools/testrunner/local/testsuite.py @@ -71,7 +71,7 @@ def LoadTestSuite(root, global_init=True): f = None try: (f, pathname, description) = imp.find_module("testcfg", [root]) - module = imp.load_module("testcfg", f, pathname, description) + module = imp.load_module(name + "_testcfg", f, pathname, description) return module.GetSuite(name, root) except ImportError: # Use default if no testcfg is present. diff --git a/deps/v8/tools/testrunner/local/variants.py b/deps/v8/tools/testrunner/local/variants.py index 2ad00cff2ab154..0dba0d9579eff4 100644 --- a/deps/v8/tools/testrunner/local/variants.py +++ b/deps/v8/tools/testrunner/local/variants.py @@ -10,11 +10,12 @@ "turbofan_opt": [["--turbo", "--always-opt"]], "noturbofan": [["--no-turbo"]], "noturbofan_stress": [["--no-turbo", "--stress-opt", "--always-opt"]], - "fullcode": [["--nocrankshaft", "--no-turbo"]], - # No optimization actually means no profile guided optimization - - # %OptimizeFunctionOnNextCall still works. - "nooptimization": [["--nocrankshaft"]], - "asm_wasm": [["--validate-asm", "--fast-validate-asm", "--stress-validate-asm", "--suppress-asm-messages"]], + "fullcode": [["--noopt", "--no-turbo"]], + # No optimization means disable all optimizations. OptimizeFunctionOnNextCall + # would not force optimization too. It turns into a Nop. Please see + # https://chromium-review.googlesource.com/c/452620/ for more discussion. + "nooptimization": [["--noopt"]], + "asm_wasm": [["--validate-asm", "--stress-validate-asm", "--suppress-asm-messages"]], "wasm_traps": [["--wasm_guard_pages", "--wasm_trap_handler", "--invoke-weak-callbacks"]], } @@ -25,11 +26,12 @@ "turbofan": [["--turbo"]], "noturbofan": [["--no-turbo"]], "noturbofan_stress": [["--no-turbo", "--stress-opt"]], - "fullcode": [["--nocrankshaft", "--no-turbo"]], - # No optimization actually means no profile guided optimization - - # %OptimizeFunctionOnNextCall still works. - "nooptimization": [["--nocrankshaft"]], - "asm_wasm": [["--validate-asm", "--fast-validate-asm", "--stress-validate-asm", "--suppress-asm-messages"]], + "fullcode": [["--noopt", "--no-turbo"]], + # No optimization means disable all optimizations. OptimizeFunctionOnNextCall + # would not force optimization too. It turns into a Nop. Please see + # https://chromium-review.googlesource.com/c/452620/ for more discussion. + "nooptimization": [["--noopt"]], + "asm_wasm": [["--validate-asm", "--stress-validate-asm", "--suppress-asm-messages"]], "wasm_traps": [["--wasm_guard_pages", "--wasm_trap_handler", "--invoke-weak-callbacks"]], } diff --git a/deps/v8/tools/testrunner/testrunner.isolate b/deps/v8/tools/testrunner/testrunner.isolate index bfc9318adfbeaf..545d888871b87b 100644 --- a/deps/v8/tools/testrunner/testrunner.isolate +++ b/deps/v8/tools/testrunner/testrunner.isolate @@ -12,7 +12,7 @@ ], }, 'conditions': [ - ['coverage==1 and sanitizer_coverage=="bb"', { + ['coverage==1 and sanitizer_coverage=="bb,trace-pc-guard"', { 'variables': { 'files': [ '../sanitizers/sancov_merger.py', diff --git a/deps/v8/tools/try_perf.py b/deps/v8/tools/try_perf.py index b9dac9ca3f2301..98d3b067e1f7fa 100755 --- a/deps/v8/tools/try_perf.py +++ b/deps/v8/tools/try_perf.py @@ -91,7 +91,7 @@ def main(): # Ensure depot_tools are updated. subprocess.check_output( - 'gclient', shell=True, stderr=subprocess.STDOUT, cwd=V8_BASE) + 'update_depot_tools', shell=True, stderr=subprocess.STDOUT, cwd=V8_BASE) cmd = ['git cl try -m internal.client.v8'] cmd += ['-b %s' % bot for bot in options.bots] diff --git a/deps/v8/tools/turbolizer/disassembly-view.js b/deps/v8/tools/turbolizer/disassembly-view.js index a2a534cd7f22bc..ecee04988cc820 100644 --- a/deps/v8/tools/turbolizer/disassembly-view.js +++ b/deps/v8/tools/turbolizer/disassembly-view.js @@ -87,7 +87,7 @@ class DisassemblyView extends TextView { [/^.*/, UNCLASSIFIED_STYLE, -1] ], [ - [/^\s+\d+\s+[0-9a-f]+\s+/, NUMBER_STYLE, 2], + [/^\s+[0-9a-f]+\s+[0-9a-f]+\s+/, NUMBER_STYLE, 2], [/^.*/, null, -1] ], [ diff --git a/deps/v8/tools/v8-info.sh b/deps/v8/tools/v8-info.sh deleted file mode 100755 index 838d92a0011f3b..00000000000000 --- a/deps/v8/tools/v8-info.sh +++ /dev/null @@ -1,161 +0,0 @@ -#!/bin/bash -# Copyright 2013 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. - - -########## Global variable definitions - -BASE_URL="https://code.google.com/p/v8/source/list" -VERSION="include/v8-version.h" -MAJOR="V8_MAJOR_VERSION" -MINOR="V8_MINOR_VERSION" -BUILD="V8_BUILD_NUMBER" -PATCH="V8_PATCH_LEVEL" - -V8="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" - -########## Function definitions - -cd $V8 - -usage() { -cat << EOF -usage: $0 OPTIONS - -Fetches V8 revision information from a git-svn checkout. - -OPTIONS: - -h Show this message. - - -i Print revision info for all branches matching the V8 version. - Example usage: $0 -i 3.19.10$ - Output format: [Git hash] [SVN revision] [V8 version] - - -v Print the V8 version tag for a trunk SVN revision. - Example usage: $0 -v 14981 - Output format: [V8 version] - - -m Print all patches that were merged to the specified V8 branch. - Example usage: $0 -m 3.18 - Output format: [V8 version] [SVN revision] [SVN patch merged]*. - - -p Print all patches merged to a specific V8 point-release. - Example usage: $0 -p 3.19.12.1 - Output format: [SVN patch merged]* - - -u Print a link to all SVN revisions between two V8 revision tags. - Example usage: $0 -u 3.19.10:3.19.11 -EOF -} - -tags() { - git for-each-ref --format="%(objectname) %(refname:short)" refs/remotes/svn -} - -tag_revision() { - cut -d" " -f1 -} - -tag_log() { - git log --format="%h %ci %ce %s" -1 $1 -} - -v8_hash() { - tags | grep "svn/tags/$1$" | tag_revision -} - -point_merges() { - echo $1 | grep -o "r[0-9]\+" -} - -hash_to_svn() { - git svn log -1 --oneline $1 | cut -d" " -f1 -} - -tag_version() { - tags | grep svn/tags/$1 | while read tag; do - id=$(echo $tag | grep -o "[^/]*$") - rev=$(echo $tag | tag_revision) - svn=$(hash_to_svn $rev) - echo $rev $svn $id - done -} - -svn_rev() { - git svn find-rev $2 svn/$1 -} - -v8_rev() { - cd $(git rev-parse --show-toplevel) - rev=$(git show $1:$VERSION \ - | grep "#define" \ - | grep "$MAJOR\|$MINOR\|$BUILD\|$PATCH" \ - | grep -o "[0-9]\+$" \ - | tr "\\n" ".") - echo ${rev%?} -} - -merges_to_branch() { - git cherry -v svn/trunk svn/$1 | while read merge; do - h=$(echo $merge | cut -d" " -f2) - svn=$(svn_rev $1 $h) - merges=$(echo $merge | grep -o "r[0-9]\+") - rev=$(v8_rev $h) - echo $rev r$svn $merges - done -} - -url_for() { - first=$(svn_rev trunk $(v8_hash $(echo $1 | cut -d":" -f1))) - last=$(svn_rev trunk $(v8_hash $(echo $1 | cut -d":" -f2))) - num=$[ $last - $first] - echo "$BASE_URL?num=$num&start=$last" -} - -########## Option parsing - -while getopts ":hi:v:m:p:u:" OPTION ; do - case $OPTION in - h) usage - exit 0 - ;; - i) tag_version $OPTARG - ;; - v) v8_rev $(svn_rev trunk r$OPTARG) - ;; - m) merges_to_branch $OPTARG - ;; - p) echo $(point_merges "$(tag_log $(v8_hash $OPTARG)^1)") - ;; - u) url_for $OPTARG - ;; - ?) echo "Illegal option: -$OPTARG" - usage - exit 1 - ;; - esac -done diff --git a/deps/v8/tools/v8heapconst.py b/deps/v8/tools/v8heapconst.py index d43291abe82709..d2d6ae9266ca1d 100644 --- a/deps/v8/tools/v8heapconst.py +++ b/deps/v8/tools/v8heapconst.py @@ -2,6 +2,9 @@ # Use of this source code is governed by a BSD-style license that can # be found in the LICENSE file. +# This file is automatically generated by mkgrokdump and should not +# be modified manually. + # List of known V8 instance types. INSTANCE_TYPES = { 0: "INTERNALIZED_STRING_TYPE", @@ -51,97 +54,100 @@ 150: "ACCESSOR_PAIR_TYPE", 151: "ACCESS_CHECK_INFO_TYPE", 152: "INTERCEPTOR_INFO_TYPE", - 153: "CALL_HANDLER_INFO_TYPE", - 154: "FUNCTION_TEMPLATE_INFO_TYPE", - 155: "OBJECT_TEMPLATE_INFO_TYPE", - 156: "ALLOCATION_SITE_TYPE", - 157: "ALLOCATION_MEMENTO_TYPE", - 158: "SCRIPT_TYPE", - 159: "TYPE_FEEDBACK_INFO_TYPE", - 160: "ALIASED_ARGUMENTS_ENTRY_TYPE", - 161: "PROMISE_RESOLVE_THENABLE_JOB_INFO_TYPE", - 162: "PROMISE_REACTION_JOB_INFO_TYPE", - 163: "DEBUG_INFO_TYPE", - 164: "BREAK_POINT_INFO_TYPE", - 165: "PROTOTYPE_INFO_TYPE", - 166: "TUPLE2_TYPE", - 167: "TUPLE3_TYPE", - 168: "CONTEXT_EXTENSION_TYPE", - 169: "CONSTANT_ELEMENTS_PAIR_TYPE", - 170: "MODULE_TYPE", - 171: "MODULE_INFO_ENTRY_TYPE", - 172: "FIXED_ARRAY_TYPE", - 173: "TRANSITION_ARRAY_TYPE", - 174: "SHARED_FUNCTION_INFO_TYPE", - 175: "CELL_TYPE", - 176: "WEAK_CELL_TYPE", - 177: "PROPERTY_CELL_TYPE", - 178: "JS_PROXY_TYPE", - 179: "JS_GLOBAL_OBJECT_TYPE", - 180: "JS_GLOBAL_PROXY_TYPE", - 181: "JS_SPECIAL_API_OBJECT_TYPE", - 182: "JS_VALUE_TYPE", - 183: "JS_MESSAGE_OBJECT_TYPE", - 184: "JS_DATE_TYPE", - 185: "JS_API_OBJECT_TYPE", - 186: "JS_OBJECT_TYPE", - 187: "JS_ARGUMENTS_TYPE", - 188: "JS_CONTEXT_EXTENSION_OBJECT_TYPE", - 189: "JS_GENERATOR_OBJECT_TYPE", - 190: "JS_MODULE_NAMESPACE_TYPE", - 191: "JS_ARRAY_TYPE", - 192: "JS_ARRAY_BUFFER_TYPE", - 193: "JS_TYPED_ARRAY_TYPE", - 194: "JS_DATA_VIEW_TYPE", - 195: "JS_SET_TYPE", - 196: "JS_MAP_TYPE", - 197: "JS_SET_ITERATOR_TYPE", - 198: "JS_MAP_ITERATOR_TYPE", - 199: "JS_WEAK_MAP_TYPE", - 200: "JS_WEAK_SET_TYPE", - 201: "JS_PROMISE_CAPABILITY_TYPE", - 202: "JS_PROMISE_TYPE", - 203: "JS_REGEXP_TYPE", - 204: "JS_ERROR_TYPE", - 205: "JS_ASYNC_FROM_SYNC_ITERATOR_TYPE", - 206: "JS_STRING_ITERATOR_TYPE", - 207: "JS_TYPED_ARRAY_KEY_ITERATOR_TYPE", - 208: "JS_FAST_ARRAY_KEY_ITERATOR_TYPE", - 209: "JS_GENERIC_ARRAY_KEY_ITERATOR_TYPE", - 210: "JS_UINT8_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 211: "JS_INT8_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 212: "JS_UINT16_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 213: "JS_INT16_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 214: "JS_UINT32_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 215: "JS_INT32_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 216: "JS_FLOAT32_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 217: "JS_FLOAT64_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 218: "JS_UINT8_CLAMPED_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 219: "JS_FAST_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 220: "JS_FAST_HOLEY_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 221: "JS_FAST_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 222: "JS_FAST_HOLEY_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 223: "JS_FAST_DOUBLE_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 224: "JS_FAST_HOLEY_DOUBLE_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 225: "JS_GENERIC_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 226: "JS_UINT8_ARRAY_VALUE_ITERATOR_TYPE", - 227: "JS_INT8_ARRAY_VALUE_ITERATOR_TYPE", - 228: "JS_UINT16_ARRAY_VALUE_ITERATOR_TYPE", - 229: "JS_INT16_ARRAY_VALUE_ITERATOR_TYPE", - 230: "JS_UINT32_ARRAY_VALUE_ITERATOR_TYPE", - 231: "JS_INT32_ARRAY_VALUE_ITERATOR_TYPE", - 232: "JS_FLOAT32_ARRAY_VALUE_ITERATOR_TYPE", - 233: "JS_FLOAT64_ARRAY_VALUE_ITERATOR_TYPE", - 234: "JS_UINT8_CLAMPED_ARRAY_VALUE_ITERATOR_TYPE", - 235: "JS_FAST_SMI_ARRAY_VALUE_ITERATOR_TYPE", - 236: "JS_FAST_HOLEY_SMI_ARRAY_VALUE_ITERATOR_TYPE", - 237: "JS_FAST_ARRAY_VALUE_ITERATOR_TYPE", - 238: "JS_FAST_HOLEY_ARRAY_VALUE_ITERATOR_TYPE", - 239: "JS_FAST_DOUBLE_ARRAY_VALUE_ITERATOR_TYPE", - 240: "JS_FAST_HOLEY_DOUBLE_ARRAY_VALUE_ITERATOR_TYPE", - 241: "JS_GENERIC_ARRAY_VALUE_ITERATOR_TYPE", - 242: "JS_BOUND_FUNCTION_TYPE", - 243: "JS_FUNCTION_TYPE", + 153: "FUNCTION_TEMPLATE_INFO_TYPE", + 154: "OBJECT_TEMPLATE_INFO_TYPE", + 155: "ALLOCATION_SITE_TYPE", + 156: "ALLOCATION_MEMENTO_TYPE", + 157: "SCRIPT_TYPE", + 158: "ALIASED_ARGUMENTS_ENTRY_TYPE", + 159: "PROMISE_RESOLVE_THENABLE_JOB_INFO_TYPE", + 160: "PROMISE_REACTION_JOB_INFO_TYPE", + 161: "DEBUG_INFO_TYPE", + 162: "STACK_FRAME_INFO_TYPE", + 163: "PROTOTYPE_INFO_TYPE", + 164: "TUPLE2_TYPE", + 165: "TUPLE3_TYPE", + 166: "CONTEXT_EXTENSION_TYPE", + 167: "MODULE_TYPE", + 168: "MODULE_INFO_ENTRY_TYPE", + 169: "ASYNC_GENERATOR_REQUEST_TYPE", + 170: "FIXED_ARRAY_TYPE", + 171: "TRANSITION_ARRAY_TYPE", + 172: "SHARED_FUNCTION_INFO_TYPE", + 173: "CELL_TYPE", + 174: "WEAK_CELL_TYPE", + 175: "PROPERTY_CELL_TYPE", + 176: "PADDING_TYPE_1", + 177: "PADDING_TYPE_2", + 178: "PADDING_TYPE_3", + 179: "PADDING_TYPE_4", + 180: "JS_PROXY_TYPE", + 181: "JS_GLOBAL_OBJECT_TYPE", + 182: "JS_GLOBAL_PROXY_TYPE", + 183: "JS_SPECIAL_API_OBJECT_TYPE", + 184: "JS_VALUE_TYPE", + 185: "JS_MESSAGE_OBJECT_TYPE", + 186: "JS_DATE_TYPE", + 187: "JS_API_OBJECT_TYPE", + 188: "JS_OBJECT_TYPE", + 189: "JS_ARGUMENTS_TYPE", + 190: "JS_CONTEXT_EXTENSION_OBJECT_TYPE", + 191: "JS_GENERATOR_OBJECT_TYPE", + 192: "JS_ASYNC_GENERATOR_OBJECT_TYPE", + 193: "JS_MODULE_NAMESPACE_TYPE", + 194: "JS_ARRAY_TYPE", + 195: "JS_ARRAY_BUFFER_TYPE", + 196: "JS_TYPED_ARRAY_TYPE", + 197: "JS_DATA_VIEW_TYPE", + 198: "JS_SET_TYPE", + 199: "JS_MAP_TYPE", + 200: "JS_SET_ITERATOR_TYPE", + 201: "JS_MAP_ITERATOR_TYPE", + 202: "JS_WEAK_MAP_TYPE", + 203: "JS_WEAK_SET_TYPE", + 204: "JS_PROMISE_CAPABILITY_TYPE", + 205: "JS_PROMISE_TYPE", + 206: "JS_REGEXP_TYPE", + 207: "JS_ERROR_TYPE", + 208: "JS_ASYNC_FROM_SYNC_ITERATOR_TYPE", + 209: "JS_STRING_ITERATOR_TYPE", + 210: "JS_TYPED_ARRAY_KEY_ITERATOR_TYPE", + 211: "JS_FAST_ARRAY_KEY_ITERATOR_TYPE", + 212: "JS_GENERIC_ARRAY_KEY_ITERATOR_TYPE", + 213: "JS_UINT8_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 214: "JS_INT8_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 215: "JS_UINT16_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 216: "JS_INT16_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 217: "JS_UINT32_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 218: "JS_INT32_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 219: "JS_FLOAT32_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 220: "JS_FLOAT64_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 221: "JS_UINT8_CLAMPED_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 222: "JS_FAST_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 223: "JS_FAST_HOLEY_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 224: "JS_FAST_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 225: "JS_FAST_HOLEY_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 226: "JS_FAST_DOUBLE_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 227: "JS_FAST_HOLEY_DOUBLE_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 228: "JS_GENERIC_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 229: "JS_UINT8_ARRAY_VALUE_ITERATOR_TYPE", + 230: "JS_INT8_ARRAY_VALUE_ITERATOR_TYPE", + 231: "JS_UINT16_ARRAY_VALUE_ITERATOR_TYPE", + 232: "JS_INT16_ARRAY_VALUE_ITERATOR_TYPE", + 233: "JS_UINT32_ARRAY_VALUE_ITERATOR_TYPE", + 234: "JS_INT32_ARRAY_VALUE_ITERATOR_TYPE", + 235: "JS_FLOAT32_ARRAY_VALUE_ITERATOR_TYPE", + 236: "JS_FLOAT64_ARRAY_VALUE_ITERATOR_TYPE", + 237: "JS_UINT8_CLAMPED_ARRAY_VALUE_ITERATOR_TYPE", + 238: "JS_FAST_SMI_ARRAY_VALUE_ITERATOR_TYPE", + 239: "JS_FAST_HOLEY_SMI_ARRAY_VALUE_ITERATOR_TYPE", + 240: "JS_FAST_ARRAY_VALUE_ITERATOR_TYPE", + 241: "JS_FAST_HOLEY_ARRAY_VALUE_ITERATOR_TYPE", + 242: "JS_FAST_DOUBLE_ARRAY_VALUE_ITERATOR_TYPE", + 243: "JS_FAST_HOLEY_DOUBLE_ARRAY_VALUE_ITERATOR_TYPE", + 244: "JS_GENERIC_ARRAY_VALUE_ITERATOR_TYPE", + 245: "JS_BOUND_FUNCTION_TYPE", + 246: "JS_FUNCTION_TYPE", } # List of known V8 maps. @@ -149,7 +155,7 @@ 0x02201: (137, "FreeSpaceMap"), 0x02259: (131, "MetaMap"), 0x022b1: (130, "NullMap"), - 0x02309: (172, "FixedArrayMap"), + 0x02309: (170, "FixedArrayMap"), 0x02361: (8, "OneByteInternalizedStringMap"), 0x023b9: (148, "OnePointerFillerMap"), 0x02411: (148, "TwoPointerFillerMap"), @@ -159,100 +165,98 @@ 0x02571: (130, "TheHoleMap"), 0x025c9: (130, "BooleanMap"), 0x02621: (135, "ByteArrayMap"), - 0x02679: (172, "FixedCOWArrayMap"), - 0x026d1: (172, "HashTableMap"), + 0x02679: (170, "FixedCOWArrayMap"), + 0x026d1: (170, "HashTableMap"), 0x02729: (128, "SymbolMap"), 0x02781: (72, "OneByteStringMap"), - 0x027d9: (172, "ScopeInfoMap"), - 0x02831: (174, "SharedFunctionInfoMap"), + 0x027d9: (170, "ScopeInfoMap"), + 0x02831: (172, "SharedFunctionInfoMap"), 0x02889: (132, "CodeMap"), - 0x028e1: (172, "FunctionContextMap"), - 0x02939: (175, "CellMap"), - 0x02991: (176, "WeakCellMap"), - 0x029e9: (177, "GlobalPropertyCellMap"), + 0x028e1: (170, "FunctionContextMap"), + 0x02939: (173, "CellMap"), + 0x02991: (174, "WeakCellMap"), + 0x029e9: (175, "GlobalPropertyCellMap"), 0x02a41: (134, "ForeignMap"), - 0x02a99: (173, "TransitionArrayMap"), + 0x02a99: (171, "TransitionArrayMap"), 0x02af1: (130, "ArgumentsMarkerMap"), - 0x02b49: (172, "NativeContextMap"), - 0x02ba1: (172, "ModuleContextMap"), - 0x02bf9: (172, "EvalContextMap"), - 0x02c51: (172, "ScriptContextMap"), - 0x02ca9: (172, "BlockContextMap"), - 0x02d01: (172, "CatchContextMap"), - 0x02d59: (172, "WithContextMap"), - 0x02db1: (147, "FixedDoubleArrayMap"), - 0x02e09: (133, "MutableHeapNumberMap"), - 0x02e61: (172, "OrderedHashTableMap"), - 0x02eb9: (172, "SloppyArgumentsElementsMap"), - 0x02f11: (183, "JSMessageObjectMap"), - 0x02f69: (136, "BytecodeArrayMap"), - 0x02fc1: (172, "ModuleInfoMap"), - 0x03019: (175, "NoClosuresCellMap"), - 0x03071: (175, "OneClosureCellMap"), - 0x030c9: (175, "ManyClosuresCellMap"), - 0x03121: (64, "StringMap"), - 0x03179: (73, "ConsOneByteStringMap"), - 0x031d1: (65, "ConsStringMap"), - 0x03229: (77, "ThinOneByteStringMap"), - 0x03281: (69, "ThinStringMap"), - 0x032d9: (67, "SlicedStringMap"), - 0x03331: (75, "SlicedOneByteStringMap"), - 0x03389: (66, "ExternalStringMap"), - 0x033e1: (82, "ExternalStringWithOneByteDataMap"), - 0x03439: (74, "ExternalOneByteStringMap"), - 0x03491: (98, "ShortExternalStringMap"), - 0x034e9: (114, "ShortExternalStringWithOneByteDataMap"), - 0x03541: (0, "InternalizedStringMap"), - 0x03599: (2, "ExternalInternalizedStringMap"), - 0x035f1: (18, "ExternalInternalizedStringWithOneByteDataMap"), - 0x03649: (10, "ExternalOneByteInternalizedStringMap"), - 0x036a1: (34, "ShortExternalInternalizedStringMap"), - 0x036f9: (50, "ShortExternalInternalizedStringWithOneByteDataMap"), - 0x03751: (42, "ShortExternalOneByteInternalizedStringMap"), - 0x037a9: (106, "ShortExternalOneByteStringMap"), - 0x03801: (172, "FeedbackVectorMap"), - 0x03859: (130, "ExceptionMap"), - 0x038b1: (130, "TerminationExceptionMap"), - 0x03909: (130, "OptimizedOutMap"), - 0x03961: (130, "StaleRegisterMap"), - 0x039b9: (172, "DebugEvaluateContextMap"), - 0x03a11: (172, "ScriptContextTableMap"), - 0x03a69: (172, "UnseededNumberDictionaryMap"), - 0x03ac1: (186, "ExternalMap"), - 0x03b19: (106, "NativeSourceStringMap"), - 0x03b71: (139, "FixedUint8ArrayMap"), - 0x03bc9: (138, "FixedInt8ArrayMap"), - 0x03c21: (141, "FixedUint16ArrayMap"), - 0x03c79: (140, "FixedInt16ArrayMap"), - 0x03cd1: (143, "FixedUint32ArrayMap"), - 0x03d29: (142, "FixedInt32ArrayMap"), - 0x03d81: (144, "FixedFloat32ArrayMap"), - 0x03dd9: (145, "FixedFloat64ArrayMap"), - 0x03e31: (146, "FixedUint8ClampedArrayMap"), - 0x03e89: (158, "ScriptMap"), + 0x02b49: (130, "ExceptionMap"), + 0x02ba1: (130, "TerminationExceptionMap"), + 0x02bf9: (130, "OptimizedOutMap"), + 0x02c51: (130, "StaleRegisterMap"), + 0x02ca9: (170, "NativeContextMap"), + 0x02d01: (170, "ModuleContextMap"), + 0x02d59: (170, "EvalContextMap"), + 0x02db1: (170, "ScriptContextMap"), + 0x02e09: (170, "BlockContextMap"), + 0x02e61: (170, "CatchContextMap"), + 0x02eb9: (170, "WithContextMap"), + 0x02f11: (147, "FixedDoubleArrayMap"), + 0x02f69: (133, "MutableHeapNumberMap"), + 0x02fc1: (170, "OrderedHashTableMap"), + 0x03019: (170, "SloppyArgumentsElementsMap"), + 0x03071: (185, "JSMessageObjectMap"), + 0x030c9: (136, "BytecodeArrayMap"), + 0x03121: (170, "ModuleInfoMap"), + 0x03179: (173, "NoClosuresCellMap"), + 0x031d1: (173, "OneClosureCellMap"), + 0x03229: (173, "ManyClosuresCellMap"), + 0x03281: (64, "StringMap"), + 0x032d9: (73, "ConsOneByteStringMap"), + 0x03331: (65, "ConsStringMap"), + 0x03389: (77, "ThinOneByteStringMap"), + 0x033e1: (69, "ThinStringMap"), + 0x03439: (67, "SlicedStringMap"), + 0x03491: (75, "SlicedOneByteStringMap"), + 0x034e9: (66, "ExternalStringMap"), + 0x03541: (82, "ExternalStringWithOneByteDataMap"), + 0x03599: (74, "ExternalOneByteStringMap"), + 0x035f1: (98, "ShortExternalStringMap"), + 0x03649: (114, "ShortExternalStringWithOneByteDataMap"), + 0x036a1: (0, "InternalizedStringMap"), + 0x036f9: (2, "ExternalInternalizedStringMap"), + 0x03751: (18, "ExternalInternalizedStringWithOneByteDataMap"), + 0x037a9: (10, "ExternalOneByteInternalizedStringMap"), + 0x03801: (34, "ShortExternalInternalizedStringMap"), + 0x03859: (50, "ShortExternalInternalizedStringWithOneByteDataMap"), + 0x038b1: (42, "ShortExternalOneByteInternalizedStringMap"), + 0x03909: (106, "ShortExternalOneByteStringMap"), + 0x03961: (139, "FixedUint8ArrayMap"), + 0x039b9: (138, "FixedInt8ArrayMap"), + 0x03a11: (141, "FixedUint16ArrayMap"), + 0x03a69: (140, "FixedInt16ArrayMap"), + 0x03ac1: (143, "FixedUint32ArrayMap"), + 0x03b19: (142, "FixedInt32ArrayMap"), + 0x03b71: (144, "FixedFloat32ArrayMap"), + 0x03bc9: (145, "FixedFloat64ArrayMap"), + 0x03c21: (146, "FixedUint8ClampedArrayMap"), + 0x03c79: (157, "ScriptMap"), + 0x03cd1: (170, "FeedbackVectorMap"), + 0x03d29: (170, "DebugEvaluateContextMap"), + 0x03d81: (170, "ScriptContextTableMap"), + 0x03dd9: (170, "UnseededNumberDictionaryMap"), + 0x03e31: (188, "ExternalMap"), + 0x03e89: (106, "NativeSourceStringMap"), 0x03ee1: (152, "InterceptorInfoMap"), - 0x03f39: (201, "JSPromiseCapabilityMap"), - 0x03f91: (149, "AccessorInfoMap"), - 0x03fe9: (150, "AccessorPairMap"), - 0x04041: (151, "AccessCheckInfoMap"), - 0x04099: (153, "CallHandlerInfoMap"), - 0x040f1: (154, "FunctionTemplateInfoMap"), - 0x04149: (155, "ObjectTemplateInfoMap"), - 0x041a1: (156, "AllocationSiteMap"), - 0x041f9: (157, "AllocationMementoMap"), - 0x04251: (159, "TypeFeedbackInfoMap"), - 0x042a9: (160, "AliasedArgumentsEntryMap"), - 0x04301: (161, "PromiseResolveThenableJobInfoMap"), - 0x04359: (162, "PromiseReactionJobInfoMap"), - 0x043b1: (163, "DebugInfoMap"), - 0x04409: (164, "BreakPointInfoMap"), - 0x04461: (165, "PrototypeInfoMap"), - 0x044b9: (166, "Tuple2Map"), - 0x04511: (167, "Tuple3Map"), - 0x04569: (168, "ContextExtensionMap"), - 0x045c1: (169, "ConstantElementsPairMap"), - 0x04619: (170, "ModuleMap"), - 0x04671: (171, "ModuleInfoEntryMap"), + 0x03f39: (156, "AllocationMementoMap"), + 0x03f91: (204, "JSPromiseCapabilityMap"), + 0x03fe9: (149, "AccessorInfoMap"), + 0x04041: (150, "AccessorPairMap"), + 0x04099: (151, "AccessCheckInfoMap"), + 0x040f1: (153, "FunctionTemplateInfoMap"), + 0x04149: (154, "ObjectTemplateInfoMap"), + 0x041a1: (155, "AllocationSiteMap"), + 0x041f9: (158, "AliasedArgumentsEntryMap"), + 0x04251: (159, "PromiseResolveThenableJobInfoMap"), + 0x042a9: (160, "PromiseReactionJobInfoMap"), + 0x04301: (161, "DebugInfoMap"), + 0x04359: (162, "StackFrameInfoMap"), + 0x043b1: (163, "PrototypeInfoMap"), + 0x04409: (164, "Tuple2Map"), + 0x04461: (165, "Tuple3Map"), + 0x044b9: (166, "ContextExtensionMap"), + 0x04511: (167, "ModuleMap"), + 0x04569: (168, "ModuleInfoEntryMap"), + 0x045c1: (169, "AsyncGeneratorRequestMap"), } # List of known V8 objects. @@ -268,56 +272,38 @@ ("OLD_SPACE", 0x023b1): "TrueValue", ("OLD_SPACE", 0x02421): "FalseValue", ("OLD_SPACE", 0x02471): "empty_string", - ("OLD_SPACE", 0x02489): "ArgumentsMarker", - ("OLD_SPACE", 0x024e1): "EmptyByteArray", - ("OLD_SPACE", 0x024f1): "EmptyWeakCell", - ("OLD_SPACE", 0x02509): "InfinityValue", - ("OLD_SPACE", 0x02519): "MinusZeroValue", - ("OLD_SPACE", 0x02529): "MinusInfinityValue", - ("OLD_SPACE", 0x04979): "EmptyScopeInfo", - ("OLD_SPACE", 0x04989): "Exception", - ("OLD_SPACE", 0x049e1): "TerminationException", - ("OLD_SPACE", 0x04a41): "OptimizedOut", - ("OLD_SPACE", 0x04a99): "StaleRegister", - ("OLD_SPACE", 0x04af1): "EmptyFixedUint8Array", - ("OLD_SPACE", 0x04b11): "EmptyFixedInt8Array", - ("OLD_SPACE", 0x04b31): "EmptyFixedUint16Array", - ("OLD_SPACE", 0x04b51): "EmptyFixedInt16Array", - ("OLD_SPACE", 0x04b71): "EmptyFixedUint32Array", - ("OLD_SPACE", 0x04b91): "EmptyFixedInt32Array", - ("OLD_SPACE", 0x04bb1): "EmptyFixedFloat32Array", - ("OLD_SPACE", 0x04bd1): "EmptyFixedFloat64Array", - ("OLD_SPACE", 0x04bf1): "EmptyFixedUint8ClampedArray", - ("OLD_SPACE", 0x04c11): "EmptyScript", - ("OLD_SPACE", 0x04c99): "UndefinedCell", - ("OLD_SPACE", 0x04ca9): "EmptySloppyArgumentsElements", - ("OLD_SPACE", 0x04cc9): "EmptySlowElementDictionary", - ("OLD_SPACE", 0x04d19): "EmptyPropertyCell", - ("OLD_SPACE", 0x04d39): "ArrayProtector", - ("OLD_SPACE", 0x04d59): "IsConcatSpreadableProtector", - ("OLD_SPACE", 0x04d69): "SpeciesProtector", - ("OLD_SPACE", 0x04d79): "StringLengthProtector", - ("OLD_SPACE", 0x04d99): "FastArrayIterationProtector", - ("OLD_SPACE", 0x04da9): "ArrayIteratorProtector", - ("OLD_SPACE", 0x04dc9): "ArrayBufferNeuteringProtector", - ("OLD_SPACE", 0x04de9): "NumberStringCache", - ("OLD_SPACE", 0x05df9): "SingleCharacterStringCache", - ("OLD_SPACE", 0x06669): "StringSplitCache", - ("OLD_SPACE", 0x06e79): "RegExpMultipleCache", - ("OLD_SPACE", 0x07689): "NativesSourceCache", - ("OLD_SPACE", 0x07931): "ExtraNativesSourceCache", - ("OLD_SPACE", 0x07969): "ExperimentalExtraNativesSourceCache", - ("OLD_SPACE", 0x07981): "EmptyPropertiesDictionary", - ("OLD_SPACE", 0x079d1): "ScriptList", - ("OLD_SPACE", 0x22019): "CodeStubs", - ("OLD_SPACE", 0x2f199): "WeakObjectToCodeTable", - ("OLD_SPACE", 0x2f3c1): "WeakNewSpaceObjectToCodeList", - ("OLD_SPACE", 0x2f451): "NoScriptSharedFunctionInfos", - ("OLD_SPACE", 0x4abd9): "MessageListeners", - ("OLD_SPACE", 0x4abf9): "NoOpInterceptorInfo", - ("OLD_SPACE", 0x531d1): "StringTable", - ("CODE_SPACE", 0x2cde1): "JsEntryCode", - ("CODE_SPACE", 0x31241): "JsConstructEntryCode", + ("OLD_SPACE", 0x02489): "EmptyScopeInfo", + ("OLD_SPACE", 0x02499): "ArgumentsMarker", + ("OLD_SPACE", 0x024f1): "Exception", + ("OLD_SPACE", 0x02549): "TerminationException", + ("OLD_SPACE", 0x025a9): "OptimizedOut", + ("OLD_SPACE", 0x02601): "StaleRegister", + ("OLD_SPACE", 0x02659): "EmptyByteArray", + ("OLD_SPACE", 0x02669): "EmptyFixedUint8Array", + ("OLD_SPACE", 0x02689): "EmptyFixedInt8Array", + ("OLD_SPACE", 0x026a9): "EmptyFixedUint16Array", + ("OLD_SPACE", 0x026c9): "EmptyFixedInt16Array", + ("OLD_SPACE", 0x026e9): "EmptyFixedUint32Array", + ("OLD_SPACE", 0x02709): "EmptyFixedInt32Array", + ("OLD_SPACE", 0x02729): "EmptyFixedFloat32Array", + ("OLD_SPACE", 0x02749): "EmptyFixedFloat64Array", + ("OLD_SPACE", 0x02769): "EmptyFixedUint8ClampedArray", + ("OLD_SPACE", 0x02789): "EmptyScript", + ("OLD_SPACE", 0x02811): "UndefinedCell", + ("OLD_SPACE", 0x02821): "EmptySloppyArgumentsElements", + ("OLD_SPACE", 0x02841): "EmptySlowElementDictionary", + ("OLD_SPACE", 0x02891): "EmptyPropertyCell", + ("OLD_SPACE", 0x028b1): "EmptyWeakCell", + ("OLD_SPACE", 0x028c9): "ArrayProtector", + ("OLD_SPACE", 0x028e9): "IsConcatSpreadableProtector", + ("OLD_SPACE", 0x028f9): "SpeciesProtector", + ("OLD_SPACE", 0x02909): "StringLengthProtector", + ("OLD_SPACE", 0x02929): "FastArrayIterationProtector", + ("OLD_SPACE", 0x02939): "ArrayIteratorProtector", + ("OLD_SPACE", 0x02959): "ArrayBufferNeuteringProtector", + ("OLD_SPACE", 0x02979): "InfinityValue", + ("OLD_SPACE", 0x02989): "MinusZeroValue", + ("OLD_SPACE", 0x02999): "MinusInfinityValue", } # List of known V8 Frame Markers. @@ -340,3 +326,5 @@ "BUILTIN", "BUILTIN_EXIT", ) + +# This set of constants is generated from a shipping build. diff --git a/deps/v8/tools/v8heapconst.py.tmpl b/deps/v8/tools/v8heapconst.py.tmpl deleted file mode 100644 index a773f47c8b942d..00000000000000 --- a/deps/v8/tools/v8heapconst.py.tmpl +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright 2013 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. - -# This file is automatically generated from the V8 source and should not -# be modified manually, run 'make grokdump' instead to update this file. - diff --git a/deps/v8/tools/verify_source_deps.py b/deps/v8/tools/verify_source_deps.py index 6f804040cc6499..e3a39c1d17c481 100755 --- a/deps/v8/tools/verify_source_deps.py +++ b/deps/v8/tools/verify_source_deps.py @@ -31,6 +31,7 @@ os.path.join(V8_BASE, 'test', 'fuzzer', 'fuzzer.gyp'), os.path.join(V8_BASE, 'test', 'unittests', 'unittests.gyp'), os.path.join(V8_BASE, 'test', 'inspector', 'inspector.gyp'), + os.path.join(V8_BASE, 'test', 'mkgrokdump', 'mkgrokdump.gyp'), os.path.join(V8_BASE, 'testing', 'gmock.gyp'), os.path.join(V8_BASE, 'testing', 'gtest.gyp'), os.path.join(V8_BASE, 'tools', 'parser-shell.gyp'), @@ -49,11 +50,13 @@ os.path.join('test', 'fuzzer'), os.path.join('test', 'unittests'), os.path.join('test', 'inspector'), + os.path.join('test', 'mkgrokdump'), ] GYP_UNSUPPORTED_FEATURES = [ 'gcmole', 'setup-isolate-deserialize.cc', + 'v8-version.h' ] GN_FILES = [ @@ -64,6 +67,7 @@ os.path.join(V8_BASE, 'test', 'cctest', 'BUILD.gn'), os.path.join(V8_BASE, 'test', 'unittests', 'BUILD.gn'), os.path.join(V8_BASE, 'test', 'inspector', 'BUILD.gn'), + os.path.join(V8_BASE, 'test', 'mkgrokdump', 'BUILD.gn'), os.path.join(V8_BASE, 'tools', 'BUILD.gn'), ] @@ -77,6 +81,7 @@ 'qnx', 'solaris', 'vtune', + 'v8-version.h', 'x87', ] @@ -88,6 +93,7 @@ os.path.join('test', 'cctest'), os.path.join('test', 'unittests'), os.path.join('test', 'inspector'), + os.path.join('test', 'mkgrokdump'), ] def pathsplit(path): diff --git a/deps/v8/tools/update-wasm-fuzzers.sh b/deps/v8/tools/wasm/update-wasm-fuzzers.sh similarity index 59% rename from deps/v8/tools/update-wasm-fuzzers.sh rename to deps/v8/tools/wasm/update-wasm-fuzzers.sh index a58681f6826807..ab9f84be287d04 100755 --- a/deps/v8/tools/update-wasm-fuzzers.sh +++ b/deps/v8/tools/wasm/update-wasm-fuzzers.sh @@ -5,52 +5,52 @@ set -e -TOOLS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +TOOLS_WASM_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -cd ${TOOLS_DIR}/.. +cd ${TOOLS_WASM_DIR}/../.. -rm -rf test/fuzzer/wasm -rm -rf test/fuzzer/wasm_asmjs +rm -rf test/fuzzer/wasm_corpus +rm -rf test/fuzzer/wasm_asmjs_corpus -make x64.release -j +tools/dev/gm.py x64.release all -mkdir -p test/fuzzer/wasm -mkdir -p test/fuzzer/wasm_asmjs +mkdir -p test/fuzzer/wasm_corpus +mkdir -p test/fuzzer/wasm_asmjs_corpus # asm.js ./tools/run-tests.py -j8 --variants=default --timeout=10 --arch=x64 \ --mode=release --no-presubmit --extra-flags="--dump-wasm-module \ - --dump-wasm-module-path=./test/fuzzer/wasm_asmjs/" mjsunit/wasm/asm* + --dump-wasm-module-path=./test/fuzzer/wasm_asmjs_corpus/" mjsunit/wasm/asm* ./tools/run-tests.py -j8 --variants=default --timeout=10 --arch=x64 \ --mode=release --no-presubmit --extra-flags="--dump-wasm-module \ - --dump-wasm-module-path=./test/fuzzer/wasm_asmjs/" mjsunit/asm/* + --dump-wasm-module-path=./test/fuzzer/wasm_asmjs_corpus/" mjsunit/asm/* +# WASM ./tools/run-tests.py -j8 --variants=default --timeout=10 --arch=x64 \ --mode=release --no-presubmit --extra-flags="--dump-wasm-module \ - --dump-wasm-module-path=./test/fuzzer/wasm_asmjs/" mjsunit/regress/asm/* -# WASM + --dump-wasm-module-path=./test/fuzzer/wasm_corpus/" unittests ./tools/run-tests.py -j8 --variants=default --timeout=10 --arch=x64 \ --mode=release --no-presubmit --extra-flags="--dump-wasm-module \ - --dump-wasm-module-path=./test/fuzzer/wasm/" unittests + --dump-wasm-module-path=./test/fuzzer/wasm_corpus/" wasm-spec-tests/* ./tools/run-tests.py -j8 --variants=default --timeout=10 --arch=x64 \ --mode=release --no-presubmit --extra-flags="--dump-wasm-module \ - --dump-wasm-module-path=./test/fuzzer/wasm/" mjsunit/wasm/* + --dump-wasm-module-path=./test/fuzzer/wasm_corpus/" mjsunit/wasm/* ./tools/run-tests.py -j8 --variants=default --timeout=10 --arch=x64 \ --mode=release --no-presubmit --extra-flags="--dump-wasm-module \ - --dump-wasm-module-path=./test/fuzzer/wasm/" \ + --dump-wasm-module-path=./test/fuzzer/wasm_corpus/" \ $(cd test/; ls cctest/wasm/test-*.cc | \ sed -es/wasm\\///g | sed -es/[.]cc/\\/\\*/g) # Delete items over 20k. -for x in $(find ./test/fuzzer/wasm/ -type f -size +20k) +for x in $(find ./test/fuzzer/wasm_corpus/ -type f -size +20k) do rm $x done -for x in $(find ./test/fuzzer/wasm_asmjs/ -type f -size +20k) +for x in $(find ./test/fuzzer/wasm_asmjs_corpus/ -type f -size +20k) do rm $x done # Upload changes. cd test/fuzzer -upload_to_google_storage.py -a -b v8-wasm-fuzzer wasm -upload_to_google_storage.py -a -b v8-wasm-asmjs-fuzzer wasm_asmjs +upload_to_google_storage.py -a -b v8-wasm-fuzzer wasm_corpus +upload_to_google_storage.py -a -b v8-wasm-asmjs-fuzzer wasm_asmjs_corpus diff --git a/deps/v8/tools/wasm/update-wasm-spec-tests.sh b/deps/v8/tools/wasm/update-wasm-spec-tests.sh new file mode 100755 index 00000000000000..be277e9ad73ef8 --- /dev/null +++ b/deps/v8/tools/wasm/update-wasm-spec-tests.sh @@ -0,0 +1,30 @@ +#!/bin/bash +# Copyright 2017 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +set -e + +TOOLS_WASM_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +V8_DIR="${TOOLS_WASM_DIR}/../.." + +cd ${V8_DIR} + +mkdir -p ./test/wasm-spec-tests/tests/ +rm -rf ./test/wasm-spec-tests/tests/* + +./tools/dev/gm.py x64.release all + +cd ${V8_DIR}/test/wasm-js/interpreter +make + +cd ${V8_DIR}/test/wasm-js/test/core + +./run.py --wasm ${V8_DIR}/test/wasm-js/interpreter/wasm --js ${V8_DIR}/out/x64.release/d8 + +cp ${V8_DIR}/test/wasm-js/test/core/output/*.js ${V8_DIR}/test/wasm-spec-tests/tests + +cd ${V8_DIR}/test/wasm-spec-tests +upload_to_google_storage.py -a -b v8-wasm-spec-tests tests + + diff --git a/deps/v8/tools/whitespace.txt b/deps/v8/tools/whitespace.txt index 0c3c0d7feb1ff8..4448e29f885c6e 100644 --- a/deps/v8/tools/whitespace.txt +++ b/deps/v8/tools/whitespace.txt @@ -7,5 +7,5 @@ A Smi balks into a war and says: The doubles heard this and started to unbox. The Smi looked at them when a crazy v8-autoroll account showed up...... The autoroller bought a round of Himbeerbrause. Suddenly ..... -The bartender starts to shake the bottles..... +The bartender starts to shake the bottles........ . diff --git a/src/inspector_agent.cc b/src/inspector_agent.cc index 6599e870432662..4d51c3d140f941 100644 --- a/src/inspector_agent.cc +++ b/src/inspector_agent.cc @@ -219,7 +219,8 @@ class JsBindingsSessionDelegate : public InspectorSessionDelegate { Local argument = v8string.ToLocalChecked().As(); Local callback = callback_.Get(isolate); Local receiver = receiver_.Get(isolate); - static_cast(callback->Call(env_->context(), receiver, 1, &argument)); + callback->Call(env_->context(), receiver, 1, &argument) + .FromMaybe(Local()); } void Disconnect() { @@ -353,10 +354,10 @@ void InspectorConsoleCall(const v8::FunctionCallbackInfo& info) { Local node_method = info[1]; CHECK(node_method->IsFunction()); - static_cast(node_method.As()->Call(context, - info.Holder(), - call_args.size(), - call_args.data())); + node_method.As()->Call(context, + info.Holder(), + call_args.size(), + call_args.data()).FromMaybe(Local()); } void CallAndPauseOnStart( diff --git a/src/node_url.cc b/src/node_url.cc index c50700b2946831..54dbc3a053b3a1 100644 --- a/src/node_url.cc +++ b/src/node_url.cc @@ -1943,7 +1943,7 @@ static void Parse(Environment* env, null, // fragment defaults to null }; SetArgs(env, argv, &url); - (void)cb->Call(context, recv, arraysize(argv), argv); + cb->Call(context, recv, arraysize(argv), argv).FromMaybe(Local()); } else if (error_cb->IsFunction()) { Local argv[2] = { undef, undef }; argv[ERR_ARG_FLAGS] = Integer::NewFromUnsigned(isolate, url.flags); @@ -1951,7 +1951,8 @@ static void Parse(Environment* env, String::NewFromUtf8(env->isolate(), input, v8::NewStringType::kNormal).ToLocalChecked(); - (void)error_cb.As()->Call(context, recv, arraysize(argv), argv); + error_cb.As()->Call(context, recv, arraysize(argv), argv) + .FromMaybe(Local()); } } diff --git a/src/node_version.h b/src/node_version.h index 7b43eaf56c2931..a35d90559550fb 100644 --- a/src/node_version.h +++ b/src/node_version.h @@ -73,6 +73,6 @@ * an API is broken in the C++ side, including in v8 or * other dependencies. */ -#define NODE_MODULE_VERSION 56 /* Node.js v8.0.0 */ +#define NODE_MODULE_VERSION 57 /* Node.js v8.0.0 */ #endif // SRC_NODE_VERSION_H_