diff --git a/deps/v8/.clang-format b/deps/v8/.clang-format index ae160a0bcc9789..55479a2f760845 100644 --- a/deps/v8/.clang-format +++ b/deps/v8/.clang-format @@ -1,4 +1,5 @@ # Defines the Google C++ style for automatic reformatting. # http://clang.llvm.org/docs/ClangFormatStyleOptions.html BasedOnStyle: Google +DerivePointerAlignment: false MaxEmptyLinesToKeep: 1 diff --git a/deps/v8/.gn b/deps/v8/.gn index aee1752d4be65e..c80980ea092d05 100644 --- a/deps/v8/.gn +++ b/deps/v8/.gn @@ -2,6 +2,8 @@ # tree and to set startup options. For documentation on the values set in this # file, run "gn help dotfile" at the command line. +import("//build/dotfile_settings.gni") + # The location of the build configuration file. buildconfig = "//build/config/BUILDCONFIG.gn" @@ -19,30 +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/config/android/BUILD.gn", - "//build/config/android/config.gni", - "//build/config/android/internal_rules.gni", - "//build/config/android/rules.gni", - "//build/config/BUILD.gn", - "//build/config/compiler/BUILD.gn", - "//build/config/gcc/gcc_version.gni", - "//build/config/ios/ios_sdk.gni", - "//build/config/linux/atk/BUILD.gn", - "//build/config/linux/BUILD.gn", - "//build/config/linux/pkg_config.gni", - "//build/config/mac/mac_sdk.gni", - "//build/config/posix/BUILD.gn", - "//build/config/sysroot.gni", - "//build/config/win/BUILD.gn", - "//build/config/win/visual_studio_version.gni", - "//build/gn_helpers.py", - "//build/gypi_to_gn.py", - "//build/toolchain/concurrent_links.gni", - "//build/toolchain/gcc_toolchain.gni", - "//build/toolchain/mac/BUILD.gn", - "//build/toolchain/win/BUILD.gn", - "//build/util/branding.gni", - "//build/util/version.gni", - "//test/test262/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 476d0c36328c18..35edca97e5f105 100644 --- a/deps/v8/AUTHORS +++ b/deps/v8/AUTHORS @@ -81,6 +81,7 @@ Julien Brianceau JunHo Seo Kang-Hao (Kenny) Lu Karl Skomski +Kevin Gibbons Luis Reis Luke Zarko Maciej MaƂecki @@ -104,6 +105,7 @@ Patrick Gansterer Peter Rybin Peter Varga Paul Lind +Qiuyi Zhang Rafal Krypa Refael Ackermann Rene Rebe diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn index 8587356ddcca34..048420c7b9dd75 100644 --- a/deps/v8/BUILD.gn +++ b/deps/v8/BUILD.gn @@ -14,8 +14,6 @@ if (is_android) { import("gni/v8.gni") import("gni/isolate.gni") -import("//build_overrides/v8.gni") - import("snapshot_toolchain.gni") declare_args() { @@ -23,7 +21,10 @@ declare_args() { v8_android_log_stdout = false # Sets -DVERIFY_HEAP. - v8_enable_verify_heap = false + v8_enable_verify_heap = "" + + # Sets -DVERIFY_PREDICTABLE + v8_enable_verify_predictable = false # Enable compiler warnings when using V8_DEPRECATED apis. v8_deprecation_warnings = false @@ -51,7 +52,13 @@ declare_args() { v8_interpreted_regexp = false # Sets -dOBJECT_PRINT. - v8_object_print = "" + v8_enable_object_print = "" + + # Sets -dTRACE_MAPS. + v8_enable_trace_maps = "" + + # Sets -dV8_ENABLE_CHECKS. + v8_enable_v8_checks = "" # With post mortem support enabled, metadata is embedded into libv8 that # describes various parameters of the VM for use by debuggers. See @@ -89,11 +96,20 @@ if (v8_enable_gdbjit == "") { } # Derived defaults. -if (v8_object_print == "") { - v8_object_print = is_debug && !v8_optimized_debug +if (v8_enable_verify_heap == "") { + v8_enable_verify_heap = is_debug +} +if (v8_enable_object_print == "") { + v8_enable_object_print = is_debug } if (v8_enable_disassembler == "") { - v8_enable_disassembler = is_debug && !v8_optimized_debug + v8_enable_disassembler = is_debug +} +if (v8_enable_trace_maps == "") { + v8_enable_trace_maps = is_debug +} +if (v8_enable_v8_checks == "") { + v8_enable_v8_checks = is_debug } # Specifies if the target build is a simulator build. Comparing target cpu @@ -155,7 +171,7 @@ config("external_config") { defines = [ "USING_V8_SHARED" ] } include_dirs = [ "include" ] - if (v8_enable_inspector_override) { + if (v8_enable_inspector) { include_dirs += [ "$target_gen_dir/include" ] } } @@ -179,12 +195,21 @@ config("features") { if (v8_enable_gdbjit) { defines += [ "ENABLE_GDB_JIT_INTERFACE" ] } - if (v8_object_print) { + if (v8_enable_object_print) { defines += [ "OBJECT_PRINT" ] } if (v8_enable_verify_heap) { defines += [ "VERIFY_HEAP" ] } + if (v8_enable_verify_predictable) { + defines += [ "VERIFY_PREDICTABLE" ] + } + if (v8_enable_trace_maps) { + defines += [ "TRACE_MAPS" ] + } + if (v8_enable_v8_checks) { + defines += [ "V8_ENABLE_CHECKS" ] + } if (v8_interpreted_regexp) { defines += [ "V8_INTERPRETED_REGEXP" ] } @@ -348,15 +373,7 @@ config("toolchain") { ldflags += [ "-rdynamic" ] } - # TODO(jochen): Add support for different debug optimization levels. - defines += [ - "ENABLE_DISASSEMBLER", - "V8_ENABLE_CHECKS", - "OBJECT_PRINT", - "VERIFY_HEAP", - "DEBUG", - "TRACE_MAPS", - ] + defines += [ "DEBUG" ] if (v8_enable_slow_dchecks) { defines += [ "ENABLE_SLOW_DCHECKS" ] } @@ -408,7 +425,6 @@ action("js2c") { "src/js/prologue.js", "src/js/runtime.js", "src/js/v8natives.js", - "src/js/symbol.js", "src/js/array.js", "src/js/string.js", "src/js/arraybuffer.js", @@ -422,6 +438,7 @@ action("js2c") { "src/js/spread.js", "src/js/proxy.js", "src/js/async-await.js", + "src/js/harmony-string-padding.js", "src/debug/mirrors.js", "src/debug/debug.js", "src/debug/liveedit.js", @@ -466,7 +483,6 @@ action("js2c_experimental") { "src/messages.h", "src/js/harmony-atomics.js", "src/js/harmony-simd.js", - "src/js/harmony-string-padding.js", ] outputs = [ @@ -742,7 +758,7 @@ action("v8_dump_build_config") { "is_tsan=$is_tsan", "target_cpu=\"$target_cpu\"", "v8_enable_i18n_support=$v8_enable_i18n_support", - "v8_enable_inspector=$v8_enable_inspector_override", + "v8_enable_inspector=$v8_enable_inspector", "v8_target_cpu=\"$v8_target_cpu\"", "v8_use_snapshot=$v8_use_snapshot", ] @@ -848,6 +864,17 @@ if (v8_use_external_startup_data) { } } +# This is split out to be a non-code containing target that the Chromium browser +# DLL can depend upon to get only a version string. +v8_source_set("v8_version") { + configs = [ ":internal_config" ] + + sources = [ + "include/v8-version-string.h", + "include/v8-version.h", + ] +} + v8_source_set("v8_base") { visibility = [ ":*" ] # Only targets in this file can depend on this. @@ -861,7 +888,6 @@ v8_source_set("v8_base") { "include/v8-profiler.h", "include/v8-testing.h", "include/v8-util.h", - "include/v8-version.h", "include/v8.h", "include/v8config.h", "src/accessors.cc", @@ -893,12 +919,15 @@ v8_source_set("v8_base") { "src/asmjs/asm-wasm-builder.h", "src/asmjs/switch-logic.cc", "src/asmjs/switch-logic.h", + "src/assembler-inl.h", "src/assembler.cc", "src/assembler.h", "src/assert-scope.cc", "src/assert-scope.h", "src/ast/ast-expression-rewriter.cc", "src/ast/ast-expression-rewriter.h", + "src/ast/ast-function-literal-id-reindexer.cc", + "src/ast/ast-function-literal-id-reindexer.h", "src/ast/ast-literal-reindexer.cc", "src/ast/ast-literal-reindexer.h", "src/ast/ast-numbering.cc", @@ -919,7 +948,6 @@ v8_source_set("v8_base") { "src/ast/modules.h", "src/ast/prettyprinter.cc", "src/ast/prettyprinter.h", - "src/ast/scopeinfo.cc", "src/ast/scopes.cc", "src/ast/scopes.h", "src/ast/variables.cc", @@ -944,6 +972,8 @@ v8_source_set("v8_base") { "src/builtins/builtins-boolean.cc", "src/builtins/builtins-call.cc", "src/builtins/builtins-callsite.cc", + "src/builtins/builtins-constructor.cc", + "src/builtins/builtins-constructor.h", "src/builtins/builtins-conversion.cc", "src/builtins/builtins-dataview.cc", "src/builtins/builtins-date.cc", @@ -953,14 +983,15 @@ v8_source_set("v8_base") { "src/builtins/builtins-generator.cc", "src/builtins/builtins-global.cc", "src/builtins/builtins-handler.cc", + "src/builtins/builtins-ic.cc", "src/builtins/builtins-internal.cc", "src/builtins/builtins-interpreter.cc", - "src/builtins/builtins-iterator.cc", "src/builtins/builtins-json.cc", "src/builtins/builtins-math.cc", "src/builtins/builtins-number.cc", "src/builtins/builtins-object.cc", "src/builtins/builtins-promise.cc", + "src/builtins/builtins-promise.h", "src/builtins/builtins-proxy.cc", "src/builtins/builtins-reflect.cc", "src/builtins/builtins-regexp.cc", @@ -1002,6 +1033,8 @@ v8_source_set("v8_base") { "src/compiler-dispatcher/compiler-dispatcher-job.h", "src/compiler-dispatcher/compiler-dispatcher-tracer.cc", "src/compiler-dispatcher/compiler-dispatcher-tracer.h", + "src/compiler-dispatcher/compiler-dispatcher.cc", + "src/compiler-dispatcher/compiler-dispatcher.h", "src/compiler-dispatcher/optimizing-compile-dispatcher.cc", "src/compiler-dispatcher/optimizing-compile-dispatcher.h", "src/compiler.cc", @@ -1020,12 +1053,12 @@ v8_source_set("v8_base") { "src/compiler/basic-block-instrumentor.h", "src/compiler/branch-elimination.cc", "src/compiler/branch-elimination.h", - "src/compiler/bytecode-branch-analysis.cc", - "src/compiler/bytecode-branch-analysis.h", + "src/compiler/bytecode-analysis.cc", + "src/compiler/bytecode-analysis.h", "src/compiler/bytecode-graph-builder.cc", "src/compiler/bytecode-graph-builder.h", - "src/compiler/bytecode-loop-analysis.cc", - "src/compiler/bytecode-loop-analysis.h", + "src/compiler/bytecode-liveness-map.cc", + "src/compiler/bytecode-liveness-map.h", "src/compiler/c-linkage.cc", "src/compiler/checkpoint-elimination.cc", "src/compiler/checkpoint-elimination.h", @@ -1065,6 +1098,8 @@ v8_source_set("v8_base") { "src/compiler/frame.h", "src/compiler/gap-resolver.cc", "src/compiler/gap-resolver.h", + "src/compiler/graph-assembler.cc", + "src/compiler/graph-assembler.h", "src/compiler/graph-reducer.cc", "src/compiler/graph-reducer.h", "src/compiler/graph-replay.cc", @@ -1196,8 +1231,6 @@ v8_source_set("v8_base") { "src/compiler/tail-call-optimization.h", "src/compiler/type-cache.cc", "src/compiler/type-cache.h", - "src/compiler/type-hint-analyzer.cc", - "src/compiler/type-hint-analyzer.h", "src/compiler/typed-optimization.cc", "src/compiler/typed-optimization.h", "src/compiler/typer.cc", @@ -1300,6 +1333,7 @@ v8_source_set("v8_base") { "src/debug/debug-scopes.h", "src/debug/debug.cc", "src/debug/debug.h", + "src/debug/interface-types.h", "src/debug/liveedit.cc", "src/debug/liveedit.h", "src/deoptimize-reason.cc", @@ -1343,6 +1377,9 @@ v8_source_set("v8_base") { "src/fast-accessor-assembler.h", "src/fast-dtoa.cc", "src/fast-dtoa.h", + "src/feedback-vector-inl.h", + "src/feedback-vector.cc", + "src/feedback-vector.h", "src/field-index-inl.h", "src/field-index.h", "src/field-type.cc", @@ -1373,6 +1410,8 @@ v8_source_set("v8_base") { "src/heap/array-buffer-tracker.h", "src/heap/code-stats.cc", "src/heap/code-stats.h", + "src/heap/embedder-tracing.cc", + "src/heap/embedder-tracing.h", "src/heap/gc-idle-time-handler.cc", "src/heap/gc-idle-time-handler.h", "src/heap/gc-tracer.cc", @@ -1414,6 +1453,9 @@ v8_source_set("v8_base") { "src/ic/access-compiler-data.h", "src/ic/access-compiler.cc", "src/ic/access-compiler.h", + "src/ic/accessor-assembler-impl.h", + "src/ic/accessor-assembler.cc", + "src/ic/accessor-assembler.h", "src/ic/call-optimization.cc", "src/ic/call-optimization.h", "src/ic/handler-compiler.cc", @@ -1425,6 +1467,8 @@ v8_source_set("v8_base") { "src/ic/ic-inl.h", "src/ic/ic-state.cc", "src/ic/ic-state.h", + "src/ic/ic-stats.cc", + "src/ic/ic-stats.h", "src/ic/ic.cc", "src/ic/ic.h", "src/ic/keyed-store-generic.cc", @@ -1437,10 +1481,14 @@ v8_source_set("v8_base") { "src/identity-map.h", "src/interface-descriptors.cc", "src/interface-descriptors.h", + "src/interpreter/bytecode-array-accessor.cc", + "src/interpreter/bytecode-array-accessor.h", "src/interpreter/bytecode-array-builder.cc", "src/interpreter/bytecode-array-builder.h", "src/interpreter/bytecode-array-iterator.cc", "src/interpreter/bytecode-array-iterator.h", + "src/interpreter/bytecode-array-random-iterator.cc", + "src/interpreter/bytecode-array-random-iterator.h", "src/interpreter/bytecode-array-writer.cc", "src/interpreter/bytecode-array-writer.h", "src/interpreter/bytecode-dead-code-optimizer.cc", @@ -1509,6 +1557,8 @@ v8_source_set("v8_base") { "src/machine-type.cc", "src/machine-type.h", "src/macro-assembler.h", + "src/map-updater.cc", + "src/map-updater.h", "src/messages.cc", "src/messages.h", "src/msan.h", @@ -1519,6 +1569,11 @@ v8_source_set("v8_base") { "src/objects-printer.cc", "src/objects.cc", "src/objects.h", + "src/objects/module-info.h", + "src/objects/object-macros-undef.h", + "src/objects/object-macros.h", + "src/objects/scope-info.cc", + "src/objects/scope-info.h", "src/ostreams.cc", "src/ostreams.h", "src/parsing/duplicate-finder.cc", @@ -1533,6 +1588,8 @@ v8_source_set("v8_base") { "src/parsing/parser-base.h", "src/parsing/parser.cc", "src/parsing/parser.h", + "src/parsing/parsing.cc", + "src/parsing/parsing.h", "src/parsing/pattern-rewriter.cc", "src/parsing/preparse-data-format.h", "src/parsing/preparse-data.cc", @@ -1578,8 +1635,6 @@ v8_source_set("v8_base") { "src/profiler/tracing-cpu-profiler.h", "src/profiler/unbound-queue-inl.h", "src/profiler/unbound-queue.h", - "src/promise-utils.cc", - "src/promise-utils.h", "src/property-descriptor.cc", "src/property-descriptor.h", "src/property-details.h", @@ -1679,6 +1734,8 @@ v8_source_set("v8_base") { "src/startup-data-util.h", "src/string-builder.cc", "src/string-builder.h", + "src/string-case.cc", + "src/string-case.h", "src/string-search.h", "src/string-stream.cc", "src/string-stream.h", @@ -1693,9 +1750,7 @@ v8_source_set("v8_base") { "src/transitions-inl.h", "src/transitions.cc", "src/transitions.h", - "src/type-feedback-vector-inl.h", - "src/type-feedback-vector.cc", - "src/type-feedback-vector.h", + "src/trap-handler/trap-handler.h", "src/type-hints.cc", "src/type-hints.h", "src/type-info.cc", @@ -1724,9 +1779,9 @@ v8_source_set("v8_base") { "src/version.h", "src/vm-state-inl.h", "src/vm-state.h", - "src/wasm/ast-decoder.cc", - "src/wasm/ast-decoder.h", "src/wasm/decoder.h", + "src/wasm/function-body-decoder.cc", + "src/wasm/function-body-decoder.h", "src/wasm/leb-helper.h", "src/wasm/managed.h", "src/wasm/module-decoder.cc", @@ -1740,6 +1795,7 @@ v8_source_set("v8_base") { "src/wasm/wasm-interpreter.h", "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", @@ -1751,12 +1807,15 @@ v8_source_set("v8_base") { "src/wasm/wasm-opcodes.h", "src/wasm/wasm-result.cc", "src/wasm/wasm-result.h", + "src/wasm/wasm-text.cc", + "src/wasm/wasm-text.h", "src/zone/accounting-allocator.cc", "src/zone/accounting-allocator.h", "src/zone/zone-allocator.h", "src/zone/zone-allocator.h", "src/zone/zone-chunk-list.h", "src/zone/zone-containers.h", + "src/zone/zone-handle-set.h", "src/zone/zone-segment.cc", "src/zone/zone-segment.h", "src/zone/zone.cc", @@ -1797,9 +1856,7 @@ v8_source_set("v8_base") { "src/ia32/simulator-ia32.h", "src/ic/ia32/access-compiler-ia32.cc", "src/ic/ia32/handler-compiler-ia32.cc", - "src/ic/ia32/ic-compiler-ia32.cc", "src/ic/ia32/ic-ia32.cc", - "src/ic/ia32/stub-cache-ia32.cc", "src/regexp/ia32/regexp-macro-assembler-ia32.cc", "src/regexp/ia32/regexp-macro-assembler-ia32.h", ] @@ -1822,9 +1879,7 @@ v8_source_set("v8_base") { "src/full-codegen/x64/full-codegen-x64.cc", "src/ic/x64/access-compiler-x64.cc", "src/ic/x64/handler-compiler-x64.cc", - "src/ic/x64/ic-compiler-x64.cc", "src/ic/x64/ic-x64.cc", - "src/ic/x64/stub-cache-x64.cc", "src/regexp/x64/regexp-macro-assembler-x64.cc", "src/regexp/x64/regexp-macro-assembler-x64.h", "src/third_party/valgrind/valgrind.h", @@ -1889,8 +1944,6 @@ v8_source_set("v8_base") { "src/ic/arm/access-compiler-arm.cc", "src/ic/arm/handler-compiler-arm.cc", "src/ic/arm/ic-arm.cc", - "src/ic/arm/ic-compiler-arm.cc", - "src/ic/arm/stub-cache-arm.cc", "src/regexp/arm/regexp-macro-assembler-arm.cc", "src/regexp/arm/regexp-macro-assembler-arm.h", ] @@ -1948,8 +2001,6 @@ v8_source_set("v8_base") { "src/ic/arm64/access-compiler-arm64.cc", "src/ic/arm64/handler-compiler-arm64.cc", "src/ic/arm64/ic-arm64.cc", - "src/ic/arm64/ic-compiler-arm64.cc", - "src/ic/arm64/stub-cache-arm64.cc", "src/regexp/arm64/regexp-macro-assembler-arm64.cc", "src/regexp/arm64/regexp-macro-assembler-arm64.h", ] @@ -1970,9 +2021,7 @@ v8_source_set("v8_base") { "src/full-codegen/mips/full-codegen-mips.cc", "src/ic/mips/access-compiler-mips.cc", "src/ic/mips/handler-compiler-mips.cc", - "src/ic/mips/ic-compiler-mips.cc", "src/ic/mips/ic-mips.cc", - "src/ic/mips/stub-cache-mips.cc", "src/mips/assembler-mips-inl.h", "src/mips/assembler-mips.cc", "src/mips/assembler-mips.h", @@ -2012,9 +2061,7 @@ v8_source_set("v8_base") { "src/full-codegen/mips64/full-codegen-mips64.cc", "src/ic/mips64/access-compiler-mips64.cc", "src/ic/mips64/handler-compiler-mips64.cc", - "src/ic/mips64/ic-compiler-mips64.cc", "src/ic/mips64/ic-mips64.cc", - "src/ic/mips64/stub-cache-mips64.cc", "src/mips64/assembler-mips64-inl.h", "src/mips64/assembler-mips64.cc", "src/mips64/assembler-mips64.h", @@ -2054,9 +2101,7 @@ v8_source_set("v8_base") { "src/full-codegen/ppc/full-codegen-ppc.cc", "src/ic/ppc/access-compiler-ppc.cc", "src/ic/ppc/handler-compiler-ppc.cc", - "src/ic/ppc/ic-compiler-ppc.cc", "src/ic/ppc/ic-ppc.cc", - "src/ic/ppc/stub-cache-ppc.cc", "src/ppc/assembler-ppc-inl.h", "src/ppc/assembler-ppc.cc", "src/ppc/assembler-ppc.h", @@ -2096,9 +2141,7 @@ v8_source_set("v8_base") { "src/full-codegen/s390/full-codegen-s390.cc", "src/ic/s390/access-compiler-s390.cc", "src/ic/s390/handler-compiler-s390.cc", - "src/ic/s390/ic-compiler-s390.cc", "src/ic/s390/ic-s390.cc", - "src/ic/s390/stub-cache-s390.cc", "src/regexp/s390/regexp-macro-assembler-s390.cc", "src/regexp/s390/regexp-macro-assembler-s390.h", "src/s390/assembler-s390-inl.h", @@ -2138,9 +2181,7 @@ v8_source_set("v8_base") { "src/full-codegen/x87/full-codegen-x87.cc", "src/ic/x87/access-compiler-x87.cc", "src/ic/x87/handler-compiler-x87.cc", - "src/ic/x87/ic-compiler-x87.cc", "src/ic/x87/ic-x87.cc", - "src/ic/x87/stub-cache-x87.cc", "src/regexp/x87/regexp-macro-assembler-x87.cc", "src/regexp/x87/regexp-macro-assembler-x87.h", "src/x87/assembler-x87-inl.h", @@ -2169,6 +2210,7 @@ v8_source_set("v8_base") { deps = [ ":v8_libbase", ":v8_libsampler", + ":v8_version", ] sources += [ v8_generated_peephole_source ] @@ -2196,7 +2238,7 @@ v8_source_set("v8_base") { deps += [ ":postmortem-metadata" ] } - if (v8_enable_inspector_override) { + if (v8_enable_inspector) { deps += [ "src/inspector:inspector" ] } } @@ -2399,14 +2441,10 @@ v8_source_set("fuzzer_support") { ":v8_libbase", ":v8_libplatform", ] -} - -v8_source_set("simple_fuzzer") { - sources = [ - "test/fuzzer/fuzzer.cc", - ] - configs = [ ":internal_config_base" ] + if (v8_enable_i18n_support) { + deps += [ "//third_party/icu" ] + } } ############################################################################### @@ -2477,14 +2515,10 @@ group("gn_all") { deps = [ ":d8", + ":v8_fuzzers", ":v8_hello_world", ":v8_parser_shell", ":v8_sample_process", - ":v8_simple_json_fuzzer", - ":v8_simple_parser_fuzzer", - ":v8_simple_regexp_fuzzer", - ":v8_simple_wasm_asmjs_fuzzer", - ":v8_simple_wasm_fuzzer", "test:gn_all", "tools:gn_all", ] @@ -2498,6 +2532,26 @@ group("gn_all") { } } +group("v8_fuzzers") { + testonly = true + deps = [ + ":v8_simple_json_fuzzer", + ":v8_simple_parser_fuzzer", + ":v8_simple_regexp_fuzzer", + ":v8_simple_wasm_asmjs_fuzzer", + ":v8_simple_wasm_call_fuzzer", + ":v8_simple_wasm_code_fuzzer", + ":v8_simple_wasm_data_section_fuzzer", + ":v8_simple_wasm_function_sigs_section_fuzzer", + ":v8_simple_wasm_fuzzer", + ":v8_simple_wasm_globals_section_fuzzer", + ":v8_simple_wasm_imports_section_fuzzer", + ":v8_simple_wasm_memory_section_fuzzer", + ":v8_simple_wasm_names_section_fuzzer", + ":v8_simple_wasm_types_section_fuzzer", + ] +} + if (is_component_build) { v8_component("v8") { sources = [ @@ -2527,6 +2581,7 @@ if (is_component_build) { ":v8_base", ":v8_maybe_snapshot", ] + public_configs = [ ":external_config" ] } } @@ -2566,8 +2621,12 @@ v8_executable("d8") { deps += [ "//third_party/icu" ] } + if (v8_correctness_fuzzer) { + deps += [ "tools/foozzie:v8_correctness_fuzzer_resources" ] + } + defines = [] - if (v8_enable_inspector_override) { + if (v8_enable_inspector) { defines += [ "V8_INSPECTOR_ENABLED" ] } } @@ -2687,10 +2746,14 @@ template("v8_fuzzer") { v8_executable("v8_simple_" + name) { deps = [ ":" + name, - ":simple_fuzzer", + "//build/config/sanitizers:deps", "//build/win:default_exe_manifest", ] + sources = [ + "test/fuzzer/fuzzer.cc", + ] + configs = [ ":external_config" ] } } diff --git a/deps/v8/ChangeLog b/deps/v8/ChangeLog index 2dc77568d4c9a3..1ff3b3bf8ca25c 100644 --- a/deps/v8/ChangeLog +++ b/deps/v8/ChangeLog @@ -1,3 +1,2493 @@ +2017-01-17: Version 5.7.492 + + Performance and stability improvements on all platforms. + + +2017-01-17: Version 5.7.491 + + Performance and stability improvements on all platforms. + + +2017-01-17: Version 5.7.490 + + Performance and stability improvements on all platforms. + + +2017-01-17: Version 5.7.489 + + Performance and stability improvements on all platforms. + + +2017-01-17: Version 5.7.488 + + Performance and stability improvements on all platforms. + + +2017-01-17: Version 5.7.487 + + Performance and stability improvements on all platforms. + + +2017-01-17: Version 5.7.486 + + Performance and stability improvements on all platforms. + + +2017-01-17: Version 5.7.485 + + Performance and stability improvements on all platforms. + + +2017-01-17: Version 5.7.484 + + Performance and stability improvements on all platforms. + + +2017-01-17: Version 5.7.483 + + Performance and stability improvements on all platforms. + + +2017-01-17: Version 5.7.482 + + Performance and stability improvements on all platforms. + + +2017-01-17: Version 5.7.481 + + Performance and stability improvements on all platforms. + + +2017-01-17: Version 5.7.480 + + Performance and stability improvements on all platforms. + + +2017-01-17: Version 5.7.479 + + Performance and stability improvements on all platforms. + + +2017-01-17: Version 5.7.478 + + Performance and stability improvements on all platforms. + + +2017-01-16: Version 5.7.477 + + Performance and stability improvements on all platforms. + + +2017-01-16: Version 5.7.476 + + Performance and stability improvements on all platforms. + + +2017-01-16: Version 5.7.475 + + Performance and stability improvements on all platforms. + + +2017-01-16: Version 5.7.474 + + Performance and stability improvements on all platforms. + + +2017-01-16: Version 5.7.473 + + Performance and stability improvements on all platforms. + + +2017-01-16: Version 5.7.472 + + Performance and stability improvements on all platforms. + + +2017-01-16: Version 5.7.471 + + Performance and stability improvements on all platforms. + + +2017-01-16: Version 5.7.470 + + Performance and stability improvements on all platforms. + + +2017-01-16: Version 5.7.469 + + Performance and stability improvements on all platforms. + + +2017-01-16: Version 5.7.468 + + Performance and stability improvements on all platforms. + + +2017-01-16: Version 5.7.467 + + Performance and stability improvements on all platforms. + + +2017-01-16: Version 5.7.466 + + Performance and stability improvements on all platforms. + + +2017-01-16: Version 5.7.465 + + Performance and stability improvements on all platforms. + + +2017-01-16: Version 5.7.464 + + Performance and stability improvements on all platforms. + + +2017-01-16: Version 5.7.463 + + Performance and stability improvements on all platforms. + + +2017-01-16: Version 5.7.462 + + Performance and stability improvements on all platforms. + + +2017-01-16: Version 5.7.461 + + Performance and stability improvements on all platforms. + + +2017-01-15: Version 5.7.460 + + Performance and stability improvements on all platforms. + + +2017-01-15: Version 5.7.459 + + Performance and stability improvements on all platforms. + + +2017-01-15: Version 5.7.458 + + Performance and stability improvements on all platforms. + + +2017-01-15: Version 5.7.457 + + Performance and stability improvements on all platforms. + + +2017-01-14: Version 5.7.456 + + Performance and stability improvements on all platforms. + + +2017-01-13: Version 5.7.455 + + Performance and stability improvements on all platforms. + + +2017-01-13: Version 5.7.454 + + Performance and stability improvements on all platforms. + + +2017-01-13: Version 5.7.453 + + Performance and stability improvements on all platforms. + + +2017-01-13: Version 5.7.452 + + Performance and stability improvements on all platforms. + + +2017-01-13: Version 5.7.451 + + Performance and stability improvements on all platforms. + + +2017-01-13: Version 5.7.450 + + Performance and stability improvements on all platforms. + + +2017-01-13: Version 5.7.449 + + Performance and stability improvements on all platforms. + + +2017-01-13: Version 5.7.448 + + Performance and stability improvements on all platforms. + + +2017-01-13: Version 5.7.447 + + Performance and stability improvements on all platforms. + + +2017-01-13: Version 5.7.446 + + Performance and stability improvements on all platforms. + + +2017-01-13: Version 5.7.445 + + Performance and stability improvements on all platforms. + + +2017-01-13: Version 5.7.444 + + Performance and stability improvements on all platforms. + + +2017-01-12: Version 5.7.443 + + Performance and stability improvements on all platforms. + + +2017-01-12: Version 5.7.442 + + Performance and stability improvements on all platforms. + + +2017-01-11: Version 5.7.441 + + Performance and stability improvements on all platforms. + + +2017-01-11: Version 5.7.440 + + Performance and stability improvements on all platforms. + + +2017-01-11: Version 5.7.439 + + Performance and stability improvements on all platforms. + + +2017-01-10: Version 5.7.438 + + Performance and stability improvements on all platforms. + + +2017-01-10: Version 5.7.437 + + Performance and stability improvements on all platforms. + + +2017-01-10: Version 5.7.436 + + Performance and stability improvements on all platforms. + + +2017-01-10: Version 5.7.435 + + Performance and stability improvements on all platforms. + + +2017-01-10: Version 5.7.434 + + Performance and stability improvements on all platforms. + + +2017-01-10: Version 5.7.433 + + Performance and stability improvements on all platforms. + + +2017-01-10: Version 5.7.432 + + Performance and stability improvements on all platforms. + + +2017-01-10: Version 5.7.431 + + Performance and stability improvements on all platforms. + + +2017-01-10: Version 5.7.430 + + Performance and stability improvements on all platforms. + + +2017-01-10: Version 5.7.429 + + Performance and stability improvements on all platforms. + + +2017-01-10: Version 5.7.428 + + Performance and stability improvements on all platforms. + + +2017-01-09: Version 5.7.427 + + Performance and stability improvements on all platforms. + + +2017-01-09: Version 5.7.426 + + Performance and stability improvements on all platforms. + + +2017-01-09: Version 5.7.425 + + Performance and stability improvements on all platforms. + + +2017-01-09: Version 5.7.424 + + Performance and stability improvements on all platforms. + + +2017-01-09: Version 5.7.423 + + Performance and stability improvements on all platforms. + + +2017-01-09: Version 5.7.422 + + Performance and stability improvements on all platforms. + + +2017-01-09: Version 5.7.421 + + Performance and stability improvements on all platforms. + + +2017-01-09: Version 5.7.420 + + Performance and stability improvements on all platforms. + + +2017-01-09: Version 5.7.419 + + Performance and stability improvements on all platforms. + + +2017-01-09: Version 5.7.418 + + Performance and stability improvements on all platforms. + + +2017-01-09: Version 5.7.417 + + Performance and stability improvements on all platforms. + + +2017-01-09: Version 5.7.416 + + Performance and stability improvements on all platforms. + + +2017-01-09: Version 5.7.415 + + Performance and stability improvements on all platforms. + + +2017-01-09: Version 5.7.414 + + Performance and stability improvements on all platforms. + + +2017-01-09: Version 5.7.413 + + Performance and stability improvements on all platforms. + + +2017-01-09: Version 5.7.412 + + Performance and stability improvements on all platforms. + + +2017-01-09: Version 5.7.411 + + Performance and stability improvements on all platforms. + + +2017-01-08: Version 5.7.410 + + Performance and stability improvements on all platforms. + + +2017-01-06: Version 5.7.409 + + Performance and stability improvements on all platforms. + + +2017-01-06: Version 5.7.408 + + Performance and stability improvements on all platforms. + + +2017-01-06: Version 5.7.407 + + Performance and stability improvements on all platforms. + + +2017-01-06: Version 5.7.406 + + Performance and stability improvements on all platforms. + + +2017-01-06: Version 5.7.405 + + Performance and stability improvements on all platforms. + + +2017-01-06: Version 5.7.404 + + Performance and stability improvements on all platforms. + + +2017-01-06: Version 5.7.403 + + Performance and stability improvements on all platforms. + + +2017-01-05: Version 5.7.402 + + Performance and stability improvements on all platforms. + + +2017-01-05: Version 5.7.401 + + Performance and stability improvements on all platforms. + + +2017-01-05: Version 5.7.400 + + Performance and stability improvements on all platforms. + + +2017-01-05: Version 5.7.399 + + Performance and stability improvements on all platforms. + + +2017-01-05: Version 5.7.398 + + Performance and stability improvements on all platforms. + + +2017-01-04: Version 5.7.397 + + Performance and stability improvements on all platforms. + + +2017-01-04: Version 5.7.396 + + Performance and stability improvements on all platforms. + + +2017-01-04: Version 5.7.395 + + Performance and stability improvements on all platforms. + + +2017-01-04: Version 5.7.394 + + Performance and stability improvements on all platforms. + + +2017-01-03: Version 5.7.393 + + Performance and stability improvements on all platforms. + + +2017-01-03: Version 5.7.392 + + Performance and stability improvements on all platforms. + + +2017-01-03: Version 5.7.391 + + Performance and stability improvements on all platforms. + + +2017-01-03: Version 5.7.390 + + Performance and stability improvements on all platforms. + + +2017-01-03: Version 5.7.389 + + Performance and stability improvements on all platforms. + + +2017-01-03: Version 5.7.388 + + Performance and stability improvements on all platforms. + + +2017-01-03: Version 5.7.387 + + Performance and stability improvements on all platforms. + + +2017-01-03: Version 5.7.386 + + Performance and stability improvements on all platforms. + + +2017-01-03: Version 5.7.385 + + Performance and stability improvements on all platforms. + + +2017-01-03: Version 5.7.384 + + Performance and stability improvements on all platforms. + + +2017-01-03: Version 5.7.383 + + Performance and stability improvements on all platforms. + + +2017-01-03: Version 5.7.382 + + Performance and stability improvements on all platforms. + + +2017-01-03: Version 5.7.381 + + Performance and stability improvements on all platforms. + + +2017-01-03: Version 5.7.380 + + Performance and stability improvements on all platforms. + + +2017-01-02: Version 5.7.379 + + Performance and stability improvements on all platforms. + + +2017-01-02: Version 5.7.378 + + Performance and stability improvements on all platforms. + + +2017-01-02: Version 5.7.377 + + Performance and stability improvements on all platforms. + + +2017-01-02: Version 5.7.376 + + Performance and stability improvements on all platforms. + + +2017-01-02: Version 5.7.375 + + Performance and stability improvements on all platforms. + + +2017-01-02: Version 5.7.374 + + Performance and stability improvements on all platforms. + + +2017-01-02: Version 5.7.373 + + Performance and stability improvements on all platforms. + + +2017-01-02: Version 5.7.372 + + Performance and stability improvements on all platforms. + + +2017-01-02: Version 5.7.371 + + Performance and stability improvements on all platforms. + + +2016-12-30: Version 5.7.370 + + Performance and stability improvements on all platforms. + + +2016-12-30: Version 5.7.369 + + Performance and stability improvements on all platforms. + + +2016-12-30: Version 5.7.368 + + Performance and stability improvements on all platforms. + + +2016-12-30: Version 5.7.367 + + Performance and stability improvements on all platforms. + + +2016-12-30: Version 5.7.366 + + Performance and stability improvements on all platforms. + + +2016-12-28: Version 5.7.365 + + Performance and stability improvements on all platforms. + + +2016-12-28: Version 5.7.364 + + Performance and stability improvements on all platforms. + + +2016-12-28: Version 5.7.363 + + Performance and stability improvements on all platforms. + + +2016-12-28: Version 5.7.362 + + Performance and stability improvements on all platforms. + + +2016-12-28: Version 5.7.361 + + Performance and stability improvements on all platforms. + + +2016-12-27: Version 5.7.360 + + Performance and stability improvements on all platforms. + + +2016-12-27: Version 5.7.359 + + Performance and stability improvements on all platforms. + + +2016-12-27: Version 5.7.358 + + Performance and stability improvements on all platforms. + + +2016-12-27: Version 5.7.357 + + Performance and stability improvements on all platforms. + + +2016-12-27: Version 5.7.356 + + Performance and stability improvements on all platforms. + + +2016-12-27: Version 5.7.355 + + Performance and stability improvements on all platforms. + + +2016-12-27: Version 5.7.354 + + Performance and stability improvements on all platforms. + + +2016-12-27: Version 5.7.353 + + Performance and stability improvements on all platforms. + + +2016-12-26: Version 5.7.352 + + Performance and stability improvements on all platforms. + + +2016-12-24: Version 5.7.351 + + Performance and stability improvements on all platforms. + + +2016-12-24: Version 5.7.350 + + Performance and stability improvements on all platforms. + + +2016-12-24: Version 5.7.349 + + Performance and stability improvements on all platforms. + + +2016-12-23: Version 5.7.348 + + Performance and stability improvements on all platforms. + + +2016-12-23: Version 5.7.347 + + Performance and stability improvements on all platforms. + + +2016-12-23: Version 5.7.346 + + [intl] Add new semantics + compat fallback to Intl constructor (issues + 4360, 4870). + + Performance and stability improvements on all platforms. + + +2016-12-23: Version 5.7.345 + + Performance and stability improvements on all platforms. + + +2016-12-23: Version 5.7.344 + + Performance and stability improvements on all platforms. + + +2016-12-23: Version 5.7.343 + + Performance and stability improvements on all platforms. + + +2016-12-23: Version 5.7.342 + + Performance and stability improvements on all platforms. + + +2016-12-22: Version 5.7.341 + + Performance and stability improvements on all platforms. + + +2016-12-22: Version 5.7.340 + + Performance and stability improvements on all platforms. + + +2016-12-22: Version 5.7.339 + + Performance and stability improvements on all platforms. + + +2016-12-22: Version 5.7.338 + + Performance and stability improvements on all platforms. + + +2016-12-22: Version 5.7.337 + + Performance and stability improvements on all platforms. + + +2016-12-22: Version 5.7.336 + + Performance and stability improvements on all platforms. + + +2016-12-22: Version 5.7.335 + + Performance and stability improvements on all platforms. + + +2016-12-22: Version 5.7.334 + + Performance and stability improvements on all platforms. + + +2016-12-22: Version 5.7.333 + + Performance and stability improvements on all platforms. + + +2016-12-22: Version 5.7.332 + + Performance and stability improvements on all platforms. + + +2016-12-22: Version 5.7.331 + + Performance and stability improvements on all platforms. + + +2016-12-22: Version 5.7.330 + + Performance and stability improvements on all platforms. + + +2016-12-21: Version 5.7.329 + + Performance and stability improvements on all platforms. + + +2016-12-21: Version 5.7.328 + + Performance and stability improvements on all platforms. + + +2016-12-21: Version 5.7.327 + + Performance and stability improvements on all platforms. + + +2016-12-21: Version 5.7.326 + + Performance and stability improvements on all platforms. + + +2016-12-21: Version 5.7.325 + + Performance and stability improvements on all platforms. + + +2016-12-21: Version 5.7.324 + + Performance and stability improvements on all platforms. + + +2016-12-21: Version 5.7.323 + + Performance and stability improvements on all platforms. + + +2016-12-21: Version 5.7.322 + + Performance and stability improvements on all platforms. + + +2016-12-21: Version 5.7.321 + + Performance and stability improvements on all platforms. + + +2016-12-21: Version 5.7.320 + + Performance and stability improvements on all platforms. + + +2016-12-21: Version 5.7.319 + + Performance and stability improvements on all platforms. + + +2016-12-20: Version 5.7.318 + + Performance and stability improvements on all platforms. + + +2016-12-20: Version 5.7.317 + + Performance and stability improvements on all platforms. + + +2016-12-20: Version 5.7.316 + + Performance and stability improvements on all platforms. + + +2016-12-20: Version 5.7.315 + + Performance and stability improvements on all platforms. + + +2016-12-20: Version 5.7.314 + + Performance and stability improvements on all platforms. + + +2016-12-20: Version 5.7.313 + + Performance and stability improvements on all platforms. + + +2016-12-20: Version 5.7.312 + + Performance and stability improvements on all platforms. + + +2016-12-20: Version 5.7.311 + + Performance and stability improvements on all platforms. + + +2016-12-20: Version 5.7.310 + + Performance and stability improvements on all platforms. + + +2016-12-20: Version 5.7.309 + + Performance and stability improvements on all platforms. + + +2016-12-20: Version 5.7.308 + + Performance and stability improvements on all platforms. + + +2016-12-20: Version 5.7.307 + + Performance and stability improvements on all platforms. + + +2016-12-20: Version 5.7.306 + + Performance and stability improvements on all platforms. + + +2016-12-20: Version 5.7.305 + + Performance and stability improvements on all platforms. + + +2016-12-20: Version 5.7.304 + + Performance and stability improvements on all platforms. + + +2016-12-20: Version 5.7.303 + + Performance and stability improvements on all platforms. + + +2016-12-20: Version 5.7.302 + + Performance and stability improvements on all platforms. + + +2016-12-20: Version 5.7.301 + + Performance and stability improvements on all platforms. + + +2016-12-20: Version 5.7.300 + + Performance and stability improvements on all platforms. + + +2016-12-20: Version 5.7.299 + + Performance and stability improvements on all platforms. + + +2016-12-19: Version 5.7.298 + + Performance and stability improvements on all platforms. + + +2016-12-19: Version 5.7.297 + + Performance and stability improvements on all platforms. + + +2016-12-19: Version 5.7.296 + + Performance and stability improvements on all platforms. + + +2016-12-19: Version 5.7.295 + + Performance and stability improvements on all platforms. + + +2016-12-19: Version 5.7.294 + + Performance and stability improvements on all platforms. + + +2016-12-19: Version 5.7.293 + + Performance and stability improvements on all platforms. + + +2016-12-19: Version 5.7.292 + + Performance and stability improvements on all platforms. + + +2016-12-19: Version 5.7.291 + + Performance and stability improvements on all platforms. + + +2016-12-19: Version 5.7.290 + + Performance and stability improvements on all platforms. + + +2016-12-19: Version 5.7.289 + + Performance and stability improvements on all platforms. + + +2016-12-19: Version 5.7.288 + + Performance and stability improvements on all platforms. + + +2016-12-19: Version 5.7.287 + + Performance and stability improvements on all platforms. + + +2016-12-18: Version 5.7.286 + + Performance and stability improvements on all platforms. + + +2016-12-18: Version 5.7.285 + + Performance and stability improvements on all platforms. + + +2016-12-17: Version 5.7.284 + + Performance and stability improvements on all platforms. + + +2016-12-17: Version 5.7.283 + + Performance and stability improvements on all platforms. + + +2016-12-17: Version 5.7.282 + + Performance and stability improvements on all platforms. + + +2016-12-16: Version 5.7.281 + + Performance and stability improvements on all platforms. + + +2016-12-16: Version 5.7.280 + + Performance and stability improvements on all platforms. + + +2016-12-16: Version 5.7.279 + + Performance and stability improvements on all platforms. + + +2016-12-16: Version 5.7.278 + + Performance and stability improvements on all platforms. + + +2016-12-16: Version 5.7.277 + + Performance and stability improvements on all platforms. + + +2016-12-16: Version 5.7.276 + + Performance and stability improvements on all platforms. + + +2016-12-16: Version 5.7.275 + + Performance and stability improvements on all platforms. + + +2016-12-16: Version 5.7.274 + + Performance and stability improvements on all platforms. + + +2016-12-16: Version 5.7.273 + + Performance and stability improvements on all platforms. + + +2016-12-16: Version 5.7.272 + + Performance and stability improvements on all platforms. + + +2016-12-16: Version 5.7.271 + + Performance and stability improvements on all platforms. + + +2016-12-16: Version 5.7.270 + + Performance and stability improvements on all platforms. + + +2016-12-16: Version 5.7.269 + + Performance and stability improvements on all platforms. + + +2016-12-16: Version 5.7.268 + + Performance and stability improvements on all platforms. + + +2016-12-16: Version 5.7.267 + + Performance and stability improvements on all platforms. + + +2016-12-16: Version 5.7.266 + + Performance and stability improvements on all platforms. + + +2016-12-16: Version 5.7.265 + + Performance and stability improvements on all platforms. + + +2016-12-16: Version 5.7.264 + + Performance and stability improvements on all platforms. + + +2016-12-16: Version 5.7.263 + + Performance and stability improvements on all platforms. + + +2016-12-16: Version 5.7.262 + + Performance and stability improvements on all platforms. + + +2016-12-16: Version 5.7.261 + + Performance and stability improvements on all platforms. + + +2016-12-16: Version 5.7.260 + + Performance and stability improvements on all platforms. + + +2016-12-15: Version 5.7.259 + + Performance and stability improvements on all platforms. + + +2016-12-15: Version 5.7.258 + + Performance and stability improvements on all platforms. + + +2016-12-15: Version 5.7.257 + + Performance and stability improvements on all platforms. + + +2016-12-15: Version 5.7.256 + + Performance and stability improvements on all platforms. + + +2016-12-15: Version 5.7.255 + + Performance and stability improvements on all platforms. + + +2016-12-15: Version 5.7.254 + + Performance and stability improvements on all platforms. + + +2016-12-15: Version 5.7.253 + + Performance and stability improvements on all platforms. + + +2016-12-15: Version 5.7.252 + + Performance and stability improvements on all platforms. + + +2016-12-15: Version 5.7.251 + + Performance and stability improvements on all platforms. + + +2016-12-15: Version 5.7.250 + + Performance and stability improvements on all platforms. + + +2016-12-15: Version 5.7.249 + + Performance and stability improvements on all platforms. + + +2016-12-15: Version 5.7.248 + + Performance and stability improvements on all platforms. + + +2016-12-15: Version 5.7.247 + + Performance and stability improvements on all platforms. + + +2016-12-15: Version 5.7.246 + + Performance and stability improvements on all platforms. + + +2016-12-14: Version 5.7.245 + + Performance and stability improvements on all platforms. + + +2016-12-14: Version 5.7.244 + + Performance and stability improvements on all platforms. + + +2016-12-14: Version 5.7.243 + + Performance and stability improvements on all platforms. + + +2016-12-14: Version 5.7.242 + + Performance and stability improvements on all platforms. + + +2016-12-14: Version 5.7.241 + + Performance and stability improvements on all platforms. + + +2016-12-14: Version 5.7.240 + + Performance and stability improvements on all platforms. + + +2016-12-14: Version 5.7.239 + + Performance and stability improvements on all platforms. + + +2016-12-14: Version 5.7.238 + + Performance and stability improvements on all platforms. + + +2016-12-14: Version 5.7.237 + + Performance and stability improvements on all platforms. + + +2016-12-14: Version 5.7.236 + + Performance and stability improvements on all platforms. + + +2016-12-14: Version 5.7.235 + + Performance and stability improvements on all platforms. + + +2016-12-14: Version 5.7.234 + + Performance and stability improvements on all platforms. + + +2016-12-14: Version 5.7.233 + + Performance and stability improvements on all platforms. + + +2016-12-14: Version 5.7.232 + + Performance and stability improvements on all platforms. + + +2016-12-14: Version 5.7.231 + + Performance and stability improvements on all platforms. + + +2016-12-14: Version 5.7.230 + + Performance and stability improvements on all platforms. + + +2016-12-13: Version 5.7.229 + + Performance and stability improvements on all platforms. + + +2016-12-13: Version 5.7.228 + + Performance and stability improvements on all platforms. + + +2016-12-13: Version 5.7.227 + + Performance and stability improvements on all platforms. + + +2016-12-13: Version 5.7.226 + + Performance and stability improvements on all platforms. + + +2016-12-13: Version 5.7.225 + + Performance and stability improvements on all platforms. + + +2016-12-13: Version 5.7.224 + + Performance and stability improvements on all platforms. + + +2016-12-13: Version 5.7.223 + + Performance and stability improvements on all platforms. + + +2016-12-13: Version 5.7.222 + + Performance and stability improvements on all platforms. + + +2016-12-13: Version 5.7.221 + + Performance and stability improvements on all platforms. + + +2016-12-13: Version 5.7.220 + + Performance and stability improvements on all platforms. + + +2016-12-13: Version 5.7.219 + + Performance and stability improvements on all platforms. + + +2016-12-13: Version 5.7.218 + + Performance and stability improvements on all platforms. + + +2016-12-13: Version 5.7.217 + + Performance and stability improvements on all platforms. + + +2016-12-13: Version 5.7.216 + + Performance and stability improvements on all platforms. + + +2016-12-13: Version 5.7.215 + + Performance and stability improvements on all platforms. + + +2016-12-12: Version 5.7.214 + + Performance and stability improvements on all platforms. + + +2016-12-12: Version 5.7.213 + + Performance and stability improvements on all platforms. + + +2016-12-12: Version 5.7.212 + + Performance and stability improvements on all platforms. + + +2016-12-12: Version 5.7.211 + + Performance and stability improvements on all platforms. + + +2016-12-12: Version 5.7.210 + + Performance and stability improvements on all platforms. + + +2016-12-12: Version 5.7.209 + + Performance and stability improvements on all platforms. + + +2016-12-12: Version 5.7.208 + + Performance and stability improvements on all platforms. + + +2016-12-12: Version 5.7.207 + + Performance and stability improvements on all platforms. + + +2016-12-12: Version 5.7.206 + + Performance and stability improvements on all platforms. + + +2016-12-12: Version 5.7.205 + + Performance and stability improvements on all platforms. + + +2016-12-12: Version 5.7.204 + + Performance and stability improvements on all platforms. + + +2016-12-11: Version 5.7.203 + + Performance and stability improvements on all platforms. + + +2016-12-09: Version 5.7.202 + + Performance and stability improvements on all platforms. + + +2016-12-09: Version 5.7.201 + + Performance and stability improvements on all platforms. + + +2016-12-09: Version 5.7.200 + + Performance and stability improvements on all platforms. + + +2016-12-09: Version 5.7.199 + + Performance and stability improvements on all platforms. + + +2016-12-09: Version 5.7.198 + + Performance and stability improvements on all platforms. + + +2016-12-09: Version 5.7.197 + + Performance and stability improvements on all platforms. + + +2016-12-09: Version 5.7.196 + + Performance and stability improvements on all platforms. + + +2016-12-09: Version 5.7.195 + + Performance and stability improvements on all platforms. + + +2016-12-09: Version 5.7.194 + + Performance and stability improvements on all platforms. + + +2016-12-09: Version 5.7.193 + + Performance and stability improvements on all platforms. + + +2016-12-09: Version 5.7.192 + + Performance and stability improvements on all platforms. + + +2016-12-09: Version 5.7.191 + + Performance and stability improvements on all platforms. + + +2016-12-09: Version 5.7.190 + + Performance and stability improvements on all platforms. + + +2016-12-09: Version 5.7.189 + + Performance and stability improvements on all platforms. + + +2016-12-09: Version 5.7.188 + + Performance and stability improvements on all platforms. + + +2016-12-09: Version 5.7.187 + + Performance and stability improvements on all platforms. + + +2016-12-08: Version 5.7.186 + + Performance and stability improvements on all platforms. + + +2016-12-08: Version 5.7.185 + + Performance and stability improvements on all platforms. + + +2016-12-08: Version 5.7.184 + + Performance and stability improvements on all platforms. + + +2016-12-08: Version 5.7.183 + + Performance and stability improvements on all platforms. + + +2016-12-08: Version 5.7.182 + + Performance and stability improvements on all platforms. + + +2016-12-08: Version 5.7.181 + + Performance and stability improvements on all platforms. + + +2016-12-08: Version 5.7.180 + + Performance and stability improvements on all platforms. + + +2016-12-08: Version 5.7.179 + + Performance and stability improvements on all platforms. + + +2016-12-08: Version 5.7.178 + + Performance and stability improvements on all platforms. + + +2016-12-08: Version 5.7.177 + + Performance and stability improvements on all platforms. + + +2016-12-08: Version 5.7.176 + + Performance and stability improvements on all platforms. + + +2016-12-08: Version 5.7.175 + + Performance and stability improvements on all platforms. + + +2016-12-08: Version 5.7.174 + + Performance and stability improvements on all platforms. + + +2016-12-08: Version 5.7.173 + + Performance and stability improvements on all platforms. + + +2016-12-08: Version 5.7.172 + + Performance and stability improvements on all platforms. + + +2016-12-08: Version 5.7.171 + + Performance and stability improvements on all platforms. + + +2016-12-08: Version 5.7.170 + + Performance and stability improvements on all platforms. + + +2016-12-08: Version 5.7.169 + + Performance and stability improvements on all platforms. + + +2016-12-08: Version 5.7.168 + + Performance and stability improvements on all platforms. + + +2016-12-08: Version 5.7.167 + + Performance and stability improvements on all platforms. + + +2016-12-08: Version 5.7.166 + + Performance and stability improvements on all platforms. + + +2016-12-08: Version 5.7.165 + + Performance and stability improvements on all platforms. + + +2016-12-07: Version 5.7.164 + + Performance and stability improvements on all platforms. + + +2016-12-07: Version 5.7.163 + + Performance and stability improvements on all platforms. + + +2016-12-07: Version 5.7.162 + + Performance and stability improvements on all platforms. + + +2016-12-07: Version 5.7.161 + + Performance and stability improvements on all platforms. + + +2016-12-07: Version 5.7.160 + + Performance and stability improvements on all platforms. + + +2016-12-07: Version 5.7.159 + + Performance and stability improvements on all platforms. + + +2016-12-07: Version 5.7.158 + + Performance and stability improvements on all platforms. + + +2016-12-07: Version 5.7.157 + + Performance and stability improvements on all platforms. + + +2016-12-07: Version 5.7.156 + + Performance and stability improvements on all platforms. + + +2016-12-07: Version 5.7.155 + + Performance and stability improvements on all platforms. + + +2016-12-07: Version 5.7.154 + + Performance and stability improvements on all platforms. + + +2016-12-07: Version 5.7.153 + + Performance and stability improvements on all platforms. + + +2016-12-07: Version 5.7.152 + + Performance and stability improvements on all platforms. + + +2016-12-07: Version 5.7.151 + + Performance and stability improvements on all platforms. + + +2016-12-07: Version 5.7.150 + + Performance and stability improvements on all platforms. + + +2016-12-07: Version 5.7.149 + + Performance and stability improvements on all platforms. + + +2016-12-07: Version 5.7.148 + + Performance and stability improvements on all platforms. + + +2016-12-07: Version 5.7.147 + + Performance and stability improvements on all platforms. + + +2016-12-06: Version 5.7.146 + + Performance and stability improvements on all platforms. + + +2016-12-06: Version 5.7.145 + + Performance and stability improvements on all platforms. + + +2016-12-06: Version 5.7.144 + + Performance and stability improvements on all platforms. + + +2016-12-06: Version 5.7.143 + + Performance and stability improvements on all platforms. + + +2016-12-06: Version 5.7.142 + + Performance and stability improvements on all platforms. + + +2016-12-06: Version 5.7.141 + + Performance and stability improvements on all platforms. + + +2016-12-06: Version 5.7.140 + + Performance and stability improvements on all platforms. + + +2016-12-06: Version 5.7.139 + + Performance and stability improvements on all platforms. + + +2016-12-06: Version 5.7.138 + + Performance and stability improvements on all platforms. + + +2016-12-05: Version 5.7.137 + + Performance and stability improvements on all platforms. + + +2016-12-05: Version 5.7.136 + + Performance and stability improvements on all platforms. + + +2016-12-05: Version 5.7.135 + + Performance and stability improvements on all platforms. + + +2016-12-05: Version 5.7.134 + + Performance and stability improvements on all platforms. + + +2016-12-05: Version 5.7.133 + + Performance and stability improvements on all platforms. + + +2016-12-05: Version 5.7.132 + + Performance and stability improvements on all platforms. + + +2016-12-05: Version 5.7.131 + + Performance and stability improvements on all platforms. + + +2016-12-05: Version 5.7.130 + + Performance and stability improvements on all platforms. + + +2016-12-05: Version 5.7.129 + + Performance and stability improvements on all platforms. + + +2016-12-05: Version 5.7.128 + + Performance and stability improvements on all platforms. + + +2016-12-05: Version 5.7.127 + + Performance and stability improvements on all platforms. + + +2016-12-05: Version 5.7.126 + + Performance and stability improvements on all platforms. + + +2016-12-05: Version 5.7.125 + + Performance and stability improvements on all platforms. + + +2016-12-05: Version 5.7.124 + + Performance and stability improvements on all platforms. + + +2016-12-05: Version 5.7.123 + + Performance and stability improvements on all platforms. + + +2016-12-05: Version 5.7.122 + + Performance and stability improvements on all platforms. + + +2016-12-02: Version 5.7.121 + + Performance and stability improvements on all platforms. + + +2016-12-02: Version 5.7.120 + + Performance and stability improvements on all platforms. + + +2016-12-02: Version 5.7.119 + + Performance and stability improvements on all platforms. + + +2016-12-02: Version 5.7.118 + + Performance and stability improvements on all platforms. + + +2016-12-02: Version 5.7.117 + + Performance and stability improvements on all platforms. + + +2016-12-02: Version 5.7.116 + + Performance and stability improvements on all platforms. + + +2016-12-02: Version 5.7.115 + + Performance and stability improvements on all platforms. + + +2016-12-01: Version 5.7.114 + + Performance and stability improvements on all platforms. + + +2016-12-01: Version 5.7.113 + + Performance and stability improvements on all platforms. + + +2016-12-01: Version 5.7.112 + + Performance and stability improvements on all platforms. + + +2016-12-01: Version 5.7.111 + + Performance and stability improvements on all platforms. + + +2016-12-01: Version 5.7.110 + + Performance and stability improvements on all platforms. + + +2016-12-01: Version 5.7.109 + + Performance and stability improvements on all platforms. + + +2016-12-01: Version 5.7.108 + + Performance and stability improvements on all platforms. + + +2016-12-01: Version 5.7.107 + + Performance and stability improvements on all platforms. + + +2016-12-01: Version 5.7.106 + + Performance and stability improvements on all platforms. + + +2016-12-01: Version 5.7.105 + + Performance and stability improvements on all platforms. + + +2016-12-01: Version 5.7.104 + + Performance and stability improvements on all platforms. + + +2016-12-01: Version 5.7.103 + + Performance and stability improvements on all platforms. + + +2016-12-01: Version 5.7.102 + + Performance and stability improvements on all platforms. + + +2016-12-01: Version 5.7.101 + + Performance and stability improvements on all platforms. + + +2016-12-01: Version 5.7.100 + + [build] Use MSVS 2015 by default (Chromium issue 603131). + + Performance and stability improvements on all platforms. + + +2016-11-30: Version 5.7.99 + + Performance and stability improvements on all platforms. + + +2016-11-30: Version 5.7.98 + + Performance and stability improvements on all platforms. + + +2016-11-30: Version 5.7.97 + + Performance and stability improvements on all platforms. + + +2016-11-30: Version 5.7.96 + + Performance and stability improvements on all platforms. + + +2016-11-30: Version 5.7.95 + + Performance and stability improvements on all platforms. + + +2016-11-30: Version 5.7.94 + + Performance and stability improvements on all platforms. + + +2016-11-30: Version 5.7.93 + + Performance and stability improvements on all platforms. + + +2016-11-30: Version 5.7.92 + + Performance and stability improvements on all platforms. + + +2016-11-30: Version 5.7.91 + + Performance and stability improvements on all platforms. + + +2016-11-30: Version 5.7.90 + + Performance and stability improvements on all platforms. + + +2016-11-30: Version 5.7.89 + + Performance and stability improvements on all platforms. + + +2016-11-30: Version 5.7.88 + + Performance and stability improvements on all platforms. + + +2016-11-30: Version 5.7.87 + + Performance and stability improvements on all platforms. + + +2016-11-29: Version 5.7.86 + + Performance and stability improvements on all platforms. + + +2016-11-29: Version 5.7.85 + + Performance and stability improvements on all platforms. + + +2016-11-29: Version 5.7.84 + + Performance and stability improvements on all platforms. + + +2016-11-29: Version 5.7.83 + + Performance and stability improvements on all platforms. + + +2016-11-29: Version 5.7.82 + + Performance and stability improvements on all platforms. + + +2016-11-29: Version 5.7.81 + + Performance and stability improvements on all platforms. + + +2016-11-29: Version 5.7.80 + + Performance and stability improvements on all platforms. + + +2016-11-29: Version 5.7.79 + + Performance and stability improvements on all platforms. + + +2016-11-29: Version 5.7.78 + + Performance and stability improvements on all platforms. + + +2016-11-29: Version 5.7.77 + + Performance and stability improvements on all platforms. + + +2016-11-29: Version 5.7.76 + + Performance and stability improvements on all platforms. + + +2016-11-29: Version 5.7.75 + + Performance and stability improvements on all platforms. + + +2016-11-29: Version 5.7.74 + + Performance and stability improvements on all platforms. + + +2016-11-29: Version 5.7.73 + + Performance and stability improvements on all platforms. + + +2016-11-29: Version 5.7.72 + + Performance and stability improvements on all platforms. + + +2016-11-29: Version 5.7.71 + + Performance and stability improvements on all platforms. + + +2016-11-28: Version 5.7.70 + + Performance and stability improvements on all platforms. + + +2016-11-28: Version 5.7.69 + + Performance and stability improvements on all platforms. + + +2016-11-28: Version 5.7.68 + + Performance and stability improvements on all platforms. + + +2016-11-28: Version 5.7.67 + + Performance and stability improvements on all platforms. + + +2016-11-28: Version 5.7.66 + + Performance and stability improvements on all platforms. + + +2016-11-28: Version 5.7.65 + + Performance and stability improvements on all platforms. + + +2016-11-28: Version 5.7.64 + + Performance and stability improvements on all platforms. + + +2016-11-25: Version 5.7.63 + + Performance and stability improvements on all platforms. + + +2016-11-25: Version 5.7.62 + + Performance and stability improvements on all platforms. + + +2016-11-25: Version 5.7.61 + + Performance and stability improvements on all platforms. + + +2016-11-25: Version 5.7.60 + + Performance and stability improvements on all platforms. + + +2016-11-25: Version 5.7.59 + + Performance and stability improvements on all platforms. + + +2016-11-25: Version 5.7.58 + + Performance and stability improvements on all platforms. + + +2016-11-24: Version 5.7.57 + + Performance and stability improvements on all platforms. + + +2016-11-24: Version 5.7.56 + + Performance and stability improvements on all platforms. + + +2016-11-24: Version 5.7.55 + + Performance and stability improvements on all platforms. + + +2016-11-24: Version 5.7.54 + + Performance and stability improvements on all platforms. + + +2016-11-24: Version 5.7.53 + + Performance and stability improvements on all platforms. + + +2016-11-23: Version 5.7.52 + + Performance and stability improvements on all platforms. + + +2016-11-23: Version 5.7.51 + + Performance and stability improvements on all platforms. + + +2016-11-23: Version 5.7.50 + + Performance and stability improvements on all platforms. + + +2016-11-23: Version 5.7.49 + + Performance and stability improvements on all platforms. + + +2016-11-23: Version 5.7.48 + + Performance and stability improvements on all platforms. + + +2016-11-23: Version 5.7.47 + + Performance and stability improvements on all platforms. + + +2016-11-23: Version 5.7.46 + + Performance and stability improvements on all platforms. + + +2016-11-23: Version 5.7.45 + + Performance and stability improvements on all platforms. + + +2016-11-23: Version 5.7.44 + + Performance and stability improvements on all platforms. + + +2016-11-23: Version 5.7.43 + + Performance and stability improvements on all platforms. + + +2016-11-23: Version 5.7.42 + + Performance and stability improvements on all platforms. + + +2016-11-23: Version 5.7.41 + + Performance and stability improvements on all platforms. + + +2016-11-23: Version 5.7.40 + + Performance and stability improvements on all platforms. + + +2016-11-23: Version 5.7.39 + + Performance and stability improvements on all platforms. + + +2016-11-22: Version 5.7.38 + + Performance and stability improvements on all platforms. + + +2016-11-22: Version 5.7.37 + + Performance and stability improvements on all platforms. + + +2016-11-22: Version 5.7.36 + + Performance and stability improvements on all platforms. + + +2016-11-22: Version 5.7.35 + + Performance and stability improvements on all platforms. + + +2016-11-22: Version 5.7.34 + + Performance and stability improvements on all platforms. + + +2016-11-22: Version 5.7.33 + + Performance and stability improvements on all platforms. + + +2016-11-22: Version 5.7.32 + + Performance and stability improvements on all platforms. + + +2016-11-22: Version 5.7.31 + + Performance and stability improvements on all platforms. + + +2016-11-22: Version 5.7.30 + + Performance and stability improvements on all platforms. + + +2016-11-22: Version 5.7.29 + + Performance and stability improvements on all platforms. + + +2016-11-22: Version 5.7.28 + + Performance and stability improvements on all platforms. + + +2016-11-22: Version 5.7.27 + + Performance and stability improvements on all platforms. + + +2016-11-22: Version 5.7.26 + + Performance and stability improvements on all platforms. + + +2016-11-22: Version 5.7.25 + + Performance and stability improvements on all platforms. + + +2016-11-22: Version 5.7.24 + + Performance and stability improvements on all platforms. + + +2016-11-22: Version 5.7.23 + + Performance and stability improvements on all platforms. + + +2016-11-22: Version 5.7.22 + + Performance and stability improvements on all platforms. + + +2016-11-21: Version 5.7.21 + + Performance and stability improvements on all platforms. + + +2016-11-21: Version 5.7.20 + + Performance and stability improvements on all platforms. + + +2016-11-21: Version 5.7.19 + + Performance and stability improvements on all platforms. + + +2016-11-21: Version 5.7.18 + + Performance and stability improvements on all platforms. + + +2016-11-21: Version 5.7.17 + + Performance and stability improvements on all platforms. + + +2016-11-21: Version 5.7.16 + + Performance and stability improvements on all platforms. + + +2016-11-21: Version 5.7.15 + + Performance and stability improvements on all platforms. + + +2016-11-21: Version 5.7.14 + + Performance and stability improvements on all platforms. + + +2016-11-21: Version 5.7.13 + + Performance and stability improvements on all platforms. + + +2016-11-21: Version 5.7.12 + + Performance and stability improvements on all platforms. + + +2016-11-21: Version 5.7.11 + + Performance and stability improvements on all platforms. + + +2016-11-21: Version 5.7.10 + + Performance and stability improvements on all platforms. + + +2016-11-21: Version 5.7.9 + + Performance and stability improvements on all platforms. + + +2016-11-21: Version 5.7.8 + + Performance and stability improvements on all platforms. + + +2016-11-21: Version 5.7.7 + + Performance and stability improvements on all platforms. + + +2016-11-21: Version 5.7.6 + + Performance and stability improvements on all platforms. + + +2016-11-21: Version 5.7.5 + + Performance and stability improvements on all platforms. + + +2016-11-21: Version 5.7.4 + + Performance and stability improvements on all platforms. + + +2016-11-20: Version 5.7.3 + + Performance and stability improvements on all platforms. + + +2016-11-20: Version 5.7.2 + + Performance and stability improvements on all platforms. + + +2016-11-20: Version 5.7.1 + + Performance and stability improvements on all platforms. + + +2016-11-17: Version 5.6.331 + + Performance and stability improvements on all platforms. + + +2016-11-17: Version 5.6.330 + + Performance and stability improvements on all platforms. + + +2016-11-17: Version 5.6.329 + + Performance and stability improvements on all platforms. + + +2016-11-17: Version 5.6.328 + + Performance and stability improvements on all platforms. + + +2016-11-16: Version 5.6.327 + + Performance and stability improvements on all platforms. + + 2016-11-15: Version 5.6.326 Performance and stability improvements on all platforms. diff --git a/deps/v8/DEPS b/deps/v8/DEPS index 161015d661a8d1..6f66ac36f7ef54 100644 --- a/deps/v8/DEPS +++ b/deps/v8/DEPS @@ -8,15 +8,15 @@ vars = { deps = { "v8/build": - Var("chromium_url") + "/chromium/src/build.git" + "@" + "a3b623a6eff6dc9d58a03251ae22bccf92f67cb2", + Var("chromium_url") + "/chromium/src/build.git" + "@" + "f55127ddc3632dbd6fef285c71ab4cb103e08f0c", "v8/tools/gyp": Var("chromium_url") + "/external/gyp.git" + "@" + "e7079f0e0e14108ab0dba58728ff219637458563", "v8/third_party/icu": - Var("chromium_url") + "/chromium/deps/icu.git" + "@" + "c1a237113f525a1561d4b322d7653e1083f79aaa", + Var("chromium_url") + "/chromium/deps/icu.git" + "@" + "9cd2828740572ba6f694b9365236a8356fd06147", "v8/third_party/instrumented_libraries": - Var("chromium_url") + "/chromium/src/third_party/instrumented_libraries.git" + "@" + "45f5814b1543e41ea0be54c771e3840ea52cca4a", + Var("chromium_url") + "/chromium/src/third_party/instrumented_libraries.git" + "@" + "5b6f777da671be977f56f0e8fc3469a3ccbb4474", "v8/buildtools": - Var("chromium_url") + "/chromium/buildtools.git" + "@" + "39b1db2ab4aa4b2ccaa263c29bdf63e7c1ee28aa", + Var("chromium_url") + "/chromium/buildtools.git" + "@" + "cb12d6e8641f0c9b0fbbfa4bf17c55c6c0d3c38f", "v8/base/trace_event/common": Var("chromium_url") + "/chromium/src/base/trace_event/common.git" + "@" + "06294c8a4a6f744ef284cd63cfe54dbf61eea290", "v8/third_party/jinja2": @@ -24,7 +24,7 @@ deps = { "v8/third_party/markupsafe": Var("chromium_url") + "/chromium/src/third_party/markupsafe.git" + "@" + "484a5661041cac13bfc688a26ec5434b05d18961", "v8/tools/swarming_client": - Var('chromium_url') + '/external/swarming.client.git' + '@' + "380e32662312eb107f06fcba6409b0409f8fef72", + Var('chromium_url') + '/external/swarming.client.git' + '@' + "ebc8dab6f8b8d79ec221c94de39a921145abd404", "v8/testing/gtest": Var("chromium_url") + "/external/github.com/google/googletest.git" + "@" + "6f8a66431cb592dad629028a50b3dd418a408c87", "v8/testing/gmock": @@ -35,19 +35,19 @@ deps = { Var("chromium_url") + "/v8/deps/third_party/mozilla-tests.git" + "@" + "f6c578a10ea707b1a8ab0b88943fe5115ce2b9be", "v8/test/simdjs/data": Var("chromium_url") + "/external/github.com/tc39/ecmascript_simd.git" + "@" + "baf493985cb9ea7cdbd0d68704860a8156de9556", "v8/test/test262/data": - Var("chromium_url") + "/external/github.com/tc39/test262.git" + "@" + "fb61ab44eb1bbc2699d714fc00e33af2a19411ce", + Var("chromium_url") + "/external/github.com/tc39/test262.git" + "@" + "6a0f1189eb00d38ef9760cb65cbc41c066876cde", "v8/test/test262/harness": - Var("chromium_url") + "/external/github.com/test262-utils/test262-harness-py.git" + "@" + "cbd968f54f7a95c6556d53ba852292a4c49d11d8", + Var("chromium_url") + "/external/github.com/test262-utils/test262-harness-py.git" + "@" + "0f2acdd882c84cff43b9d60df7574a1901e2cdcd", "v8/tools/clang": - Var("chromium_url") + "/chromium/src/tools/clang.git" + "@" + "75350a858c51ad69e2aae051a8727534542da29f", + Var("chromium_url") + "/chromium/src/tools/clang.git" + "@" + "f7ce1a5678e5addc015aed5f1e7734bbd2caac7c", } deps_os = { "android": { "v8/third_party/android_tools": - Var("chromium_url") + "/android_tools.git" + "@" + "25d57ead05d3dfef26e9c19b13ed10b0a69829cf", + Var("chromium_url") + "/android_tools.git" + "@" + "b43a6a289a7588b1769814f04dd6c7d7176974cc", "v8/third_party/catapult": - Var('chromium_url') + "/external/github.com/catapult-project/catapult.git" + "@" + "6962f5c0344a79b152bf84460a93e1b2e11ea0f4", + Var('chromium_url') + "/external/github.com/catapult-project/catapult.git" + "@" + "143ba4ddeb05e6165fb8413c5f3f47d342922d24", }, "win": { "v8/third_party/cygwin": @@ -263,7 +263,7 @@ hooks = [ # Update the Windows toolchain if necessary. 'name': 'win_toolchain', 'pattern': '.', - 'action': ['python', 'v8/gypfiles/vs_toolchain.py', 'update'], + 'action': ['python', 'v8/build/vs_toolchain.py', 'update'], }, # Pull binutils for linux, enabled debug fission for faster linking / # debugging when used with clang on Ubuntu Precise. diff --git a/deps/v8/OWNERS b/deps/v8/OWNERS index 028f4ff12c5c89..e375fa65b73326 100644 --- a/deps/v8/OWNERS +++ b/deps/v8/OWNERS @@ -5,14 +5,19 @@ binji@chromium.org bmeurer@chromium.org bradnelson@chromium.org cbruni@chromium.org +clemensh@chromium.org danno@chromium.org epertoso@chromium.org +franzih@chromium.org +gsathya@chromium.org hablich@chromium.org hpayer@chromium.org ishell@chromium.org jarin@chromium.org +jgruber@chromium.org jkummerow@chromium.org jochen@chromium.org +leszeks@chromium.org littledan@chromium.org machenbach@chromium.org marja@chromium.org @@ -21,9 +26,11 @@ mstarzinger@chromium.org mtrofin@chromium.org mvstanton@chromium.org mythria@chromium.org +petermarshall@chromium.org neis@chromium.org rmcilroy@chromium.org rossberg@chromium.org +tebbi@chromium.org titzer@chromium.org ulan@chromium.org verwaest@chromium.org diff --git a/deps/v8/PRESUBMIT.py b/deps/v8/PRESUBMIT.py index ad218330b180a4..8321f5cedfd67e 100644 --- a/deps/v8/PRESUBMIT.py +++ b/deps/v8/PRESUBMIT.py @@ -67,19 +67,22 @@ def _V8PresubmitChecks(input_api, output_api): input_api.PresubmitLocalPath(), 'tools')) from presubmit import CppLintProcessor from presubmit import SourceProcessor - from presubmit import CheckAuthorizedAuthor - from presubmit import CheckStatusFiles + from presubmit import StatusFilesProcessor results = [] - if not CppLintProcessor().Run(input_api.PresubmitLocalPath()): + if not CppLintProcessor().RunOnFiles( + input_api.AffectedFiles(include_deletes=False)): results.append(output_api.PresubmitError("C++ lint check failed")) - if not SourceProcessor().Run(input_api.PresubmitLocalPath()): + if not SourceProcessor().RunOnFiles( + input_api.AffectedFiles(include_deletes=False)): results.append(output_api.PresubmitError( "Copyright header, trailing whitespaces and two empty lines " \ "between declarations check failed")) - if not CheckStatusFiles(input_api.PresubmitLocalPath()): + if not StatusFilesProcessor().RunOnFiles( + input_api.AffectedFiles(include_deletes=False)): results.append(output_api.PresubmitError("Status file check failed")) - results.extend(CheckAuthorizedAuthor(input_api, output_api)) + results.extend(input_api.canned_checks.CheckAuthorizedAuthor( + input_api, output_api)) return results diff --git a/deps/v8/build_overrides/build.gni b/deps/v8/build_overrides/build.gni index 6b8a4ff21921a1..8dcaf3a29d78f1 100644 --- a/deps/v8/build_overrides/build.gni +++ b/deps/v8/build_overrides/build.gni @@ -24,3 +24,9 @@ linux_use_bundled_binutils_override = true asan_suppressions_file = "//build/sanitizers/asan_suppressions.cc" lsan_suppressions_file = "//build/sanitizers/lsan_suppressions.cc" tsan_suppressions_file = "//build/sanitizers/tsan_suppressions.cc" + +# Skip assertions about 4GiB file size limit. +ignore_elf32_limitations = true + +# Use the system install of Xcode for tools like ibtool, libtool, etc. +use_system_xcode = true diff --git a/deps/v8/build_overrides/v8.gni b/deps/v8/build_overrides/v8.gni index df8320d5d1746d..15a50558610fa0 100644 --- a/deps/v8/build_overrides/v8.gni +++ b/deps/v8/build_overrides/v8.gni @@ -2,14 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import("//build/config/features.gni") -import("//build/config/ui.gni") import("//build/config/v8_target_cpu.gni") -import("//gni/v8.gni") - -if (is_android) { - import("//build/config/android/config.gni") -} if (((v8_current_cpu == "x86" || v8_current_cpu == "x64" || v8_current_cpu == "x87") && (is_linux || is_mac)) || @@ -24,9 +17,9 @@ v8_extra_library_files = [ "//test/cctest/test-extra.js" ] v8_experimental_extra_library_files = [ "//test/cctest/test-experimental-extra.js" ] +v8_enable_inspector_override = true + declare_args() { - # Enable inspector. See include/v8-inspector.h. - v8_enable_inspector = true + # Use static libraries instead of source_sets. + v8_static_library = false } - -v8_enable_inspector_override = v8_enable_inspector diff --git a/deps/v8/gni/isolate.gni b/deps/v8/gni/isolate.gni index 1cc3a38770439f..3906cf60ef9345 100644 --- a/deps/v8/gni/isolate.gni +++ b/deps/v8/gni/isolate.gni @@ -3,7 +3,6 @@ # found in the LICENSE file. import("//build/config/sanitizers/sanitizers.gni") -import("//build_overrides/v8.gni") import("//third_party/icu/config.gni") import("v8.gni") @@ -97,7 +96,7 @@ template("v8_isolate_run") { } else { icu_use_data_file_flag = "0" } - if (v8_enable_inspector_override) { + if (v8_enable_inspector) { enable_inspector = "1" } else { enable_inspector = "0" @@ -181,7 +180,7 @@ template("v8_isolate_run") { if (is_win) { args += [ "--config-variable", - "msvs_version=2013", + "msvs_version=2015", ] } else { args += [ diff --git a/deps/v8/gni/v8.gni b/deps/v8/gni/v8.gni index 3759572b935157..cb2bdf2cf5d9a5 100644 --- a/deps/v8/gni/v8.gni +++ b/deps/v8/gni/v8.gni @@ -4,8 +4,12 @@ import("//build/config/sanitizers/sanitizers.gni") import("//build/config/v8_target_cpu.gni") +import("//build_overrides/v8.gni") declare_args() { + # Includes files needed for correctness fuzzing. + v8_correctness_fuzzer = false + # Indicate if valgrind was fetched as a custom deps to make it available on # swarming. v8_has_valgrind = false @@ -30,6 +34,9 @@ declare_args() { # Enable ECMAScript Internationalization API. Enabling this feature will # add a dependency on the ICU library. v8_enable_i18n_support = true + + # Enable inspector. See include/v8-inspector.h. + v8_enable_inspector = v8_enable_inspector_override } if (v8_use_external_startup_data == "") { @@ -83,11 +90,20 @@ if (is_posix && v8_enable_backtrace) { # All templates should be kept in sync. template("v8_source_set") { - source_set(target_name) { - forward_variables_from(invoker, "*", [ "configs" ]) - configs += invoker.configs - configs -= v8_remove_configs - configs += v8_add_configs + if (defined(v8_static_library) && v8_static_library) { + static_library(target_name) { + forward_variables_from(invoker, "*", [ "configs" ]) + configs += invoker.configs + configs -= v8_remove_configs + configs += v8_add_configs + } + } else { + source_set(target_name) { + forward_variables_from(invoker, "*", [ "configs" ]) + configs += invoker.configs + configs -= v8_remove_configs + configs += v8_add_configs + } } } diff --git a/deps/v8/gypfiles/all.gyp b/deps/v8/gypfiles/all.gyp index a3f2eedc77d3bd..12e1fdadb76936 100644 --- a/deps/v8/gypfiles/all.gyp +++ b/deps/v8/gypfiles/all.gyp @@ -27,10 +27,14 @@ }], ['v8_enable_inspector==1', { 'dependencies': [ - '../test/debugger/debugger.gyp:*', '../test/inspector/inspector.gyp:*', ], }], + ['v8_enable_inspector==1 and test_isolation_mode != "noop"', { + 'dependencies': [ + '../test/debugger/debugger.gyp:*', + ], + }], ['test_isolation_mode != "noop"', { 'dependencies': [ '../test/bot_default.gyp:*', diff --git a/deps/v8/gypfiles/get_landmines.py b/deps/v8/gypfiles/get_landmines.py index e6b6da6c48db4b..6137648e6dc991 100755 --- a/deps/v8/gypfiles/get_landmines.py +++ b/deps/v8/gypfiles/get_landmines.py @@ -31,6 +31,7 @@ def main(): print 'Clober to fix windows build problems.' print 'Clober again to fix windows build problems.' print 'Clobber to possibly resolve failure on win-32 bot.' + print 'Clobber for http://crbug.com/668958.' return 0 diff --git a/deps/v8/gypfiles/win/msvs_dependencies.isolate b/deps/v8/gypfiles/win/msvs_dependencies.isolate new file mode 100644 index 00000000000000..79ae11a1ae9596 --- /dev/null +++ b/deps/v8/gypfiles/win/msvs_dependencies.isolate @@ -0,0 +1,97 @@ +# Copyright 2016 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# TODO(machenbach): Remove this when crbug.com/669910 is resolved. +{ + 'conditions': [ + # Copy the VS runtime DLLs into the isolate so that they + # don't have to be preinstalled on the target machine. + # + # VS2013 runtimes + ['OS=="win" and msvs_version==2013 and component=="shared_library" and (CONFIGURATION_NAME=="Debug" or CONFIGURATION_NAME=="Debug_x64")', { + 'variables': { + 'files': [ + '<(PRODUCT_DIR)/msvcp120d.dll', + '<(PRODUCT_DIR)/msvcr120d.dll', + ], + }, + }], + ['OS=="win" and msvs_version==2013 and component=="shared_library" and (CONFIGURATION_NAME=="Release" or CONFIGURATION_NAME=="Release_x64")', { + 'variables': { + 'files': [ + '<(PRODUCT_DIR)/msvcp120.dll', + '<(PRODUCT_DIR)/msvcr120.dll', + ], + }, + }], + # VS2015 runtimes + ['OS=="win" and msvs_version==2015 and component=="shared_library" and (CONFIGURATION_NAME=="Debug" or CONFIGURATION_NAME=="Debug_x64")', { + 'variables': { + 'files': [ + '<(PRODUCT_DIR)/msvcp140d.dll', + '<(PRODUCT_DIR)/vccorlib140d.dll', + '<(PRODUCT_DIR)/vcruntime140d.dll', + '<(PRODUCT_DIR)/ucrtbased.dll', + ], + }, + }], + ['OS=="win" and msvs_version==2015 and component=="shared_library" and (CONFIGURATION_NAME=="Release" or CONFIGURATION_NAME=="Release_x64")', { + 'variables': { + 'files': [ + '<(PRODUCT_DIR)/msvcp140.dll', + '<(PRODUCT_DIR)/vccorlib140.dll', + '<(PRODUCT_DIR)/vcruntime140.dll', + '<(PRODUCT_DIR)/ucrtbase.dll', + ], + }, + }], + ['OS=="win" and msvs_version==2015 and component=="shared_library"', { + # Windows 10 Universal C Runtime binaries. + 'variables': { + 'files': [ + '<(PRODUCT_DIR)/api-ms-win-core-console-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-core-datetime-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-core-debug-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-core-errorhandling-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-core-file-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-core-file-l1-2-0.dll', + '<(PRODUCT_DIR)/api-ms-win-core-file-l2-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-core-handle-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-core-heap-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-core-interlocked-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-core-libraryloader-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-core-localization-l1-2-0.dll', + '<(PRODUCT_DIR)/api-ms-win-core-memory-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-core-namedpipe-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-core-processenvironment-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-core-processthreads-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-core-processthreads-l1-1-1.dll', + '<(PRODUCT_DIR)/api-ms-win-core-profile-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-core-rtlsupport-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-core-string-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-core-synch-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-core-synch-l1-2-0.dll', + '<(PRODUCT_DIR)/api-ms-win-core-sysinfo-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-core-timezone-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-core-util-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-crt-conio-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-crt-convert-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-crt-environment-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-crt-filesystem-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-crt-heap-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-crt-locale-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-crt-math-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-crt-multibyte-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-crt-private-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-crt-process-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-crt-runtime-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-crt-stdio-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-crt-string-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-crt-time-l1-1-0.dll', + '<(PRODUCT_DIR)/api-ms-win-crt-utility-l1-1-0.dll', + ], + }, + }], + ], +} diff --git a/deps/v8/include/libplatform/libplatform.h b/deps/v8/include/libplatform/libplatform.h index 40f3f668927f4e..cab467fd50704f 100644 --- a/deps/v8/include/libplatform/libplatform.h +++ b/deps/v8/include/libplatform/libplatform.h @@ -34,6 +34,17 @@ V8_PLATFORM_EXPORT v8::Platform* CreateDefaultPlatform( V8_PLATFORM_EXPORT bool PumpMessageLoop(v8::Platform* platform, v8::Isolate* isolate); +/** + * Runs pending idle tasks for at most |idle_time_in_seconds| seconds. + * + * The caller has to make sure that this is called from the right thread. + * This call does not block if no task is pending. The |platform| has to be + * created using |CreateDefaultPlatform|. + */ +V8_PLATFORM_EXPORT void RunIdleTasks(v8::Platform* platform, + v8::Isolate* isolate, + double idle_time_in_seconds); + /** * Attempts to set the tracing controller for the given platform. * diff --git a/deps/v8/include/v8-debug.h b/deps/v8/include/v8-debug.h index 6385a31d85e80f..777b8aaa3e645a 100644 --- a/deps/v8/include/v8-debug.h +++ b/deps/v8/include/v8-debug.h @@ -16,11 +16,9 @@ namespace v8 { enum DebugEvent { Break = 1, Exception = 2, - NewFunction = 3, - BeforeCompile = 4, - AfterCompile = 5, - CompileError = 6, - AsyncTaskEvent = 7, + AfterCompile = 3, + CompileError = 4, + AsyncTaskEvent = 5, }; class V8_EXPORT Debug { @@ -87,7 +85,6 @@ class V8_EXPORT Debug { virtual ~Message() {} }; - /** * An event details object passed to the debug event listener. */ @@ -145,7 +142,7 @@ class V8_EXPORT Debug { * * \param message the debug message handler message object * - * A MessageHandler2 does not take possession of the message data, + * A MessageHandler does not take possession of the message data, * and must not rely on the data persisting after the handler returns. */ typedef void (*MessageHandler)(const Message& message); @@ -167,33 +164,37 @@ class V8_EXPORT Debug { static void CancelDebugBreak(Isolate* isolate); // Check if a debugger break is scheduled in the given isolate. - static bool CheckDebugBreak(Isolate* isolate); + V8_DEPRECATED("No longer supported", + static bool CheckDebugBreak(Isolate* isolate)); // Message based interface. The message protocol is JSON. - static void SetMessageHandler(Isolate* isolate, MessageHandler handler); - - static void SendCommand(Isolate* isolate, - const uint16_t* command, int length, - ClientData* client_data = NULL); - - /** - * Run a JavaScript function in the debugger. - * \param fun the function to call - * \param data passed as second argument to the function - * With this call the debugger is entered and the function specified is called - * with the execution state as the first argument. This makes it possible to - * get access to information otherwise not available during normal JavaScript - * execution e.g. details on stack frames. Receiver of the function call will - * be the debugger context global object, however this is a subject to change. - * The following example shows a JavaScript function which when passed to - * v8::Debug::Call will return the current line of JavaScript execution. - * - * \code - * function frame_source_line(exec_state) { - * return exec_state.frame(0).sourceLine(); - * } - * \endcode - */ + V8_DEPRECATED("No longer supported", + static void SetMessageHandler(Isolate* isolate, + MessageHandler handler)); + + V8_DEPRECATED("No longer supported", + static void SendCommand(Isolate* isolate, + const uint16_t* command, int length, + ClientData* client_data = NULL)); + + /** + * Run a JavaScript function in the debugger. + * \param fun the function to call + * \param data passed as second argument to the function + * With this call the debugger is entered and the function specified is called + * with the execution state as the first argument. This makes it possible to + * get access to information otherwise not available during normal JavaScript + * execution e.g. details on stack frames. Receiver of the function call will + * be the debugger context global object, however this is a subject to change. + * The following example shows a JavaScript function which when passed to + * v8::Debug::Call will return the current line of JavaScript execution. + * + * \code + * function frame_source_line(exec_state) { + * return exec_state.frame(0).sourceLine(); + * } + * \endcode + */ // TODO(dcarney): data arg should be a MaybeLocal static MaybeLocal Call(Local context, v8::Local fun, @@ -202,8 +203,9 @@ class V8_EXPORT Debug { /** * Returns a mirror object for the given object. */ - static MaybeLocal GetMirror(Local context, - v8::Local obj); + V8_DEPRECATED("No longer supported", + static MaybeLocal GetMirror(Local context, + v8::Local obj)); /** * Makes V8 process all pending debug messages. @@ -236,7 +238,8 @@ class V8_EXPORT Debug { * "Evaluate" debug command behavior currently is not specified in scope * of this method. */ - static void ProcessDebugMessages(Isolate* isolate); + V8_DEPRECATED("No longer supported", + static void ProcessDebugMessages(Isolate* isolate)); /** * Debugger is running in its own context which is entered while debugger @@ -245,13 +248,16 @@ class V8_EXPORT Debug { * to change. The Context exists only when the debugger is active, i.e. at * least one DebugEventListener or MessageHandler is set. */ - static Local GetDebugContext(Isolate* isolate); + V8_DEPRECATED("Use v8-inspector", + static Local GetDebugContext(Isolate* isolate)); /** * While in the debug context, this method returns the top-most non-debug * context, if it exists. */ - static MaybeLocal GetDebuggedContext(Isolate* isolate); + V8_DEPRECATED( + "No longer supported", + static MaybeLocal GetDebuggedContext(Isolate* isolate)); /** * Enable/disable LiveEdit functionality for the given Isolate diff --git a/deps/v8/include/v8-inspector.h b/deps/v8/include/v8-inspector.h index 0855ac101b74ef..d0925adba0460c 100644 --- a/deps/v8/include/v8-inspector.h +++ b/deps/v8/include/v8-inspector.h @@ -248,9 +248,9 @@ class V8_EXPORT V8Inspector { class V8_EXPORT Channel { public: virtual ~Channel() {} - virtual void sendProtocolResponse(int callId, - const StringView& message) = 0; - virtual void sendProtocolNotification(const StringView& message) = 0; + virtual void sendResponse(int callId, + std::unique_ptr message) = 0; + virtual void sendNotification(std::unique_ptr message) = 0; virtual void flushProtocolNotifications() = 0; }; virtual std::unique_ptr connect( diff --git a/deps/v8/include/v8-version-string.h b/deps/v8/include/v8-version-string.h new file mode 100644 index 00000000000000..075282de4ca0e2 --- /dev/null +++ b/deps/v8/include/v8-version-string.h @@ -0,0 +1,33 @@ +// 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. + +#ifndef V8_VERSION_STRING_H_ +#define V8_VERSION_STRING_H_ + +#include "v8-version.h" // NOLINT(build/include) + +// This is here rather than v8-version.h to keep that file simple and +// machine-processable. + +#if V8_IS_CANDIDATE_VERSION +#define V8_CANDIDATE_STRING " (candidate)" +#else +#define V8_CANDIDATE_STRING "" +#endif + +#define V8_SX(x) #x +#define V8_S(x) V8_SX(x) + +#if V8_PATCH_LEVEL > 0 +#define V8_VERSION_STRING \ + V8_S(V8_MAJOR_VERSION) \ + "." V8_S(V8_MINOR_VERSION) "." V8_S(V8_BUILD_NUMBER) "." V8_S( \ + V8_PATCH_LEVEL) V8_CANDIDATE_STRING +#else +#define V8_VERSION_STRING \ + V8_S(V8_MAJOR_VERSION) \ + "." V8_S(V8_MINOR_VERSION) "." V8_S(V8_BUILD_NUMBER) V8_CANDIDATE_STRING +#endif + +#endif // V8_VERSION_STRING_H_ diff --git a/deps/v8/include/v8-version.h b/deps/v8/include/v8-version.h index 663964616f63e7..2301f219b36198 100644 --- a/deps/v8/include/v8-version.h +++ b/deps/v8/include/v8-version.h @@ -9,9 +9,9 @@ // 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 6 -#define V8_BUILD_NUMBER 326 -#define V8_PATCH_LEVEL 57 +#define V8_MINOR_VERSION 7 +#define V8_BUILD_NUMBER 492 +#define V8_PATCH_LEVEL 69 // 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 5348ba7e48b32b..f00ecc7465d84e 100644 --- a/deps/v8/include/v8.h +++ b/deps/v8/include/v8.h @@ -666,7 +666,7 @@ struct CopyablePersistentTraits { /** * A PersistentBase which allows copy and assignment. * - * Copy, assignment and destructor bevavior is controlled by the traits + * Copy, assignment and destructor behavior is controlled by the traits * class M. * * Note: Persistent class hierarchy is subject to future changes. @@ -867,8 +867,8 @@ class V8_EXPORT HandleScope { HandleScope(const HandleScope&) = delete; void operator=(const HandleScope&) = delete; - void* operator new(size_t size) = delete; - void operator delete(void*, size_t) = delete; + void* operator new(size_t size); + void operator delete(void*, size_t); protected: V8_INLINE HandleScope() {} @@ -919,8 +919,8 @@ class V8_EXPORT EscapableHandleScope : public HandleScope { EscapableHandleScope(const EscapableHandleScope&) = delete; void operator=(const EscapableHandleScope&) = delete; - void* operator new(size_t size) = delete; - void operator delete(void*, size_t) = delete; + void* operator new(size_t size); + void operator delete(void*, size_t); private: internal::Object** Escape(internal::Object** escape_value); @@ -934,8 +934,8 @@ class V8_EXPORT SealHandleScope { SealHandleScope(const SealHandleScope&) = delete; void operator=(const SealHandleScope&) = delete; - void* operator new(size_t size) = delete; - void operator delete(void*, size_t) = delete; + void* operator new(size_t size); + void operator delete(void*, size_t); private: internal::Isolate* const isolate_; @@ -961,30 +961,21 @@ class V8_EXPORT Data { */ class ScriptOriginOptions { public: - V8_INLINE ScriptOriginOptions(bool is_embedder_debug_script = false, - bool is_shared_cross_origin = false, - bool is_opaque = false) - : flags_((is_embedder_debug_script ? kIsEmbedderDebugScript : 0) | - (is_shared_cross_origin ? kIsSharedCrossOrigin : 0) | - (is_opaque ? kIsOpaque : 0)) {} + V8_INLINE ScriptOriginOptions(bool is_shared_cross_origin = false, + bool is_opaque = false, bool is_wasm = false) + : flags_((is_shared_cross_origin ? kIsSharedCrossOrigin : 0) | + (is_wasm ? kIsWasm : 0) | (is_opaque ? kIsOpaque : 0)) {} V8_INLINE ScriptOriginOptions(int flags) - : flags_(flags & - (kIsEmbedderDebugScript | kIsSharedCrossOrigin | kIsOpaque)) {} - bool IsEmbedderDebugScript() const { - return (flags_ & kIsEmbedderDebugScript) != 0; - } + : flags_(flags & (kIsSharedCrossOrigin | kIsOpaque | kIsWasm)) {} bool IsSharedCrossOrigin() const { return (flags_ & kIsSharedCrossOrigin) != 0; } bool IsOpaque() const { return (flags_ & kIsOpaque) != 0; } + bool IsWasm() const { return (flags_ & kIsWasm) != 0; } int Flags() const { return flags_; } private: - enum { - kIsEmbedderDebugScript = 1, - kIsSharedCrossOrigin = 1 << 1, - kIsOpaque = 1 << 2 - }; + enum { kIsSharedCrossOrigin = 1, kIsOpaque = 1 << 1, kIsWasm = 1 << 2 }; const int flags_; }; @@ -999,9 +990,10 @@ class ScriptOrigin { Local resource_column_offset = Local(), Local resource_is_shared_cross_origin = Local(), Local script_id = Local(), - Local resource_is_embedder_debug_script = Local(), Local source_map_url = Local(), - Local resource_is_opaque = Local()); + Local resource_is_opaque = Local(), + Local is_wasm = Local()); + V8_INLINE Local ResourceName() const; V8_INLINE Local ResourceLineOffset() const; V8_INLINE Local ResourceColumnOffset() const; @@ -1485,6 +1477,11 @@ class V8_EXPORT Message { */ int GetEndPosition() const; + /** + * Returns the error level of the message. + */ + int ErrorLevel() const; + /** * Returns the index within the line of the first character where * the error occurred. @@ -1712,10 +1709,27 @@ class V8_EXPORT ValueSerializer { */ virtual Maybe WriteHostObject(Isolate* isolate, Local object); + /* + * Called when the ValueSerializer is going to serialize a + * SharedArrayBuffer object. The embedder must return an ID for the + * object, using the same ID if this SharedArrayBuffer has already been + * serialized in this buffer. When deserializing, this ID will be passed to + * ValueDeserializer::TransferSharedArrayBuffer as |transfer_id|. + * + * If the object cannot be serialized, an + * exception should be thrown and Nothing() returned. + */ + virtual Maybe GetSharedArrayBufferId( + Isolate* isolate, Local shared_array_buffer); + /* * Allocates memory for the buffer of at least the size provided. The actual * size (which may be greater or equal) is written to |actual_size|. If no * buffer has been allocated yet, nullptr will be provided. + * + * If the memory cannot be allocated, nullptr should be returned. + * |actual_size| will be ignored. It is assumed that |old_buffer| is still + * valid in this case and has not been modified. */ virtual void* ReallocateBufferMemory(void* old_buffer, size_t size, size_t* actual_size); @@ -1766,8 +1780,19 @@ class V8_EXPORT ValueSerializer { /* * Similar to TransferArrayBuffer, but for SharedArrayBuffer. */ - void TransferSharedArrayBuffer(uint32_t transfer_id, - Local shared_array_buffer); + V8_DEPRECATE_SOON("Use Delegate::GetSharedArrayBufferId", + void TransferSharedArrayBuffer( + uint32_t transfer_id, + Local shared_array_buffer)); + + /* + * Indicate whether to treat ArrayBufferView objects as host objects, + * i.e. pass them to Delegate::WriteHostObject. This should not be + * called when no Delegate was passed. + * + * The default is not to treat ArrayBufferViews as host objects. + */ + void SetTreatArrayBufferViewsAsHostObjects(bool mode); /* * Write raw data in various common formats to the buffer. @@ -1834,9 +1859,10 @@ class V8_EXPORT ValueDeserializer { /* * Similar to TransferArrayBuffer, but for SharedArrayBuffer. - * transfer_id exists in the same namespace as unshared ArrayBuffer objects. + * The id is not necessarily in the same namespace as unshared ArrayBuffer + * objects. */ - void TransferSharedArrayBuffer(uint32_t transfer_id, + void TransferSharedArrayBuffer(uint32_t id, Local shared_array_buffer); /* @@ -1908,9 +1934,16 @@ class V8_EXPORT Value : public Data { */ V8_INLINE bool IsNull() const; - /** - * Returns true if this value is true. + /** + * Returns true if this value is either the null or the undefined value. + * See ECMA-262 + * 4.3.11. and 4.3.12 */ + V8_INLINE bool IsNullOrUndefined() const; + + /** + * Returns true if this value is true. + */ bool IsTrue() const; /** @@ -1920,7 +1953,6 @@ class V8_EXPORT Value : public Data { /** * Returns true if this value is a symbol or a string. - * This is an experimental feature. */ bool IsName() const; @@ -1932,7 +1964,6 @@ class V8_EXPORT Value : public Data { /** * Returns true if this value is a symbol. - * This is an experimental feature. */ bool IsSymbol() const; @@ -2004,7 +2035,6 @@ class V8_EXPORT Value : public Data { /** * Returns true if this value is a Symbol object. - * This is an experimental feature. */ bool IsSymbolObject() const; @@ -2025,19 +2055,16 @@ class V8_EXPORT Value : public Data { /** * Returns true if this value is a Generator function. - * This is an experimental feature. */ bool IsGeneratorFunction() const; /** * Returns true if this value is a Generator object (iterator). - * This is an experimental feature. */ bool IsGeneratorObject() const; /** * Returns true if this value is a Promise. - * This is an experimental feature. */ bool IsPromise() const; @@ -2073,73 +2100,61 @@ class V8_EXPORT Value : public Data { /** * Returns true if this value is an ArrayBuffer. - * This is an experimental feature. */ bool IsArrayBuffer() const; /** * Returns true if this value is an ArrayBufferView. - * This is an experimental feature. */ bool IsArrayBufferView() const; /** * Returns true if this value is one of TypedArrays. - * This is an experimental feature. */ bool IsTypedArray() const; /** * Returns true if this value is an Uint8Array. - * This is an experimental feature. */ bool IsUint8Array() const; /** * Returns true if this value is an Uint8ClampedArray. - * This is an experimental feature. */ bool IsUint8ClampedArray() const; /** * Returns true if this value is an Int8Array. - * This is an experimental feature. */ bool IsInt8Array() const; /** * Returns true if this value is an Uint16Array. - * This is an experimental feature. */ bool IsUint16Array() const; /** * Returns true if this value is an Int16Array. - * This is an experimental feature. */ bool IsInt16Array() const; /** * Returns true if this value is an Uint32Array. - * This is an experimental feature. */ bool IsUint32Array() const; /** * Returns true if this value is an Int32Array. - * This is an experimental feature. */ bool IsInt32Array() const; /** * Returns true if this value is a Float32Array. - * This is an experimental feature. */ bool IsFloat32Array() const; /** * Returns true if this value is a Float64Array. - * This is an experimental feature. */ bool IsFloat64Array() const; @@ -2151,7 +2166,6 @@ class V8_EXPORT Value : public Data { /** * Returns true if this value is a DataView. - * This is an experimental feature. */ bool IsDataView() const; @@ -2244,11 +2258,12 @@ class V8_EXPORT Value : public Data { template V8_INLINE static Value* Cast(T* value); - Local TypeOf(v8::Isolate*); + Local TypeOf(Isolate*); private: V8_INLINE bool QuickIsUndefined() const; V8_INLINE bool QuickIsNull() const; + V8_INLINE bool QuickIsNullOrUndefined() const; V8_INLINE bool QuickIsString() const; bool FullIsUndefined() const; bool FullIsNull() const; @@ -2291,9 +2306,10 @@ class V8_EXPORT Name : public Primitive { */ int GetIdentityHash(); - V8_INLINE static Name* Cast(v8::Value* obj); + V8_INLINE static Name* Cast(Value* obj); + private: - static void CheckCast(v8::Value* obj); + static void CheckCast(Value* obj); }; @@ -2391,7 +2407,7 @@ class V8_EXPORT String : public Name { /** * A zero length string. */ - V8_INLINE static v8::Local Empty(Isolate* isolate); + V8_INLINE static Local Empty(Isolate* isolate); /** * Returns true if the string is external @@ -2425,7 +2441,7 @@ class V8_EXPORT String : public Name { void operator=(const ExternalStringResourceBase&) = delete; private: - friend class v8::internal::Heap; + friend class internal::Heap; }; /** @@ -2669,8 +2685,6 @@ class V8_EXPORT String : public Name { /** * A JavaScript symbol (ECMA-262 edition 6) - * - * This is an experimental feature. Use at your own risk. */ class V8_EXPORT Symbol : public Name { public: @@ -2695,14 +2709,15 @@ class V8_EXPORT Symbol : public Name { // Well-known symbols static Local GetIterator(Isolate* isolate); static Local GetUnscopables(Isolate* isolate); + static Local GetToPrimitive(Isolate* isolate); static Local GetToStringTag(Isolate* isolate); static Local GetIsConcatSpreadable(Isolate* isolate); - V8_INLINE static Symbol* Cast(v8::Value* obj); + V8_INLINE static Symbol* Cast(Value* obj); private: Symbol(); - static void CheckCast(v8::Value* obj); + static void CheckCast(Value* obj); }; @@ -3695,7 +3710,7 @@ class V8_EXPORT Function : public Object { /** * Tells whether this function is builtin. */ - bool IsBuiltin() const; + V8_DEPRECATED("this should no longer be used.", bool IsBuiltin() const); /** * Returns scriptId. @@ -3720,10 +3735,15 @@ class V8_EXPORT Function : public Object { /** * An instance of the built-in Promise constructor (ES6 draft). - * This API is experimental. Only works with --harmony flag. */ class V8_EXPORT Promise : public Object { public: + /** + * State of the promise. Each value corresponds to one of the possible values + * of the [[PromiseState]] field. + */ + enum PromiseState { kPending, kFulfilled, kRejected }; + class V8_EXPORT Resolver : public Object { public: /** @@ -3780,6 +3800,17 @@ class V8_EXPORT Promise : public Object { */ bool HasHandler(); + /** + * Returns the content of the [[PromiseResult]] field. The Promise must not + * be pending. + */ + Local Result(); + + /** + * Returns the value of the [[PromiseState]] field. + */ + PromiseState State(); + V8_INLINE static Promise* Cast(Value* obj); private: @@ -3926,7 +3957,6 @@ enum class ArrayBufferCreationMode { kInternalized, kExternalized }; /** * An instance of the built-in ArrayBuffer constructor (ES6 draft 15.13.5). - * This API is experimental and may change significantly. */ class V8_EXPORT ArrayBuffer : public Object { public: @@ -3982,8 +4012,6 @@ class V8_EXPORT ArrayBuffer : public Object { * * The Data pointer of ArrayBuffer::Contents is always allocated with * Allocator::Allocate that is set via Isolate::CreateParams. - * - * This API is experimental and may change significantly. */ class V8_EXPORT Contents { // NOLINT public: @@ -4084,8 +4112,6 @@ class V8_EXPORT ArrayBuffer : public Object { /** * A base class for an instance of one of "views" over ArrayBuffer, * including TypedArrays and DataView (ES6 draft 15.13). - * - * This API is experimental and may change significantly. */ class V8_EXPORT ArrayBufferView : public Object { public: @@ -4133,7 +4159,6 @@ class V8_EXPORT ArrayBufferView : public Object { /** * A base class for an instance of TypedArray series of constructors * (ES6 draft 15.13.6). - * This API is experimental and may change significantly. */ class V8_EXPORT TypedArray : public ArrayBufferView { public: @@ -4153,7 +4178,6 @@ class V8_EXPORT TypedArray : public ArrayBufferView { /** * An instance of Uint8Array constructor (ES6 draft 15.13.6). - * This API is experimental and may change significantly. */ class V8_EXPORT Uint8Array : public TypedArray { public: @@ -4171,7 +4195,6 @@ class V8_EXPORT Uint8Array : public TypedArray { /** * An instance of Uint8ClampedArray constructor (ES6 draft 15.13.6). - * This API is experimental and may change significantly. */ class V8_EXPORT Uint8ClampedArray : public TypedArray { public: @@ -4189,7 +4212,6 @@ class V8_EXPORT Uint8ClampedArray : public TypedArray { /** * An instance of Int8Array constructor (ES6 draft 15.13.6). - * This API is experimental and may change significantly. */ class V8_EXPORT Int8Array : public TypedArray { public: @@ -4207,7 +4229,6 @@ class V8_EXPORT Int8Array : public TypedArray { /** * An instance of Uint16Array constructor (ES6 draft 15.13.6). - * This API is experimental and may change significantly. */ class V8_EXPORT Uint16Array : public TypedArray { public: @@ -4225,7 +4246,6 @@ class V8_EXPORT Uint16Array : public TypedArray { /** * An instance of Int16Array constructor (ES6 draft 15.13.6). - * This API is experimental and may change significantly. */ class V8_EXPORT Int16Array : public TypedArray { public: @@ -4243,7 +4263,6 @@ class V8_EXPORT Int16Array : public TypedArray { /** * An instance of Uint32Array constructor (ES6 draft 15.13.6). - * This API is experimental and may change significantly. */ class V8_EXPORT Uint32Array : public TypedArray { public: @@ -4261,7 +4280,6 @@ class V8_EXPORT Uint32Array : public TypedArray { /** * An instance of Int32Array constructor (ES6 draft 15.13.6). - * This API is experimental and may change significantly. */ class V8_EXPORT Int32Array : public TypedArray { public: @@ -4279,7 +4297,6 @@ class V8_EXPORT Int32Array : public TypedArray { /** * An instance of Float32Array constructor (ES6 draft 15.13.6). - * This API is experimental and may change significantly. */ class V8_EXPORT Float32Array : public TypedArray { public: @@ -4297,7 +4314,6 @@ class V8_EXPORT Float32Array : public TypedArray { /** * An instance of Float64Array constructor (ES6 draft 15.13.6). - * This API is experimental and may change significantly. */ class V8_EXPORT Float64Array : public TypedArray { public: @@ -4315,7 +4331,6 @@ class V8_EXPORT Float64Array : public TypedArray { /** * An instance of DataView constructor (ES6 draft 15.13.7). - * This API is experimental and may change significantly. */ class V8_EXPORT DataView : public ArrayBufferView { public: @@ -4446,7 +4461,7 @@ class V8_EXPORT Date : public Object { */ double ValueOf() const; - V8_INLINE static Date* Cast(v8::Value* obj); + V8_INLINE static Date* Cast(Value* obj); /** * Notification that the embedder has changed the time zone, @@ -4463,7 +4478,7 @@ class V8_EXPORT Date : public Object { static void DateTimeConfigurationChangeNotification(Isolate* isolate); private: - static void CheckCast(v8::Value* obj); + static void CheckCast(Value* obj); }; @@ -4476,10 +4491,10 @@ class V8_EXPORT NumberObject : public Object { double ValueOf() const; - V8_INLINE static NumberObject* Cast(v8::Value* obj); + V8_INLINE static NumberObject* Cast(Value* obj); private: - static void CheckCast(v8::Value* obj); + static void CheckCast(Value* obj); }; @@ -4493,10 +4508,10 @@ class V8_EXPORT BooleanObject : public Object { bool ValueOf() const; - V8_INLINE static BooleanObject* Cast(v8::Value* obj); + V8_INLINE static BooleanObject* Cast(Value* obj); private: - static void CheckCast(v8::Value* obj); + static void CheckCast(Value* obj); }; @@ -4509,17 +4524,15 @@ class V8_EXPORT StringObject : public Object { Local ValueOf() const; - V8_INLINE static StringObject* Cast(v8::Value* obj); + V8_INLINE static StringObject* Cast(Value* obj); private: - static void CheckCast(v8::Value* obj); + static void CheckCast(Value* obj); }; /** * A Symbol object (ECMA-262 edition 6). - * - * This is an experimental feature. Use at your own risk. */ class V8_EXPORT SymbolObject : public Object { public: @@ -4527,10 +4540,10 @@ class V8_EXPORT SymbolObject : public Object { Local ValueOf() const; - V8_INLINE static SymbolObject* Cast(v8::Value* obj); + V8_INLINE static SymbolObject* Cast(Value* obj); private: - static void CheckCast(v8::Value* obj); + static void CheckCast(Value* obj); }; @@ -4580,10 +4593,10 @@ class V8_EXPORT RegExp : public Object { */ Flags GetFlags() const; - V8_INLINE static RegExp* Cast(v8::Value* obj); + V8_INLINE static RegExp* Cast(Value* obj); private: - static void CheckCast(v8::Value* obj); + static void CheckCast(Value* obj); }; @@ -5144,7 +5157,11 @@ class V8_EXPORT FunctionTemplate : public Template { /** Get the InstanceTemplate. */ Local InstanceTemplate(); - /** Causes the function template to inherit from a parent function template.*/ + /** + * Causes the function template to inherit from a parent function template. + * This means the the function's prototype.__proto__ is set to the parent + * function's prototype. + **/ void Inherit(Local parent); /** @@ -5153,6 +5170,14 @@ class V8_EXPORT FunctionTemplate : public Template { */ Local PrototypeTemplate(); + /** + * A PrototypeProviderTemplate is another function template whose prototype + * property is used for this template. This is mutually exclusive with setting + * a prototype template indirectly by calling PrototypeTemplate() or using + * Inherit(). + **/ + void SetPrototypeProviderTemplate(Local prototype_provider); + /** * Set the class name of the FunctionTemplate. This is used for * printing objects created with the function created from the @@ -5611,9 +5636,9 @@ class V8_EXPORT Extension { // NOLINT const char** deps = 0, int source_length = -1); virtual ~Extension() { } - virtual v8::Local GetNativeFunctionTemplate( - v8::Isolate* isolate, v8::Local name) { - return v8::Local(); + virtual Local GetNativeFunctionTemplate( + Isolate* isolate, Local name) { + return Local(); } const char* name() const { return name_; } @@ -5718,7 +5743,7 @@ typedef void (*FatalErrorCallback)(const char* location, const char* message); typedef void (*OOMErrorCallback)(const char* location, bool is_heap_oom); -typedef void (*MessageCallback)(Local message, Local error); +typedef void (*MessageCallback)(Local message, Local data); // --- Tracing --- @@ -5787,6 +5812,27 @@ typedef void (*BeforeCallEnteredCallback)(Isolate*); typedef void (*CallCompletedCallback)(Isolate*); typedef void (*DeprecatedCallCompletedCallback)(); +/** + * PromiseHook with type kInit is called when a new promise is + * created. When a new promise is created as part of the chain in the + * case of Promise.then or in the intermediate promises created by + * Promise.{race, all}/AsyncFunctionAwait, we pass the parent promise + * otherwise we pass undefined. + * + * PromiseHook with type kResolve is called at the beginning of + * resolve or reject function defined by CreateResolvingFunctions. + * + * PromiseHook with type kBefore is called at the beginning of the + * PromiseReactionJob. + * + * PromiseHook with type kAfter is called right at the end of the + * PromiseReactionJob. + */ +enum class PromiseHookType { kInit, kResolve, kBefore, kAfter }; + +typedef void (*PromiseHook)(PromiseHookType type, Local promise, + Local parent); + // --- Promise Reject Callback --- enum PromiseRejectEvent { kPromiseRejectWithNoHandler = 0, @@ -5889,6 +5935,21 @@ typedef void (*FailedAccessCheckCallback)(Local target, */ typedef bool (*AllowCodeGenerationFromStringsCallback)(Local context); +// --- WASM compilation callbacks --- + +/** + * Callback to check if a buffer source may be compiled to WASM, given + * the compilation is attempted as a promise or not. + */ + +typedef bool (*AllowWasmCompileCallback)(Isolate* isolate, Local source, + bool as_promise); + +typedef bool (*AllowWasmInstantiateCallback)(Isolate* isolate, + Local module_or_bytes, + MaybeLocal ffi, + bool as_promise); + // --- Garbage Collection Callbacks --- /** @@ -6249,17 +6310,33 @@ class V8_EXPORT EmbedderHeapTracer { }; /** - * Callback to the embedder used in SnapshotCreator to handle internal fields. + * Callback and supporting data used in SnapshotCreator to implement embedder + * logic to serialize internal fields. */ -typedef StartupData (*SerializeInternalFieldsCallback)(Local holder, - int index); +struct SerializeInternalFieldsCallback { + typedef StartupData (*CallbackFunction)(Local holder, int index, + void* data); + SerializeInternalFieldsCallback(CallbackFunction function = nullptr, + void* data_arg = nullptr) + : callback(function), data(data_arg) {} + CallbackFunction callback; + void* data; +}; /** - * Callback to the embedder used to deserialize internal fields. + * Callback and supporting data used to implement embedder logic to deserialize + * internal fields. */ -typedef void (*DeserializeInternalFieldsCallback)(Local holder, - int index, - StartupData payload); +struct DeserializeInternalFieldsCallback { + typedef void (*CallbackFunction)(Local holder, int index, + StartupData payload, void* data); + DeserializeInternalFieldsCallback(CallbackFunction function = nullptr, + void* data_arg = nullptr) + : callback(function), data(data_arg) {} + void (*callback)(Local holder, int index, StartupData payload, + void* data); + void* data; +}; /** * Isolate represents an isolated instance of the V8 engine. V8 isolates have @@ -6283,8 +6360,7 @@ class V8_EXPORT Isolate { create_histogram_callback(nullptr), add_histogram_sample_callback(nullptr), array_buffer_allocator(nullptr), - external_references(nullptr), - deserialize_internal_fields_callback(nullptr) {} + external_references(nullptr) {} /** * The optional entry_hook allows the host application to provide the @@ -6340,12 +6416,6 @@ class V8_EXPORT Isolate { * entire lifetime of the isolate. */ intptr_t* external_references; - - /** - * Specifies an optional callback to deserialize internal fields. It - * should match the SerializeInternalFieldCallback used to serialize. - */ - DeserializeInternalFieldsCallback deserialize_internal_fields_callback; }; @@ -6481,12 +6551,25 @@ class V8_EXPORT Isolate { kLegacyDateParser = 33, kDefineGetterOrSetterWouldThrow = 34, kFunctionConstructorReturnedUndefined = 35, + kAssigmentExpressionLHSIsCallInSloppy = 36, + kAssigmentExpressionLHSIsCallInStrict = 37, + kPromiseConstructorReturnedUndefined = 38, // If you add new values here, you'll also need to update Chromium's: // UseCounter.h, V8PerIsolateData.cpp, histograms.xml kUseCounterFeatureCount // This enum value must be last. }; + enum MessageErrorLevel { + kMessageLog = (1 << 0), + kMessageDebug = (1 << 1), + kMessageInfo = (1 << 2), + kMessageError = (1 << 3), + kMessageWarning = (1 << 4), + kMessageAll = kMessageLog | kMessageDebug | kMessageInfo | kMessageError | + kMessageWarning, + }; + typedef void (*UseCounterCallback)(Isolate* isolate, UseCounterFeature feature); @@ -6725,8 +6808,10 @@ class V8_EXPORT Isolate { * garbage collection types it is sufficient to provide object groups * for partially dependent handles only. */ - template void SetObjectGroupId(const Persistent& object, - UniqueId id); + template + V8_DEPRECATE_SOON("Use EmbedderHeapTracer", + void SetObjectGroupId(const Persistent& object, + UniqueId id)); /** * Allows the host application to declare implicit references from an object @@ -6735,8 +6820,10 @@ class V8_EXPORT Isolate { * are removed. It is intended to be used in the before-garbage-collection * callback function. */ - template void SetReferenceFromGroup(UniqueId id, - const Persistent& child); + template + V8_DEPRECATE_SOON("Use EmbedderHeapTracer", + void SetReferenceFromGroup(UniqueId id, + const Persistent& child)); /** * Allows the host application to declare implicit references from an object @@ -6744,8 +6831,10 @@ class V8_EXPORT Isolate { * too. After each garbage collection, all implicit references are removed. It * is intended to be used in the before-garbage-collection callback function. */ - template - void SetReference(const Persistent& parent, const Persistent& child); + template + V8_DEPRECATE_SOON("Use EmbedderHeapTracer", + void SetReference(const Persistent& parent, + const Persistent& child)); typedef void (*GCCallback)(Isolate* isolate, GCType type, GCCallbackFlags flags); @@ -6887,6 +6976,12 @@ class V8_EXPORT Isolate { void RemoveCallCompletedCallback( DeprecatedCallCompletedCallback callback)); + /** + * Experimental: Set the PromiseHook callback for various promise + * lifecycle events. + */ + void SetPromiseHook(PromiseHook hook); + /** * Set callback to notify about promise reject with no handler, or * revocation of such a previous notification once the handler is added. @@ -7020,6 +7115,23 @@ class V8_EXPORT Isolate { */ void SetRAILMode(RAILMode rail_mode); + /** + * Optional notification to tell V8 the current isolate is used for debugging + * and requires higher heap limit. + */ + void IncreaseHeapLimitForDebugging(); + + /** + * Restores the original heap limit after IncreaseHeapLimitForDebugging(). + */ + void RestoreOriginalHeapLimit(); + + /** + * Returns true if the heap limit was increased for debugging and the + * original heap limit was not restored yet. + */ + bool IsHeapLimitIncreasedForDebugging(); + /** * Allows the host application to provide the address of a function that is * notified each time code is added, moved or removed. @@ -7084,6 +7196,16 @@ class V8_EXPORT Isolate { void SetAllowCodeGenerationFromStringsCallback( AllowCodeGenerationFromStringsCallback callback); + /** + * Set the callback to invoke to check if wasm compilation from + * the specified object is allowed. By default, wasm compilation + * is allowed. + * + * Similar for instantiate. + */ + void SetAllowWasmCompileCallback(AllowWasmCompileCallback callback); + void SetAllowWasmInstantiateCallback(AllowWasmInstantiateCallback callback); + /** * Check if V8 is dead and therefore unusable. This is the case after * fatal errors such as out-of-memory situations. @@ -7091,7 +7213,7 @@ class V8_EXPORT Isolate { bool IsDead(); /** - * Adds a message listener. + * Adds a message listener (errors only). * * The same message listener can be added more than once and in that * case it will be called more than once for each message. @@ -7102,6 +7224,21 @@ class V8_EXPORT Isolate { bool AddMessageListener(MessageCallback that, Local data = Local()); + /** + * Adds a message listener. + * + * The same message listener can be added more than once and in that + * case it will be called more than once for each message. + * + * If data is specified, it will be passed to the callback when it is called. + * Otherwise, the exception object will be passed to the callback instead. + * + * A listener can listen for particular error levels by providing a mask. + */ + bool AddMessageListenerWithErrorLevel(MessageCallback that, + int message_levels, + Local data = Local()); + /** * Remove all message listeners from the specified callback function. */ @@ -7598,10 +7735,23 @@ class V8_EXPORT SnapshotCreator { Isolate* GetIsolate(); /** - * Add a context to be included in the snapshot blob. + * Set the default context to be included in the snapshot blob. + * The snapshot will not contain the global proxy, and we expect one or a + * global object template to create one, to be provided upon deserialization. + */ + void SetDefaultContext(Local context); + + /** + * Add additional context to be included in the snapshot blob. + * The snapshot will include the global proxy. + * + * \param callback optional callback to serialize internal fields. + * * \returns the index of the context in the snapshot blob. */ - size_t AddContext(Local context); + size_t AddContext(Local context, + SerializeInternalFieldsCallback callback = + SerializeInternalFieldsCallback()); /** * Add a template to be included in the snapshot blob. @@ -7614,12 +7764,10 @@ class V8_EXPORT SnapshotCreator { * This must not be called from within a handle scope. * \param function_code_handling whether to include compiled function code * in the snapshot. - * \param callback to serialize embedder-set internal fields. * \returns { nullptr, 0 } on failure, and a startup snapshot on success. The * caller acquires ownership of the data array in the return value. */ - StartupData CreateBlob(FunctionCodeHandling function_code_handling, - SerializeInternalFieldsCallback callback = nullptr); + StartupData CreateBlob(FunctionCodeHandling function_code_handling); // Disallow copying and assigning. SnapshotCreator(const SnapshotCreator&) = delete; @@ -7825,21 +7973,21 @@ class V8_EXPORT TryCatch { * UseAfterReturn is enabled, then the address returned will be the address * of the C++ try catch handler itself. */ - static void* JSStackComparableAddress(v8::TryCatch* handler) { + static void* JSStackComparableAddress(TryCatch* handler) { if (handler == NULL) return NULL; return handler->js_stack_comparable_address_; } TryCatch(const TryCatch&) = delete; void operator=(const TryCatch&) = delete; - void* operator new(size_t size) = delete; - void operator delete(void*, size_t) = delete; + void* operator new(size_t size); + void operator delete(void*, size_t); private: void ResetInternal(); - v8::internal::Isolate* isolate_; - v8::TryCatch* next_; + internal::Isolate* isolate_; + TryCatch* next_; void* exception_; void* message_obj_; void* js_stack_comparable_address_; @@ -7849,7 +7997,7 @@ class V8_EXPORT TryCatch { bool rethrow_ : 1; bool has_terminated_ : 1; - friend class v8::internal::Isolate; + friend class internal::Isolate; }; @@ -7922,10 +8070,30 @@ class V8_EXPORT Context { MaybeLocal global_template = MaybeLocal(), MaybeLocal global_object = MaybeLocal()); + /** + * Create a new context from a (non-default) context snapshot. There + * is no way to provide a global object template since we do not create + * a new global object from template, but we can reuse a global object. + * + * \param isolate See v8::Context::New. + * + * \param context_snapshot_index The index of the context snapshot to + * deserialize from. Use v8::Context::New for the default snapshot. + * + * \param internal_fields_deserializer Optional callback to deserialize + * internal fields. It should match the SerializeInternalFieldCallback used + * to serialize. + * + * \param extensions See v8::Context::New. + * + * \param global_object See v8::Context::New. + */ + static MaybeLocal FromSnapshot( Isolate* isolate, size_t context_snapshot_index, + DeserializeInternalFieldsCallback internal_fields_deserializer = + DeserializeInternalFieldsCallback(), ExtensionConfiguration* extensions = nullptr, - MaybeLocal global_template = MaybeLocal(), MaybeLocal global_object = MaybeLocal()); /** @@ -7976,7 +8144,7 @@ class V8_EXPORT Context { void Exit(); /** Returns an isolate associated with a current context. */ - v8::Isolate* GetIsolate(); + Isolate* GetIsolate(); /** * The field at kDebugIdIndex is reserved for V8 debugger implementation. @@ -8336,8 +8504,8 @@ class Internals { static const int kNodeIsIndependentShift = 3; static const int kNodeIsActiveShift = 4; - static const int kJSObjectType = 0xbc; static const int kJSApiObjectType = 0xbb; + static const int kJSObjectType = 0xbc; static const int kFirstNonstringType = 0x80; static const int kOddballType = 0x83; static const int kForeignType = 0x87; @@ -8856,17 +9024,16 @@ ScriptOrigin::ScriptOrigin(Local resource_name, Local resource_column_offset, Local resource_is_shared_cross_origin, Local script_id, - Local resource_is_embedder_debug_script, Local source_map_url, - Local resource_is_opaque) + Local resource_is_opaque, + Local is_wasm) : resource_name_(resource_name), resource_line_offset_(resource_line_offset), resource_column_offset_(resource_column_offset), - options_(!resource_is_embedder_debug_script.IsEmpty() && - resource_is_embedder_debug_script->IsTrue(), - !resource_is_shared_cross_origin.IsEmpty() && + options_(!resource_is_shared_cross_origin.IsEmpty() && resource_is_shared_cross_origin->IsTrue(), - !resource_is_opaque.IsEmpty() && resource_is_opaque->IsTrue()), + !resource_is_opaque.IsEmpty() && resource_is_opaque->IsTrue(), + !is_wasm.IsEmpty() && is_wasm->IsTrue()), script_id_(script_id), source_map_url_(source_map_url) {} @@ -8920,9 +9087,8 @@ Local Boolean::New(Isolate* isolate, bool value) { return value ? True(isolate) : False(isolate); } - -void Template::Set(Isolate* isolate, const char* name, v8::Local value) { - Set(v8::String::NewFromUtf8(isolate, name, NewStringType::kNormal) +void Template::Set(Isolate* isolate, const char* name, Local value) { + Set(String::NewFromUtf8(isolate, name, NewStringType::kNormal) .ToLocalChecked(), value); } @@ -9056,6 +9222,23 @@ bool Value::QuickIsNull() const { return (I::GetOddballKind(obj) == I::kNullOddballKind); } +bool Value::IsNullOrUndefined() const { +#ifdef V8_ENABLE_CHECKS + return FullIsNull() || FullIsUndefined(); +#else + return QuickIsNullOrUndefined(); +#endif +} + +bool Value::QuickIsNullOrUndefined() const { + typedef internal::Object O; + typedef internal::Internals I; + O* obj = *reinterpret_cast(this); + if (!I::HasHeapObjectTag(obj)) return false; + if (I::GetInstanceType(obj) != I::kOddballType) return false; + int kind = I::GetOddballKind(obj); + return kind == I::kNullOddballKind || kind == I::kUndefinedOddballKind; +} bool Value::IsString() const { #ifdef V8_ENABLE_CHECKS @@ -9531,7 +9714,7 @@ template void Isolate::SetObjectGroupId(const Persistent& object, UniqueId id) { TYPE_CHECK(Value, T); - SetObjectGroupId(reinterpret_cast(object.val_), id); + SetObjectGroupId(reinterpret_cast(object.val_), id); } @@ -9539,8 +9722,7 @@ template void Isolate::SetReferenceFromGroup(UniqueId id, const Persistent& object) { TYPE_CHECK(Value, T); - SetReferenceFromGroup(id, - reinterpret_cast(object.val_)); + SetReferenceFromGroup(id, reinterpret_cast(object.val_)); } @@ -9549,8 +9731,8 @@ void Isolate::SetReference(const Persistent& parent, const Persistent& child) { TYPE_CHECK(Object, T); TYPE_CHECK(Value, S); - SetReference(reinterpret_cast(parent.val_), - reinterpret_cast(child.val_)); + SetReference(reinterpret_cast(parent.val_), + reinterpret_cast(child.val_)); } @@ -9627,14 +9809,14 @@ void V8::SetFatalErrorHandler(FatalErrorCallback callback) { void V8::RemoveGCPrologueCallback(GCCallback callback) { Isolate* isolate = Isolate::GetCurrent(); isolate->RemoveGCPrologueCallback( - reinterpret_cast(callback)); + reinterpret_cast(callback)); } void V8::RemoveGCEpilogueCallback(GCCallback callback) { Isolate* isolate = Isolate::GetCurrent(); isolate->RemoveGCEpilogueCallback( - reinterpret_cast(callback)); + reinterpret_cast(callback)); } void V8::TerminateExecution(Isolate* isolate) { isolate->TerminateExecution(); } diff --git a/deps/v8/infra/config/cq.cfg b/deps/v8/infra/config/cq.cfg index e93895f3826335..6e6c725e6d53a4 100644 --- a/deps/v8/infra/config/cq.cfg +++ b/deps/v8/infra/config/cq.cfg @@ -4,7 +4,6 @@ version: 1 cq_name: "v8" cq_status_url: "https://chromium-cq-status.appspot.com" -hide_ref_in_committed_msg: true commit_burst_delay: 60 max_commit_burst: 1 target_ref: "refs/pending/heads/master" diff --git a/deps/v8/infra/mb/mb_config.pyl b/deps/v8/infra/mb/mb_config.pyl index d6a2a2dc4abe50..2ac80d00f579a6 100644 --- a/deps/v8/infra/mb/mb_config.pyl +++ b/deps/v8/infra/mb/mb_config.pyl @@ -66,6 +66,7 @@ 'V8 Linux64 TSAN': 'gn_release_x64_tsan', 'V8 Linux - arm64 - sim - MSAN': 'gn_release_simulate_arm64_msan', # Clusterfuzz. + 'V8 Linux64 - release builder': 'gn_release_x64_correctness_fuzzer', 'V8 Linux64 ASAN no inline - release builder': 'gn_release_x64_asan_symbolized_edge_verify_heap', 'V8 Linux64 ASAN - debug builder': 'gn_debug_x64_asan_edge', @@ -116,8 +117,7 @@ 'V8 Linux - s390 - sim': 'gyp_release_simulate_s390', 'V8 Linux - s390x - sim': 'gyp_release_simulate_s390x', # X87. - 'V8 Linux - x87 - nosnap - debug builder': - 'gyp_debug_simulate_x87_no_snap', + 'V8 Linux - x87 - nosnap - debug builder': 'gyp_debug_simulate_x87', }, 'client.v8.branches': { 'V8 Linux - beta branch': 'gn_release_x86', @@ -286,6 +286,8 @@ 'v8_verify_heap'], 'gn_release_x64_clang': [ 'gn', 'release_bot', 'x64', 'clang', 'swarming'], + 'gn_release_x64_correctness_fuzzer' : [ + 'gn', 'release_bot', 'x64', 'v8_correctness_fuzzer'], 'gn_release_x64_internal': [ 'gn', 'release_bot', 'x64', 'swarming', 'v8_snapshot_internal'], 'gn_release_x64_minimal_symbols': [ @@ -359,9 +361,8 @@ 'gn', 'release_trybot', 'x86', 'swarming'], # Gyp debug configs for simulators. - 'gyp_debug_simulate_x87_no_snap': [ - 'gyp', 'debug_bot_static', 'simulate_x87', 'swarming', - 'v8_snapshot_none'], + 'gyp_debug_simulate_x87': [ + 'gyp', 'debug_bot_static', 'simulate_x87', 'swarming'], # Gyp debug configs for x86. 'gyp_debug_x86': [ @@ -626,6 +627,10 @@ 'gyp_defines': 'v8_enable_i18n_support=0 icu_use_data_file_flag=0', }, + 'v8_correctness_fuzzer': { + 'gn_args': 'v8_correctness_fuzzer=true', + }, + 'v8_disable_inspector': { 'gn_args': 'v8_enable_inspector=false', 'gyp_defines': 'v8_enable_inspector=0 ', diff --git a/deps/v8/src/DEPS b/deps/v8/src/DEPS index 9114669a6d5e77..e9026b130d6bf3 100644 --- a/deps/v8/src/DEPS +++ b/deps/v8/src/DEPS @@ -10,7 +10,9 @@ include_rules = [ "+src/heap/heap-inl.h", "-src/inspector", "-src/interpreter", + "+src/interpreter/bytecode-array-accessor.h", "+src/interpreter/bytecode-array-iterator.h", + "+src/interpreter/bytecode-array-random-iterator.h", "+src/interpreter/bytecode-decoder.h", "+src/interpreter/bytecode-flags.h", "+src/interpreter/bytecode-register.h", diff --git a/deps/v8/src/accessors.cc b/deps/v8/src/accessors.cc index 9ec24b84c7c586..1f2ce97240f5d1 100644 --- a/deps/v8/src/accessors.cc +++ b/deps/v8/src/accessors.cc @@ -167,16 +167,38 @@ void Accessors::ArrayLengthSetter( i::Isolate* isolate = reinterpret_cast(info.GetIsolate()); HandleScope scope(isolate); + DCHECK(Utils::OpenHandle(*name)->SameValue(isolate->heap()->length_string())); + Handle object = Utils::OpenHandle(*info.Holder()); Handle array = Handle::cast(object); Handle length_obj = Utils::OpenHandle(*val); + bool was_readonly = JSArray::HasReadOnlyLength(array); + uint32_t length = 0; if (!JSArray::AnythingToArrayLength(isolate, length_obj, &length)) { isolate->OptionalRescheduleException(false); return; } + if (!was_readonly && V8_UNLIKELY(JSArray::HasReadOnlyLength(array)) && + length != array->length()->Number()) { + // AnythingToArrayLength() may have called setter re-entrantly and modified + // its property descriptor. Don't perform this check if "length" was + // previously readonly, as this may have been called during + // DefineOwnPropertyIgnoreAttributes(). + if (info.ShouldThrowOnError()) { + Factory* factory = isolate->factory(); + isolate->Throw(*factory->NewTypeError( + MessageTemplate::kStrictReadOnlyProperty, Utils::OpenHandle(*name), + i::Object::TypeOf(isolate, object), object)); + isolate->OptionalRescheduleException(false); + } else { + info.GetReturnValue().Set(false); + } + return; + } + JSArray::SetLength(array, length); uint32_t actual_new_len = 0; @@ -517,34 +539,6 @@ Handle Accessors::ScriptSourceMappingUrlInfo( } -// -// Accessors::ScriptIsEmbedderDebugScript -// - - -void Accessors::ScriptIsEmbedderDebugScriptGetter( - v8::Local name, const v8::PropertyCallbackInfo& info) { - i::Isolate* isolate = reinterpret_cast(info.GetIsolate()); - DisallowHeapAllocation no_allocation; - HandleScope scope(isolate); - Object* object = *Utils::OpenHandle(*info.Holder()); - bool is_embedder_debug_script = Script::cast(JSValue::cast(object)->value()) - ->origin_options() - .IsEmbedderDebugScript(); - Object* res = *isolate->factory()->ToBoolean(is_embedder_debug_script); - info.GetReturnValue().Set(Utils::ToLocal(Handle(res, isolate))); -} - - -Handle Accessors::ScriptIsEmbedderDebugScriptInfo( - Isolate* isolate, PropertyAttributes attributes) { - Handle name(isolate->factory()->InternalizeOneByteString( - STATIC_CHAR_VECTOR("is_debugger_script"))); - return MakeAccessor(isolate, name, &ScriptIsEmbedderDebugScriptGetter, - nullptr, attributes); -} - - // // Accessors::ScriptGetContextData // @@ -829,8 +823,8 @@ static Handle ArgumentsForInlinedFunction( Handle array = factory->NewFixedArray(argument_count); bool should_deoptimize = false; for (int i = 0; i < argument_count; ++i) { - // If we materialize any object, we should deopt because we might alias - // an object that was eliminated by escape analysis. + // If we materialize any object, we should deoptimize the frame because we + // might alias an object that was eliminated by escape analysis. should_deoptimize = should_deoptimize || iter->IsMaterializedObject(); Handle value = iter->GetValue(); array->set(i, *value); @@ -839,7 +833,7 @@ static Handle ArgumentsForInlinedFunction( arguments->set_elements(*array); if (should_deoptimize) { - translated_values.StoreMaterializedValuesAndDeopt(); + translated_values.StoreMaterializedValuesAndDeopt(frame); } // Return the freshly allocated arguments object. @@ -850,10 +844,10 @@ static Handle ArgumentsForInlinedFunction( static int FindFunctionInFrame(JavaScriptFrame* frame, Handle function) { DisallowHeapAllocation no_allocation; - List functions(2); - frame->GetFunctions(&functions); - for (int i = functions.length() - 1; i >= 0; i--) { - if (functions[i] == *function) return i; + List frames(2); + frame->Summarize(&frames); + for (int i = frames.length() - 1; i >= 0; i--) { + if (*frames[i].AsJavaScript().function() == *function) return i; } return -1; } @@ -957,19 +951,16 @@ static inline bool AllowAccessToFunction(Context* current_context, class FrameFunctionIterator { public: FrameFunctionIterator(Isolate* isolate, const DisallowHeapAllocation& promise) - : isolate_(isolate), - frame_iterator_(isolate), - functions_(2), - index_(0) { - GetFunctions(); + : isolate_(isolate), frame_iterator_(isolate), frames_(2), index_(0) { + GetFrames(); } JSFunction* next() { while (true) { - if (functions_.length() == 0) return NULL; - JSFunction* next_function = functions_[index_]; + if (frames_.length() == 0) return NULL; + JSFunction* next_function = *frames_[index_].AsJavaScript().function(); index_--; if (index_ < 0) { - GetFunctions(); + GetFrames(); } // Skip functions from other origins. if (!AllowAccessToFunction(isolate_->context(), next_function)) continue; @@ -990,18 +981,18 @@ class FrameFunctionIterator { } private: - void GetFunctions() { - functions_.Rewind(0); + void GetFrames() { + frames_.Rewind(0); if (frame_iterator_.done()) return; JavaScriptFrame* frame = frame_iterator_.frame(); - frame->GetFunctions(&functions_); - DCHECK(functions_.length() > 0); + frame->Summarize(&frames_); + DCHECK(frames_.length() > 0); frame_iterator_.Advance(); - index_ = functions_.length() - 1; + index_ = frames_.length() - 1; } Isolate* isolate_; JavaScriptFrameIterator frame_iterator_; - List functions_; + List frames_; int index_; }; @@ -1025,10 +1016,11 @@ MaybeHandle FindCaller(Isolate* isolate, if (caller == NULL) return MaybeHandle(); } while (caller->shared()->is_toplevel()); - // If caller is a built-in function and caller's caller is also built-in, + // If caller is not user code and caller's caller is also not user code, // use that instead. JSFunction* potential_caller = caller; - while (potential_caller != NULL && potential_caller->shared()->IsBuiltin()) { + while (potential_caller != NULL && + !potential_caller->shared()->IsUserJavaScript()) { caller = potential_caller; potential_caller = it.next(); } @@ -1210,7 +1202,8 @@ void Accessors::ErrorStackGetter( // If stack is still an accessor (this could have changed in the meantime // since FormatStackTrace can execute arbitrary JS), replace it with a data // property. - Handle receiver = Utils::OpenHandle(*info.This()); + Handle receiver = + Utils::OpenHandle(*v8::Local(info.This())); Handle name = Utils::OpenHandle(*key); if (IsAccessor(receiver, name, holder)) { result = ReplaceAccessorWithDataProperty(isolate, receiver, holder, name, @@ -1236,8 +1229,8 @@ void Accessors::ErrorStackSetter( const v8::PropertyCallbackInfo& info) { i::Isolate* isolate = reinterpret_cast(info.GetIsolate()); HandleScope scope(isolate); - Handle obj = - Handle::cast(Utils::OpenHandle(*info.This())); + Handle obj = Handle::cast( + Utils::OpenHandle(*v8::Local(info.This()))); // Clear internal properties to avoid memory leaks. Handle stack_trace_symbol = isolate->factory()->stack_trace_symbol(); diff --git a/deps/v8/src/accessors.h b/deps/v8/src/accessors.h index f53d30986cf73a..218fb3572ff75e 100644 --- a/deps/v8/src/accessors.h +++ b/deps/v8/src/accessors.h @@ -43,7 +43,6 @@ class AccessorInfo; V(ScriptType) \ V(ScriptSourceUrl) \ V(ScriptSourceMappingUrl) \ - V(ScriptIsEmbedderDebugScript) \ V(StringLength) #define ACCESSOR_SETTER_LIST(V) \ diff --git a/deps/v8/src/allocation.cc b/deps/v8/src/allocation.cc index 195a5443c8ad51..fde01f6447b41f 100644 --- a/deps/v8/src/allocation.cc +++ b/deps/v8/src/allocation.cc @@ -32,23 +32,6 @@ void Malloced::Delete(void* p) { } -#ifdef DEBUG - -static void* invalid = static_cast(NULL); - -void* Embedded::operator new(size_t size) { - UNREACHABLE(); - return invalid; -} - - -void Embedded::operator delete(void* p) { - UNREACHABLE(); -} - -#endif - - char* StrDup(const char* str) { int length = StrLength(str); char* result = NewArray(length + 1); diff --git a/deps/v8/src/allocation.h b/deps/v8/src/allocation.h index e87a3f1b1c18ce..36019d9ab304df 100644 --- a/deps/v8/src/allocation.h +++ b/deps/v8/src/allocation.h @@ -26,24 +26,9 @@ class V8_EXPORT_PRIVATE Malloced { static void Delete(void* p); }; - -// A macro is used for defining the base class used for embedded instances. -// The reason is some compilers allocate a minimum of one word for the -// superclass. The macro prevents the use of new & delete in debug mode. -// In release mode we are not willing to pay this overhead. - -#ifdef DEBUG -// Superclass for classes with instances allocated inside stack -// activations or inside other objects. -class Embedded { - public: - void* operator new(size_t size); - void operator delete(void* p); -}; -#define BASE_EMBEDDED : public NON_EXPORTED_BASE(Embedded) -#else +// DEPRECATED +// TODO(leszeks): Delete this during a quiet period #define BASE_EMBEDDED -#endif // Superclass for classes only using static method functions. diff --git a/deps/v8/src/api-arguments-inl.h b/deps/v8/src/api-arguments-inl.h index bf72fc4e6f44f5..91ac2533960346 100644 --- a/deps/v8/src/api-arguments-inl.h +++ b/deps/v8/src/api-arguments-inl.h @@ -10,6 +10,14 @@ namespace v8 { namespace internal { +#define SIDE_EFFECT_CHECK(ISOLATE, F, RETURN_TYPE) \ + do { \ + if (ISOLATE->needs_side_effect_check() && \ + !PerformSideEffectCheck(ISOLATE, FUNCTION_ADDR(F))) { \ + return Handle(); \ + } \ + } while (false) + #define FOR_EACH_CALLBACK_TABLE_MAPPING_1_NAME(F) \ F(AccessorNameGetterCallback, "get", v8::Value, Object) \ F(GenericNamedPropertyQueryCallback, "has", v8::Integer, Object) \ @@ -19,6 +27,7 @@ namespace internal { Handle PropertyCallbackArguments::Call(Function f, \ Handle name) { \ Isolate* isolate = this->isolate(); \ + SIDE_EFFECT_CHECK(isolate, f, InternalReturn); \ RuntimeCallTimerScope timer(isolate, &RuntimeCallStats::Function); \ VMState state(isolate); \ ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); \ @@ -43,6 +52,7 @@ FOR_EACH_CALLBACK_TABLE_MAPPING_1_NAME(WRITE_CALL_1_NAME) Handle PropertyCallbackArguments::Call(Function f, \ uint32_t index) { \ Isolate* isolate = this->isolate(); \ + SIDE_EFFECT_CHECK(isolate, f, InternalReturn); \ RuntimeCallTimerScope timer(isolate, &RuntimeCallStats::Function); \ VMState state(isolate); \ ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); \ @@ -62,6 +72,7 @@ Handle PropertyCallbackArguments::Call( GenericNamedPropertySetterCallback f, Handle name, Handle value) { Isolate* isolate = this->isolate(); + SIDE_EFFECT_CHECK(isolate, f, Object); RuntimeCallTimerScope timer( isolate, &RuntimeCallStats::GenericNamedPropertySetterCallback); VMState state(isolate); @@ -77,6 +88,7 @@ Handle PropertyCallbackArguments::Call( GenericNamedPropertyDefinerCallback f, Handle name, const v8::PropertyDescriptor& desc) { Isolate* isolate = this->isolate(); + SIDE_EFFECT_CHECK(isolate, f, Object); RuntimeCallTimerScope timer( isolate, &RuntimeCallStats::GenericNamedPropertyDefinerCallback); VMState state(isolate); @@ -92,6 +104,7 @@ Handle PropertyCallbackArguments::Call(IndexedPropertySetterCallback f, uint32_t index, Handle value) { Isolate* isolate = this->isolate(); + SIDE_EFFECT_CHECK(isolate, f, Object); RuntimeCallTimerScope timer(isolate, &RuntimeCallStats::IndexedPropertySetterCallback); VMState state(isolate); @@ -107,6 +120,7 @@ Handle PropertyCallbackArguments::Call( IndexedPropertyDefinerCallback f, uint32_t index, const v8::PropertyDescriptor& desc) { Isolate* isolate = this->isolate(); + SIDE_EFFECT_CHECK(isolate, f, Object); RuntimeCallTimerScope timer( isolate, &RuntimeCallStats::IndexedPropertyDefinerCallback); VMState state(isolate); @@ -121,6 +135,10 @@ Handle PropertyCallbackArguments::Call( void PropertyCallbackArguments::Call(AccessorNameSetterCallback f, Handle name, Handle value) { Isolate* isolate = this->isolate(); + if (isolate->needs_side_effect_check() && + !PerformSideEffectCheck(isolate, FUNCTION_ADDR(f))) { + return; + } RuntimeCallTimerScope timer(isolate, &RuntimeCallStats::AccessorNameSetterCallback); VMState state(isolate); @@ -131,5 +149,7 @@ void PropertyCallbackArguments::Call(AccessorNameSetterCallback f, f(v8::Utils::ToLocal(name), v8::Utils::ToLocal(value), info); } +#undef SIDE_EFFECT_CHECK + } // namespace internal } // namespace v8 diff --git a/deps/v8/src/api-arguments.cc b/deps/v8/src/api-arguments.cc index f8d6c8fcc3ddda..c7c54e5de1c37f 100644 --- a/deps/v8/src/api-arguments.cc +++ b/deps/v8/src/api-arguments.cc @@ -4,6 +4,8 @@ #include "src/api-arguments.h" +#include "src/debug/debug.h" +#include "src/objects-inl.h" #include "src/tracing/trace-event.h" #include "src/vm-state-inl.h" @@ -12,6 +14,10 @@ namespace internal { Handle FunctionCallbackArguments::Call(FunctionCallback f) { Isolate* isolate = this->isolate(); + if (isolate->needs_side_effect_check() && + !isolate->debug()->PerformSideEffectCheckForCallback(FUNCTION_ADDR(f))) { + return Handle(); + } RuntimeCallTimerScope timer(isolate, &RuntimeCallStats::FunctionCallback); VMState state(isolate); ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); @@ -23,6 +29,10 @@ Handle FunctionCallbackArguments::Call(FunctionCallback f) { Handle PropertyCallbackArguments::Call( IndexedPropertyEnumeratorCallback f) { Isolate* isolate = this->isolate(); + if (isolate->needs_side_effect_check() && + !isolate->debug()->PerformSideEffectCheckForCallback(FUNCTION_ADDR(f))) { + return Handle(); + } RuntimeCallTimerScope timer(isolate, &RuntimeCallStats::PropertyCallback); VMState state(isolate); ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); @@ -31,5 +41,10 @@ Handle PropertyCallbackArguments::Call( return GetReturnValue(isolate); } +bool PropertyCallbackArguments::PerformSideEffectCheck(Isolate* isolate, + Address function) { + return isolate->debug()->PerformSideEffectCheckForCallback(function); +} + } // namespace internal } // namespace v8 diff --git a/deps/v8/src/api-arguments.h b/deps/v8/src/api-arguments.h index d6d1b951aff278..6c9ad7ad6b93f2 100644 --- a/deps/v8/src/api-arguments.h +++ b/deps/v8/src/api-arguments.h @@ -136,6 +136,8 @@ class PropertyCallbackArguments inline JSObject* holder() { return JSObject::cast(this->begin()[T::kHolderIndex]); } + + bool PerformSideEffectCheck(Isolate* isolate, Address function); }; class FunctionCallbackArguments diff --git a/deps/v8/src/api-experimental.cc b/deps/v8/src/api-experimental.cc index 934b27aa5d8f96..a9b5bd043b8997 100644 --- a/deps/v8/src/api-experimental.cc +++ b/deps/v8/src/api-experimental.cc @@ -8,10 +8,11 @@ #include "src/api-experimental.h" -#include "include/v8.h" #include "include/v8-experimental.h" +#include "include/v8.h" #include "src/api.h" #include "src/fast-accessor-assembler.h" +#include "src/objects-inl.h" namespace { diff --git a/deps/v8/src/api-natives.cc b/deps/v8/src/api-natives.cc index 3fe59e293d3ff2..87138bd5cf7d2c 100644 --- a/deps/v8/src/api-natives.cc +++ b/deps/v8/src/api-natives.cc @@ -395,6 +395,28 @@ MaybeHandle InstantiateObject(Isolate* isolate, return result; } +namespace { +MaybeHandle GetInstancePrototype(Isolate* isolate, + Object* function_template) { + // Enter a new scope. Recursion could otherwise create a lot of handles. + HandleScope scope(isolate); + Handle parent_instance; + ASSIGN_RETURN_ON_EXCEPTION( + isolate, parent_instance, + InstantiateFunction( + isolate, + handle(FunctionTemplateInfo::cast(function_template), isolate)), + JSFunction); + Handle instance_prototype; + // TODO(cbruni): decide what to do here. + ASSIGN_RETURN_ON_EXCEPTION( + isolate, instance_prototype, + JSObject::GetProperty(parent_instance, + isolate->factory()->prototype_string()), + JSFunction); + return scope.CloseAndEscape(instance_prototype); +} +} // namespace MaybeHandle InstantiateFunction(Isolate* isolate, Handle data, @@ -406,11 +428,18 @@ MaybeHandle InstantiateFunction(Isolate* isolate, return Handle::cast(result); } } - Handle prototype; + Handle prototype; if (!data->remove_prototype()) { Object* prototype_templ = data->prototype_template(); if (prototype_templ->IsUndefined(isolate)) { - prototype = isolate->factory()->NewJSObject(isolate->object_function()); + Object* protoype_provider_templ = data->prototype_provider_template(); + if (protoype_provider_templ->IsUndefined(isolate)) { + prototype = isolate->factory()->NewJSObject(isolate->object_function()); + } else { + ASSIGN_RETURN_ON_EXCEPTION( + isolate, prototype, + GetInstancePrototype(isolate, protoype_provider_templ), JSFunction); + } } else { ASSIGN_RETURN_ON_EXCEPTION( isolate, prototype, @@ -422,22 +451,12 @@ MaybeHandle InstantiateFunction(Isolate* isolate, } Object* parent = data->parent_template(); if (!parent->IsUndefined(isolate)) { - // Enter a new scope. Recursion could otherwise create a lot of handles. - HandleScope scope(isolate); - Handle parent_instance; - ASSIGN_RETURN_ON_EXCEPTION( - isolate, parent_instance, - InstantiateFunction( - isolate, handle(FunctionTemplateInfo::cast(parent), isolate)), - JSFunction); - // TODO(dcarney): decide what to do here. Handle parent_prototype; - ASSIGN_RETURN_ON_EXCEPTION( - isolate, parent_prototype, - JSObject::GetProperty(parent_instance, - isolate->factory()->prototype_string()), - JSFunction); - JSObject::ForceSetPrototype(prototype, parent_prototype); + ASSIGN_RETURN_ON_EXCEPTION(isolate, parent_prototype, + GetInstancePrototype(isolate, parent), + JSFunction); + JSObject::ForceSetPrototype(Handle::cast(prototype), + parent_prototype); } } Handle function = ApiNatives::CreateApiFunction( @@ -531,7 +550,7 @@ MaybeHandle ApiNatives::InstantiateRemoteObject( void ApiNatives::AddDataProperty(Isolate* isolate, Handle info, Handle name, Handle value, PropertyAttributes attributes) { - PropertyDetails details(attributes, DATA, 0, PropertyCellType::kNoCell); + PropertyDetails details(kData, attributes, 0, PropertyCellType::kNoCell); auto details_handle = handle(details.AsSmi(), isolate); Handle data[] = {name, details_handle, value}; AddPropertyToPropertyList(isolate, info, arraysize(data), data); @@ -543,7 +562,7 @@ void ApiNatives::AddDataProperty(Isolate* isolate, Handle info, PropertyAttributes attributes) { auto value = handle(Smi::FromInt(intrinsic), isolate); auto intrinsic_marker = isolate->factory()->true_value(); - PropertyDetails details(attributes, DATA, 0, PropertyCellType::kNoCell); + PropertyDetails details(kData, attributes, 0, PropertyCellType::kNoCell); auto details_handle = handle(details.AsSmi(), isolate); Handle data[] = {name, intrinsic_marker, details_handle, value}; AddPropertyToPropertyList(isolate, info, arraysize(data), data); @@ -556,7 +575,7 @@ void ApiNatives::AddAccessorProperty(Isolate* isolate, Handle getter, Handle setter, PropertyAttributes attributes) { - PropertyDetails details(attributes, ACCESSOR, 0, PropertyCellType::kNoCell); + PropertyDetails details(kAccessor, attributes, 0, PropertyCellType::kNoCell); auto details_handle = handle(details.AsSmi(), isolate); Handle data[] = {name, details_handle, getter, setter}; AddPropertyToPropertyList(isolate, info, arraysize(data), data); @@ -606,7 +625,7 @@ Handle ApiNatives::CreateApiFunction( if (prototype->IsTheHole(isolate)) { prototype = isolate->factory()->NewFunctionPrototype(result); - } else { + } else if (obj->prototype_provider_template()->IsUndefined(isolate)) { JSObject::AddProperty(Handle::cast(prototype), isolate->factory()->constructor_string(), result, DONT_ENUM); @@ -656,6 +675,12 @@ Handle ApiNatives::CreateApiFunction( // Mark as undetectable if needed. if (obj->undetectable()) { + // We only allow callable undetectable receivers here, since this whole + // undetectable business is only to support document.all, which is both + // undetectable and callable. If we ever see the need to have an object + // that is undetectable but not callable, we need to update the types.h + // to allow encoding this. + CHECK(!obj->instance_call_handler()->IsUndefined(isolate)); map->set_is_undetectable(); } diff --git a/deps/v8/src/api.cc b/deps/v8/src/api.cc index da7f2ef4141460..446b008a556eed 100644 --- a/deps/v8/src/api.cc +++ b/deps/v8/src/api.cc @@ -29,6 +29,7 @@ #include "src/bootstrapper.h" #include "src/char-predicates-inl.h" #include "src/code-stubs.h" +#include "src/compiler-dispatcher/compiler-dispatcher.h" #include "src/compiler.h" #include "src/context-measure.h" #include "src/contexts.h" @@ -97,6 +98,15 @@ namespace v8 { ENTER_V8(isolate); \ bool has_pending_exception = false +#define PREPARE_FOR_DEBUG_INTERFACE_EXECUTION_WITH_ISOLATE(isolate, T) \ + if (IsExecutionTerminatingCheck(isolate)) { \ + return MaybeLocal(); \ + } \ + InternalEscapableScope handle_scope(isolate); \ + CallDepthScope call_depth_scope(isolate, v8::Local()); \ + ENTER_V8(isolate); \ + bool has_pending_exception = false + #define PREPARE_FOR_EXECUTION_WITH_CONTEXT(context, class_name, function_name, \ bailout_value, HandleScopeClass, \ do_callback) \ @@ -141,6 +151,23 @@ namespace v8 { PREPARE_FOR_EXECUTION_WITH_CONTEXT(context, class_name, function_name, \ false, i::HandleScope, false) +#ifdef DEBUG +#define ENTER_V8_NO_SCRIPT_NO_EXCEPTION(isolate) \ + i::VMState __state__((isolate)); \ + i::DisallowJavascriptExecutionDebugOnly __no_script__((isolate)); \ + i::DisallowExceptions __no_exceptions__((isolate)) + +#define ENTER_V8_FOR_NEW_CONTEXT(isolate) \ + i::VMState __state__((isolate)); \ + i::DisallowExceptions __no_exceptions__((isolate)) +#else +#define ENTER_V8_NO_SCRIPT_NO_EXCEPTION(isolate) \ + i::VMState __state__((isolate)); + +#define ENTER_V8_FOR_NEW_CONTEXT(isolate) \ + i::VMState __state__((isolate)); +#endif // DEBUG + #define EXCEPTION_BAILOUT_CHECK_SCOPED(isolate, value) \ do { \ if (has_pending_exception) { \ @@ -243,7 +270,7 @@ class CallDepthScope { static ScriptOrigin GetScriptOriginForScript(i::Isolate* isolate, i::Handle script) { - i::Handle scriptName(i::Script::GetNameOrSourceURL(script)); + i::Handle scriptName(script->GetNameOrSourceURL(), isolate); i::Handle source_map_url(script->source_mapping_url(), isolate); v8::Isolate* v8_isolate = reinterpret_cast(script->GetIsolate()); @@ -254,9 +281,9 @@ static ScriptOrigin GetScriptOriginForScript(i::Isolate* isolate, v8::Integer::New(v8_isolate, script->column_offset()), v8::Boolean::New(v8_isolate, options.IsSharedCrossOrigin()), v8::Integer::New(v8_isolate, script->id()), - v8::Boolean::New(v8_isolate, options.IsEmbedderDebugScript()), Utils::ToLocal(source_map_url), - v8::Boolean::New(v8_isolate, options.IsOpaque())); + v8::Boolean::New(v8_isolate, options.IsOpaque()), + v8::Boolean::New(v8_isolate, script->type() == i::Script::TYPE_WASM)); return origin; } @@ -452,6 +479,7 @@ bool RunExtraCode(Isolate* isolate, Local context, struct SnapshotCreatorData { explicit SnapshotCreatorData(Isolate* isolate) : isolate_(isolate), + default_context_(), contexts_(isolate), templates_(isolate), created_(false) {} @@ -462,8 +490,10 @@ struct SnapshotCreatorData { ArrayBufferAllocator allocator_; Isolate* isolate_; + Persistent default_context_; PersistentValueVector contexts_; PersistentValueVector