diff --git a/deps/v8/.gitignore b/deps/v8/.gitignore index f07fc1cb622105..4ea2ead23d990d 100644 --- a/deps/v8/.gitignore +++ b/deps/v8/.gitignore @@ -36,8 +36,6 @@ /_* /build /buildtools -/gypfiles/.gold_plugin -/gypfiles/win_toolchain.json /hydrogen.cfg /obj /out @@ -76,6 +74,8 @@ /tools/jsfunfuzz/jsfunfuzz /tools/jsfunfuzz/jsfunfuzz.tar.gz /tools/luci-go +/tools/mips_toolchain +/tools/mips_toolchain.tar.gz /tools/oom_dump/oom_dump /tools/oom_dump/oom_dump.o /tools/swarming_client diff --git a/deps/v8/AUTHORS b/deps/v8/AUTHORS index dfd3eef878c097..b2b01df888281e 100644 --- a/deps/v8/AUTHORS +++ b/deps/v8/AUTHORS @@ -136,6 +136,7 @@ Sanjoy Das Seo Sanghyeon Stefan Penner Sylvestre Ledru +Taketoshi Aono Tiancheng "Timothy" Gu Tobias Burnus Victor Costan diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn index 49707659723ca2..72a19b2ca450fa 100644 --- a/deps/v8/BUILD.gn +++ b/deps/v8/BUILD.gn @@ -64,6 +64,10 @@ declare_args() { # Enable fast mksnapshot runs. v8_enable_fast_mksnapshot = false + # Enable embedded builtins. + # TODO(jgruber,v8:6666): Support ia32. + v8_enable_embedded_builtins = false + # Enable code-generation-time checking of types in the CodeStubAssembler. v8_enable_verify_csa = false @@ -319,6 +323,9 @@ config("features") { if (v8_check_microtasks_scopes_consistency) { defines += [ "V8_CHECK_MICROTASKS_SCOPES_CONSISTENCY" ] } + if (v8_enable_embedded_builtins) { + defines += [ "V8_EMBEDDED_BUILTINS" ] + } } config("toolchain") { @@ -387,6 +394,9 @@ config("toolchain") { "_MIPS_ARCH_MIPS32R6", "FPU_MODE_FP64", ] + if (mips_use_msa) { + defines += [ "_MIPS_MSA" ] + } } else if (mips_arch_variant == "r2") { defines += [ "_MIPS_ARCH_MIPS32R2" ] if (mips_fpu_mode == "fp64") { @@ -424,6 +434,9 @@ config("toolchain") { } if (mips_arch_variant == "r6") { defines += [ "_MIPS_ARCH_MIPS64R6" ] + if (mips_use_msa) { + defines += [ "_MIPS_MSA" ] + } } else if (mips_arch_variant == "r2") { defines += [ "_MIPS_ARCH_MIPS64R2" ] } @@ -514,8 +527,6 @@ config("toolchain") { if (is_clang) { cflags += [ - "-Wsign-compare", - # TODO(hans): Remove once http://crbug.com/428099 is resolved. "-Winconsistent-missing-override", ] @@ -883,6 +894,14 @@ action("v8_dump_build_config") { "v8_target_cpu=\"$v8_target_cpu\"", "v8_use_snapshot=$v8_use_snapshot", ] + + if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel" || + v8_current_cpu == "mips64" || v8_current_cpu == "mips64el") { + args += [ + "mips_arch_variant=\"$mips_arch_variant\"", + "mips_use_msa=$mips_use_msa", + ] + } } ############################################################################### @@ -1018,6 +1037,7 @@ v8_source_set("v8_initializers") { "src/builtins/builtins-arguments-gen.cc", "src/builtins/builtins-arguments-gen.h", "src/builtins/builtins-array-gen.cc", + "src/builtins/builtins-array-gen.h", "src/builtins/builtins-async-function-gen.cc", "src/builtins/builtins-async-gen.cc", "src/builtins/builtins-async-gen.h", @@ -1060,8 +1080,11 @@ v8_source_set("v8_initializers") { "src/builtins/builtins-string-gen.h", "src/builtins/builtins-symbol-gen.cc", "src/builtins/builtins-typedarray-gen.cc", + "src/builtins/builtins-typedarray-gen.h", "src/builtins/builtins-utils-gen.h", "src/builtins/builtins-wasm-gen.cc", + "src/builtins/growable-fixed-array-gen.cc", + "src/builtins/growable-fixed-array-gen.h", "src/builtins/setup-builtins-internal.cc", "src/heap/setup-heap-internal.cc", "src/ic/accessor-assembler.cc", @@ -1193,7 +1216,6 @@ v8_source_set("v8_base") { "//base/trace_event/common/trace_event_common.h", ### gcmole(all) ### - "include/v8-debug.h", "include/v8-inspector-protocol.h", "include/v8-inspector.h", "include/v8-platform.h", @@ -1236,8 +1258,6 @@ v8_source_set("v8_base") { "src/assert-scope.h", "src/ast/ast-function-literal-id-reindexer.cc", "src/ast/ast-function-literal-id-reindexer.h", - "src/ast/ast-numbering.cc", - "src/ast/ast-numbering.h", "src/ast/ast-source-ranges.h", "src/ast/ast-traversal-visitor.h", "src/ast/ast-value-factory.cc", @@ -1304,6 +1324,8 @@ v8_source_set("v8_base") { "src/builtins/builtins-utils.h", "src/builtins/builtins.cc", "src/builtins/builtins.h", + "src/builtins/constants-table-builder.cc", + "src/builtins/constants-table-builder.h", "src/cached-powers.cc", "src/cached-powers.h", "src/callable.h", @@ -1396,6 +1418,7 @@ v8_source_set("v8_base") { "src/compiler/frame-states.h", "src/compiler/frame.cc", "src/compiler/frame.h", + "src/compiler/functional-list.h", "src/compiler/gap-resolver.cc", "src/compiler/gap-resolver.h", "src/compiler/graph-assembler.cc", @@ -1639,6 +1662,8 @@ v8_source_set("v8_base") { "src/global-handles.cc", "src/global-handles.h", "src/globals.h", + "src/handler-table.cc", + "src/handler-table.h", "src/handles-inl.h", "src/handles.cc", "src/handles.h", @@ -1670,6 +1695,7 @@ v8_source_set("v8_base") { "src/heap/invalidated-slots-inl.h", "src/heap/invalidated-slots.cc", "src/heap/invalidated-slots.h", + "src/heap/item-parallel-job.cc", "src/heap/item-parallel-job.h", "src/heap/local-allocator.h", "src/heap/mark-compact-inl.h", @@ -1719,6 +1745,8 @@ v8_source_set("v8_base") { "src/icu_util.h", "src/identity-map.cc", "src/identity-map.h", + "src/instruction-stream.cc", + "src/instruction-stream.h", "src/interface-descriptors.cc", "src/interface-descriptors.h", "src/interpreter/block-coverage-builder.h", @@ -1835,6 +1863,8 @@ v8_source_set("v8_base") { "src/objects/js-array.h", "src/objects/js-collection-inl.h", "src/objects/js-collection.h", + "src/objects/js-promise-inl.h", + "src/objects/js-promise.h", "src/objects/js-regexp-inl.h", "src/objects/js-regexp.h", "src/objects/literal-objects-inl.h", @@ -1842,6 +1872,8 @@ v8_source_set("v8_base") { "src/objects/literal-objects.h", "src/objects/map-inl.h", "src/objects/map.h", + "src/objects/microtask-inl.h", + "src/objects/microtask.h", "src/objects/module-inl.h", "src/objects/module.cc", "src/objects/module.h", @@ -1849,6 +1881,8 @@ v8_source_set("v8_base") { "src/objects/name.h", "src/objects/object-macros-undef.h", "src/objects/object-macros.h", + "src/objects/promise-inl.h", + "src/objects/promise.h", "src/objects/property-descriptor-object-inl.h", "src/objects/property-descriptor-object.h", "src/objects/regexp-match-info.h", @@ -1865,8 +1899,6 @@ v8_source_set("v8_base") { "src/objects/template-objects.h", "src/ostreams.cc", "src/ostreams.h", - "src/parsing/background-parsing-task.cc", - "src/parsing/background-parsing-task.h", "src/parsing/duplicate-finder.h", "src/parsing/expression-classifier.h", "src/parsing/expression-scope-reparenter.cc", @@ -2126,8 +2158,6 @@ v8_source_set("v8_base") { "src/wasm/signature-map.h", "src/wasm/streaming-decoder.cc", "src/wasm/streaming-decoder.h", - "src/wasm/wasm-api.cc", - "src/wasm/wasm-api.h", "src/wasm/wasm-code-manager.cc", "src/wasm/wasm-code-manager.h", "src/wasm/wasm-code-specialization.cc", @@ -2570,11 +2600,15 @@ v8_component("v8_libbase") { if (is_posix) { sources += [ - "src/base/platform/platform-posix-time.cc", - "src/base/platform/platform-posix-time.h", "src/base/platform/platform-posix.cc", "src/base/platform/platform-posix.h", ] + if (current_os != "aix") { + sources += [ + "src/base/platform/platform-posix-time.cc", + "src/base/platform/platform-posix-time.h", + ] + } } if (is_linux) { @@ -2824,7 +2858,7 @@ group("v8_clusterfuzz") { if (v8_test_isolation_mode != "noop") { deps += [ - "tools:run-deopt-fuzzer_run", + "test:d8_default_run", "tools:run-num-fuzzer_run", ] } @@ -2842,9 +2876,9 @@ group("v8_fuzzers") { ":v8_simple_json_fuzzer", ":v8_simple_multi_return_fuzzer", ":v8_simple_parser_fuzzer", + ":v8_simple_regexp_builtins_fuzzer", ":v8_simple_regexp_fuzzer", ":v8_simple_wasm_async_fuzzer", - ":v8_simple_wasm_call_fuzzer", ":v8_simple_wasm_code_fuzzer", ":v8_simple_wasm_compile_fuzzer", ":v8_simple_wasm_data_section_fuzzer", @@ -2952,7 +2986,7 @@ v8_executable("d8") { } if (v8_correctness_fuzzer) { - deps += [ "tools/foozzie:v8_correctness_fuzzer_resources" ] + deps += [ "tools/clusterfuzz:v8_correctness_fuzzer_resources" ] } defines = [] @@ -3127,6 +3161,25 @@ v8_source_set("parser_fuzzer") { v8_fuzzer("parser_fuzzer") { } +v8_source_set("regexp_builtins_fuzzer") { + sources = [ + "test/fuzzer/regexp-builtins.cc", + "test/fuzzer/regexp_builtins/mjsunit.js.h", + ] + + deps = [ + ":fuzzer_support", + ] + + configs = [ + ":external_config", + ":internal_config_base", + ] +} + +v8_fuzzer("regexp_builtins_fuzzer") { +} + v8_source_set("regexp_fuzzer") { sources = [ "test/fuzzer/regexp.cc", @@ -3218,27 +3271,6 @@ v8_source_set("wasm_code_fuzzer") { v8_fuzzer("wasm_code_fuzzer") { } -v8_source_set("wasm_call_fuzzer") { - sources = [ - "test/common/wasm/test-signatures.h", - "test/fuzzer/wasm-call.cc", - ] - - deps = [ - ":fuzzer_support", - ":lib_wasm_fuzzer_common", - ":wasm_module_runner", - ] - - configs = [ - ":external_config", - ":internal_config_base", - ] -} - -v8_fuzzer("wasm_call_fuzzer") { -} - v8_source_set("lib_wasm_fuzzer_common") { sources = [ "test/fuzzer/wasm-fuzzer-common.cc", diff --git a/deps/v8/ChangeLog b/deps/v8/ChangeLog index 1fe3135a011707..cfeeb0e08b6630 100644 --- a/deps/v8/ChangeLog +++ b/deps/v8/ChangeLog @@ -1,3 +1,1748 @@ +2018-02-28: Version 6.6.346 + + Performance and stability improvements on all platforms. + + +2018-02-28: Version 6.6.345 + + Performance and stability improvements on all platforms. + + +2018-02-28: Version 6.6.344 + + Performance and stability improvements on all platforms. + + +2018-02-28: Version 6.6.343 + + Performance and stability improvements on all platforms. + + +2018-02-27: Version 6.6.342 + + Performance and stability improvements on all platforms. + + +2018-02-27: Version 6.6.341 + + Performance and stability improvements on all platforms. + + +2018-02-27: Version 6.6.340 + + Performance and stability improvements on all platforms. + + +2018-02-27: Version 6.6.339 + + Performance and stability improvements on all platforms. + + +2018-02-27: Version 6.6.338 + + Performance and stability improvements on all platforms. + + +2018-02-27: Version 6.6.337 + + Performance and stability improvements on all platforms. + + +2018-02-27: Version 6.6.336 + + Performance and stability improvements on all platforms. + + +2018-02-26: Version 6.6.335 + + Performance and stability improvements on all platforms. + + +2018-02-26: Version 6.6.334 + + Performance and stability improvements on all platforms. + + +2018-02-26: Version 6.6.333 + + Performance and stability improvements on all platforms. + + +2018-02-26: Version 6.6.332 + + Performance and stability improvements on all platforms. + + +2018-02-26: Version 6.6.331 + + Performance and stability improvements on all platforms. + + +2018-02-26: Version 6.6.330 + + Performance and stability improvements on all platforms. + + +2018-02-26: Version 6.6.329 + + Performance and stability improvements on all platforms. + + +2018-02-26: Version 6.6.328 + + Performance and stability improvements on all platforms. + + +2018-02-26: Version 6.6.327 + + Performance and stability improvements on all platforms. + + +2018-02-26: Version 6.6.326 + + Performance and stability improvements on all platforms. + + +2018-02-26: Version 6.6.325 + + Performance and stability improvements on all platforms. + + +2018-02-26: Version 6.6.324 + + Performance and stability improvements on all platforms. + + +2018-02-26: Version 6.6.323 + + Performance and stability improvements on all platforms. + + +2018-02-26: Version 6.6.322 + + Performance and stability improvements on all platforms. + + +2018-02-26: Version 6.6.321 + + Performance and stability improvements on all platforms. + + +2018-02-26: Version 6.6.320 + + Performance and stability improvements on all platforms. + + +2018-02-26: Version 6.6.319 + + Performance and stability improvements on all platforms. + + +2018-02-25: Version 6.6.318 + + Performance and stability improvements on all platforms. + + +2018-02-25: Version 6.6.317 + + Performance and stability improvements on all platforms. + + +2018-02-25: Version 6.6.316 + + Performance and stability improvements on all platforms. + + +2018-02-25: Version 6.6.315 + + Performance and stability improvements on all platforms. + + +2018-02-24: Version 6.6.314 + + Performance and stability improvements on all platforms. + + +2018-02-24: Version 6.6.313 + + Performance and stability improvements on all platforms. + + +2018-02-23: Version 6.6.312 + + Performance and stability improvements on all platforms. + + +2018-02-23: Version 6.6.311 + + Performance and stability improvements on all platforms. + + +2018-02-23: Version 6.6.310 + + Performance and stability improvements on all platforms. + + +2018-02-23: Version 6.6.309 + + Performance and stability improvements on all platforms. + + +2018-02-23: Version 6.6.308 + + Performance and stability improvements on all platforms. + + +2018-02-23: Version 6.6.307 + + Performance and stability improvements on all platforms. + + +2018-02-23: Version 6.6.306 + + Performance and stability improvements on all platforms. + + +2018-02-23: Version 6.6.305 + + Performance and stability improvements on all platforms. + + +2018-02-23: Version 6.6.304 + + Performance and stability improvements on all platforms. + + +2018-02-23: Version 6.6.303 + + Performance and stability improvements on all platforms. + + +2018-02-23: Version 6.6.302 + + Performance and stability improvements on all platforms. + + +2018-02-23: Version 6.6.301 + + Performance and stability improvements on all platforms. + + +2018-02-23: Version 6.6.300 + + Performance and stability improvements on all platforms. + + +2018-02-23: Version 6.6.299 + + Performance and stability improvements on all platforms. + + +2018-02-23: Version 6.6.298 + + Performance and stability improvements on all platforms. + + +2018-02-22: Version 6.6.297 + + Performance and stability improvements on all platforms. + + +2018-02-22: Version 6.6.296 + + Performance and stability improvements on all platforms. + + +2018-02-22: Version 6.6.295 + + Performance and stability improvements on all platforms. + + +2018-02-22: Version 6.6.294 + + Performance and stability improvements on all platforms. + + +2018-02-22: Version 6.6.293 + + Performance and stability improvements on all platforms. + + +2018-02-22: Version 6.6.292 + + Performance and stability improvements on all platforms. + + +2018-02-22: Version 6.6.291 + + Performance and stability improvements on all platforms. + + +2018-02-22: Version 6.6.290 + + Performance and stability improvements on all platforms. + + +2018-02-22: Version 6.6.289 + + Performance and stability improvements on all platforms. + + +2018-02-22: Version 6.6.288 + + Performance and stability improvements on all platforms. + + +2018-02-22: Version 6.6.287 + + Performance and stability improvements on all platforms. + + +2018-02-22: Version 6.6.286 + + Performance and stability improvements on all platforms. + + +2018-02-22: Version 6.6.285 + + Performance and stability improvements on all platforms. + + +2018-02-22: Version 6.6.284 + + Performance and stability improvements on all platforms. + + +2018-02-22: Version 6.6.283 + + Performance and stability improvements on all platforms. + + +2018-02-21: Version 6.6.282 + + Performance and stability improvements on all platforms. + + +2018-02-21: Version 6.6.281 + + Performance and stability improvements on all platforms. + + +2018-02-21: Version 6.6.280 + + Performance and stability improvements on all platforms. + + +2018-02-20: Version 6.6.279 + + Performance and stability improvements on all platforms. + + +2018-02-20: Version 6.6.278 + + Performance and stability improvements on all platforms. + + +2018-02-20: Version 6.6.277 + + Performance and stability improvements on all platforms. + + +2018-02-20: Version 6.6.276 + + Performance and stability improvements on all platforms. + + +2018-02-20: Version 6.6.275 + + Performance and stability improvements on all platforms. + + +2018-02-20: Version 6.6.274 + + Performance and stability improvements on all platforms. + + +2018-02-20: Version 6.6.273 + + Performance and stability improvements on all platforms. + + +2018-02-20: Version 6.6.272 + + Performance and stability improvements on all platforms. + + +2018-02-20: Version 6.6.271 + + Performance and stability improvements on all platforms. + + +2018-02-20: Version 6.6.270 + + Performance and stability improvements on all platforms. + + +2018-02-20: Version 6.6.269 + + Performance and stability improvements on all platforms. + + +2018-02-20: Version 6.6.268 + + Performance and stability improvements on all platforms. + + +2018-02-20: Version 6.6.267 + + Performance and stability improvements on all platforms. + + +2018-02-19: Version 6.6.266 + + Performance and stability improvements on all platforms. + + +2018-02-19: Version 6.6.265 + + Performance and stability improvements on all platforms. + + +2018-02-19: Version 6.6.264 + + Performance and stability improvements on all platforms. + + +2018-02-19: Version 6.6.263 + + Performance and stability improvements on all platforms. + + +2018-02-19: Version 6.6.262 + + Performance and stability improvements on all platforms. + + +2018-02-19: Version 6.6.261 + + Performance and stability improvements on all platforms. + + +2018-02-17: Version 6.6.260 + + Performance and stability improvements on all platforms. + + +2018-02-17: Version 6.6.259 + + Performance and stability improvements on all platforms. + + +2018-02-16: Version 6.6.258 + + Performance and stability improvements on all platforms. + + +2018-02-16: Version 6.6.257 + + Performance and stability improvements on all platforms. + + +2018-02-16: Version 6.6.256 + + Performance and stability improvements on all platforms. + + +2018-02-16: Version 6.6.255 + + Performance and stability improvements on all platforms. + + +2018-02-15: Version 6.6.254 + + Performance and stability improvements on all platforms. + + +2018-02-15: Version 6.6.253 + + Performance and stability improvements on all platforms. + + +2018-02-15: Version 6.6.252 + + Performance and stability improvements on all platforms. + + +2018-02-14: Version 6.6.251 + + Performance and stability improvements on all platforms. + + +2018-02-14: Version 6.6.250 + + Performance and stability improvements on all platforms. + + +2018-02-14: Version 6.6.249 + + Performance and stability improvements on all platforms. + + +2018-02-14: Version 6.6.248 + + Performance and stability improvements on all platforms. + + +2018-02-14: Version 6.6.247 + + Performance and stability improvements on all platforms. + + +2018-02-14: Version 6.6.246 + + Performance and stability improvements on all platforms. + + +2018-02-14: Version 6.6.245 + + Performance and stability improvements on all platforms. + + +2018-02-14: Version 6.6.244 + + Performance and stability improvements on all platforms. + + +2018-02-14: Version 6.6.243 + + Performance and stability improvements on all platforms. + + +2018-02-14: Version 6.6.242 + + Performance and stability improvements on all platforms. + + +2018-02-14: Version 6.6.241 + + Performance and stability improvements on all platforms. + + +2018-02-14: Version 6.6.240 + + Performance and stability improvements on all platforms. + + +2018-02-13: Version 6.6.239 + + Performance and stability improvements on all platforms. + + +2018-02-13: Version 6.6.238 + + Performance and stability improvements on all platforms. + + +2018-02-13: Version 6.6.237 + + Performance and stability improvements on all platforms. + + +2018-02-13: Version 6.6.236 + + Performance and stability improvements on all platforms. + + +2018-02-13: Version 6.6.235 + + Performance and stability improvements on all platforms. + + +2018-02-13: Version 6.6.234 + + Performance and stability improvements on all platforms. + + +2018-02-12: Version 6.6.233 + + Performance and stability improvements on all platforms. + + +2018-02-12: Version 6.6.232 + + Performance and stability improvements on all platforms. + + +2018-02-12: Version 6.6.231 + + Performance and stability improvements on all platforms. + + +2018-02-12: Version 6.6.230 + + Performance and stability improvements on all platforms. + + +2018-02-12: Version 6.6.229 + + Performance and stability improvements on all platforms. + + +2018-02-09: Version 6.6.228 + + Performance and stability improvements on all platforms. + + +2018-02-09: Version 6.6.227 + + Performance and stability improvements on all platforms. + + +2018-02-09: Version 6.6.226 + + Performance and stability improvements on all platforms. + + +2018-02-09: Version 6.6.225 + + Performance and stability improvements on all platforms. + + +2018-02-09: Version 6.6.224 + + Performance and stability improvements on all platforms. + + +2018-02-09: Version 6.6.223 + + Performance and stability improvements on all platforms. + + +2018-02-09: Version 6.6.222 + + Performance and stability improvements on all platforms. + + +2018-02-09: Version 6.6.221 + + Performance and stability improvements on all platforms. + + +2018-02-09: Version 6.6.220 + + Performance and stability improvements on all platforms. + + +2018-02-09: Version 6.6.219 + + Performance and stability improvements on all platforms. + + +2018-02-09: Version 6.6.218 + + Performance and stability improvements on all platforms. + + +2018-02-09: Version 6.6.217 + + Performance and stability improvements on all platforms. + + +2018-02-09: Version 6.6.216 + + Performance and stability improvements on all platforms. + + +2018-02-09: Version 6.6.215 + + Performance and stability improvements on all platforms. + + +2018-02-09: Version 6.6.214 + + Performance and stability improvements on all platforms. + + +2018-02-09: Version 6.6.213 + + Performance and stability improvements on all platforms. + + +2018-02-09: Version 6.6.212 + + Performance and stability improvements on all platforms. + + +2018-02-08: Version 6.6.211 + + Performance and stability improvements on all platforms. + + +2018-02-08: Version 6.6.210 + + Performance and stability improvements on all platforms. + + +2018-02-08: Version 6.6.209 + + Performance and stability improvements on all platforms. + + +2018-02-08: Version 6.6.208 + + Performance and stability improvements on all platforms. + + +2018-02-08: Version 6.6.207 + + Performance and stability improvements on all platforms. + + +2018-02-08: Version 6.6.206 + + Performance and stability improvements on all platforms. + + +2018-02-08: Version 6.6.205 + + Performance and stability improvements on all platforms. + + +2018-02-08: Version 6.6.204 + + Performance and stability improvements on all platforms. + + +2018-02-08: Version 6.6.203 + + Performance and stability improvements on all platforms. + + +2018-02-08: Version 6.6.202 + + Performance and stability improvements on all platforms. + + +2018-02-08: Version 6.6.201 + + Performance and stability improvements on all platforms. + + +2018-02-08: Version 6.6.200 + + Performance and stability improvements on all platforms. + + +2018-02-08: Version 6.6.199 + + Performance and stability improvements on all platforms. + + +2018-02-08: Version 6.6.198 + + Performance and stability improvements on all platforms. + + +2018-02-08: Version 6.6.197 + + Performance and stability improvements on all platforms. + + +2018-02-08: Version 6.6.196 + + Performance and stability improvements on all platforms. + + +2018-02-07: Version 6.6.195 + + Performance and stability improvements on all platforms. + + +2018-02-07: Version 6.6.194 + + Performance and stability improvements on all platforms. + + +2018-02-07: Version 6.6.193 + + Performance and stability improvements on all platforms. + + +2018-02-07: Version 6.6.192 + + Performance and stability improvements on all platforms. + + +2018-02-07: Version 6.6.191 + + Performance and stability improvements on all platforms. + + +2018-02-07: Version 6.6.190 + + Performance and stability improvements on all platforms. + + +2018-02-07: Version 6.6.189 + + Performance and stability improvements on all platforms. + + +2018-02-07: Version 6.6.188 + + Performance and stability improvements on all platforms. + + +2018-02-07: Version 6.6.187 + + Performance and stability improvements on all platforms. + + +2018-02-07: Version 6.6.186 + + Performance and stability improvements on all platforms. + + +2018-02-07: Version 6.6.185 + + Performance and stability improvements on all platforms. + + +2018-02-07: Version 6.6.184 + + Performance and stability improvements on all platforms. + + +2018-02-07: Version 6.6.183 + + Performance and stability improvements on all platforms. + + +2018-02-07: Version 6.6.182 + + Performance and stability improvements on all platforms. + + +2018-02-07: Version 6.6.181 + + Performance and stability improvements on all platforms. + + +2018-02-07: Version 6.6.180 + + Performance and stability improvements on all platforms. + + +2018-02-06: Version 6.6.179 + + Performance and stability improvements on all platforms. + + +2018-02-06: Version 6.6.178 + + Performance and stability improvements on all platforms. + + +2018-02-06: Version 6.6.177 + + Performance and stability improvements on all platforms. + + +2018-02-06: Version 6.6.176 + + Performance and stability improvements on all platforms. + + +2018-02-06: Version 6.6.175 + + Performance and stability improvements on all platforms. + + +2018-02-06: Version 6.6.174 + + Performance and stability improvements on all platforms. + + +2018-02-06: Version 6.6.173 + + Performance and stability improvements on all platforms. + + +2018-02-06: Version 6.6.172 + + Performance and stability improvements on all platforms. + + +2018-02-06: Version 6.6.171 + + Performance and stability improvements on all platforms. + + +2018-02-06: Version 6.6.170 + + Performance and stability improvements on all platforms. + + +2018-02-06: Version 6.6.169 + + Performance and stability improvements on all platforms. + + +2018-02-06: Version 6.6.168 + + Performance and stability improvements on all platforms. + + +2018-02-06: Version 6.6.167 + + Performance and stability improvements on all platforms. + + +2018-02-06: Version 6.6.166 + + Performance and stability improvements on all platforms. + + +2018-02-05: Version 6.6.165 + + Performance and stability improvements on all platforms. + + +2018-02-05: Version 6.6.164 + + Performance and stability improvements on all platforms. + + +2018-02-05: Version 6.6.163 + + Performance and stability improvements on all platforms. + + +2018-02-05: Version 6.6.162 + + Performance and stability improvements on all platforms. + + +2018-02-05: Version 6.6.161 + + Performance and stability improvements on all platforms. + + +2018-02-05: Version 6.6.160 + + Performance and stability improvements on all platforms. + + +2018-02-05: Version 6.6.159 + + Performance and stability improvements on all platforms. + + +2018-02-05: Version 6.6.158 + + Performance and stability improvements on all platforms. + + +2018-02-05: Version 6.6.157 + + Performance and stability improvements on all platforms. + + +2018-02-05: Version 6.6.156 + + Performance and stability improvements on all platforms. + + +2018-02-02: Version 6.6.155 + + Performance and stability improvements on all platforms. + + +2018-02-02: Version 6.6.154 + + Performance and stability improvements on all platforms. + + +2018-02-02: Version 6.6.153 + + Performance and stability improvements on all platforms. + + +2018-02-02: Version 6.6.152 + + Performance and stability improvements on all platforms. + + +2018-02-02: Version 6.6.151 + + Performance and stability improvements on all platforms. + + +2018-02-02: Version 6.6.150 + + Performance and stability improvements on all platforms. + + +2018-02-02: Version 6.6.149 + + Performance and stability improvements on all platforms. + + +2018-02-02: Version 6.6.148 + + Performance and stability improvements on all platforms. + + +2018-02-02: Version 6.6.147 + + Performance and stability improvements on all platforms. + + +2018-02-02: Version 6.6.146 + + Performance and stability improvements on all platforms. + + +2018-02-02: Version 6.6.145 + + Performance and stability improvements on all platforms. + + +2018-02-02: Version 6.6.144 + + Performance and stability improvements on all platforms. + + +2018-02-02: Version 6.6.143 + + Performance and stability improvements on all platforms. + + +2018-02-02: Version 6.6.142 + + Performance and stability improvements on all platforms. + + +2018-02-02: Version 6.6.141 + + Performance and stability improvements on all platforms. + + +2018-02-01: Version 6.6.140 + + Performance and stability improvements on all platforms. + + +2018-02-01: Version 6.6.139 + + Performance and stability improvements on all platforms. + + +2018-02-01: Version 6.6.138 + + Performance and stability improvements on all platforms. + + +2018-02-01: Version 6.6.137 + + Performance and stability improvements on all platforms. + + +2018-02-01: Version 6.6.136 + + Performance and stability improvements on all platforms. + + +2018-02-01: Version 6.6.135 + + Performance and stability improvements on all platforms. + + +2018-02-01: Version 6.6.134 + + Performance and stability improvements on all platforms. + + +2018-02-01: Version 6.6.133 + + Performance and stability improvements on all platforms. + + +2018-02-01: Version 6.6.132 + + Performance and stability improvements on all platforms. + + +2018-02-01: Version 6.6.131 + + Performance and stability improvements on all platforms. + + +2018-02-01: Version 6.6.130 + + Performance and stability improvements on all platforms. + + +2018-02-01: Version 6.6.129 + + Performance and stability improvements on all platforms. + + +2018-02-01: Version 6.6.128 + + Performance and stability improvements on all platforms. + + +2018-01-31: Version 6.6.127 + + Performance and stability improvements on all platforms. + + +2018-01-31: Version 6.6.126 + + Performance and stability improvements on all platforms. + + +2018-01-31: Version 6.6.125 + + Performance and stability improvements on all platforms. + + +2018-01-31: Version 6.6.124 + + Performance and stability improvements on all platforms. + + +2018-01-31: Version 6.6.123 + + Performance and stability improvements on all platforms. + + +2018-01-31: Version 6.6.122 + + Performance and stability improvements on all platforms. + + +2018-01-31: Version 6.6.121 + + Performance and stability improvements on all platforms. + + +2018-01-31: Version 6.6.120 + + Performance and stability improvements on all platforms. + + +2018-01-31: Version 6.6.119 + + Performance and stability improvements on all platforms. + + +2018-01-31: Version 6.6.118 + + Performance and stability improvements on all platforms. + + +2018-01-31: Version 6.6.117 + + Performance and stability improvements on all platforms. + + +2018-01-31: Version 6.6.116 + + Performance and stability improvements on all platforms. + + +2018-01-30: Version 6.6.115 + + Performance and stability improvements on all platforms. + + +2018-01-30: Version 6.6.114 + + Performance and stability improvements on all platforms. + + +2018-01-30: Version 6.6.113 + + Performance and stability improvements on all platforms. + + +2018-01-30: Version 6.6.112 + + Performance and stability improvements on all platforms. + + +2018-01-30: Version 6.6.111 + + Performance and stability improvements on all platforms. + + +2018-01-30: Version 6.6.110 + + Performance and stability improvements on all platforms. + + +2018-01-30: Version 6.6.109 + + Performance and stability improvements on all platforms. + + +2018-01-30: Version 6.6.108 + + Performance and stability improvements on all platforms. + + +2018-01-30: Version 6.6.107 + + Performance and stability improvements on all platforms. + + +2018-01-30: Version 6.6.106 + + Performance and stability improvements on all platforms. + + +2018-01-29: Version 6.6.105 + + Performance and stability improvements on all platforms. + + +2018-01-29: Version 6.6.104 + + Performance and stability improvements on all platforms. + + +2018-01-29: Version 6.6.103 + + Performance and stability improvements on all platforms. + + +2018-01-29: Version 6.6.102 + + Performance and stability improvements on all platforms. + + +2018-01-29: Version 6.6.101 + + Performance and stability improvements on all platforms. + + +2018-01-29: Version 6.6.100 + + Performance and stability improvements on all platforms. + + +2018-01-29: Version 6.6.99 + + Performance and stability improvements on all platforms. + + +2018-01-29: Version 6.6.98 + + Performance and stability improvements on all platforms. + + +2018-01-29: Version 6.6.97 + + Performance and stability improvements on all platforms. + + +2018-01-29: Version 6.6.96 + + Performance and stability improvements on all platforms. + + +2018-01-29: Version 6.6.95 + + Performance and stability improvements on all platforms. + + +2018-01-29: Version 6.6.94 + + Performance and stability improvements on all platforms. + + +2018-01-29: Version 6.6.93 + + Performance and stability improvements on all platforms. + + +2018-01-29: Version 6.6.92 + + Performance and stability improvements on all platforms. + + +2018-01-29: Version 6.6.91 + + Performance and stability improvements on all platforms. + + +2018-01-27: Version 6.6.90 + + Performance and stability improvements on all platforms. + + +2018-01-27: Version 6.6.89 + + Performance and stability improvements on all platforms. + + +2018-01-26: Version 6.6.88 + + Performance and stability improvements on all platforms. + + +2018-01-26: Version 6.6.87 + + Performance and stability improvements on all platforms. + + +2018-01-26: Version 6.6.86 + + Performance and stability improvements on all platforms. + + +2018-01-26: Version 6.6.85 + + Performance and stability improvements on all platforms. + + +2018-01-26: Version 6.6.84 + + Performance and stability improvements on all platforms. + + +2018-01-26: Version 6.6.83 + + Performance and stability improvements on all platforms. + + +2018-01-25: Version 6.6.82 + + Performance and stability improvements on all platforms. + + +2018-01-25: Version 6.6.81 + + Performance and stability improvements on all platforms. + + +2018-01-25: Version 6.6.80 + + Performance and stability improvements on all platforms. + + +2018-01-25: Version 6.6.79 + + Performance and stability improvements on all platforms. + + +2018-01-25: Version 6.6.78 + + Performance and stability improvements on all platforms. + + +2018-01-25: Version 6.6.77 + + Performance and stability improvements on all platforms. + + +2018-01-25: Version 6.6.76 + + Performance and stability improvements on all platforms. + + +2018-01-25: Version 6.6.75 + + Performance and stability improvements on all platforms. + + +2018-01-25: Version 6.6.74 + + Performance and stability improvements on all platforms. + + +2018-01-25: Version 6.6.73 + + Performance and stability improvements on all platforms. + + +2018-01-25: Version 6.6.72 + + Performance and stability improvements on all platforms. + + +2018-01-25: Version 6.6.71 + + Performance and stability improvements on all platforms. + + +2018-01-25: Version 6.6.70 + + Performance and stability improvements on all platforms. + + +2018-01-25: Version 6.6.69 + + Performance and stability improvements on all platforms. + + +2018-01-25: Version 6.6.68 + + Performance and stability improvements on all platforms. + + +2018-01-25: Version 6.6.67 + + Performance and stability improvements on all platforms. + + +2018-01-24: Version 6.6.66 + + Performance and stability improvements on all platforms. + + +2018-01-24: Version 6.6.65 + + Performance and stability improvements on all platforms. + + +2018-01-24: Version 6.6.64 + + Performance and stability improvements on all platforms. + + +2018-01-24: Version 6.6.63 + + Performance and stability improvements on all platforms. + + +2018-01-24: Version 6.6.62 + + Performance and stability improvements on all platforms. + + +2018-01-24: Version 6.6.61 + + Performance and stability improvements on all platforms. + + +2018-01-24: Version 6.6.60 + + Performance and stability improvements on all platforms. + + +2018-01-24: Version 6.6.59 + + Performance and stability improvements on all platforms. + + +2018-01-24: Version 6.6.58 + + Performance and stability improvements on all platforms. + + +2018-01-24: Version 6.6.57 + + Performance and stability improvements on all platforms. + + +2018-01-24: Version 6.6.56 + + Performance and stability improvements on all platforms. + + +2018-01-24: Version 6.6.55 + + Performance and stability improvements on all platforms. + + +2018-01-24: Version 6.6.54 + + Performance and stability improvements on all platforms. + + +2018-01-24: Version 6.6.53 + + Performance and stability improvements on all platforms. + + +2018-01-24: Version 6.6.52 + + Performance and stability improvements on all platforms. + + +2018-01-23: Version 6.6.51 + + Performance and stability improvements on all platforms. + + +2018-01-23: Version 6.6.50 + + Performance and stability improvements on all platforms. + + +2018-01-23: Version 6.6.49 + + Performance and stability improvements on all platforms. + + +2018-01-23: Version 6.6.48 + + Performance and stability improvements on all platforms. + + +2018-01-23: Version 6.6.47 + + Performance and stability improvements on all platforms. + + +2018-01-23: Version 6.6.46 + + Performance and stability improvements on all platforms. + + +2018-01-23: Version 6.6.45 + + Performance and stability improvements on all platforms. + + +2018-01-23: Version 6.6.44 + + Performance and stability improvements on all platforms. + + +2018-01-23: Version 6.6.43 + + Performance and stability improvements on all platforms. + + +2018-01-23: Version 6.6.42 + + Performance and stability improvements on all platforms. + + +2018-01-23: Version 6.6.41 + + Performance and stability improvements on all platforms. + + +2018-01-23: Version 6.6.40 + + Performance and stability improvements on all platforms. + + +2018-01-23: Version 6.6.39 + + Performance and stability improvements on all platforms. + + +2018-01-23: Version 6.6.38 + + Performance and stability improvements on all platforms. + + +2018-01-23: Version 6.6.37 + + Performance and stability improvements on all platforms. + + +2018-01-23: Version 6.6.36 + + Performance and stability improvements on all platforms. + + +2018-01-23: Version 6.6.35 + + Performance and stability improvements on all platforms. + + +2018-01-23: Version 6.6.34 + + Performance and stability improvements on all platforms. + + +2018-01-23: Version 6.6.33 + + Performance and stability improvements on all platforms. + + +2018-01-22: Version 6.6.32 + + Performance and stability improvements on all platforms. + + +2018-01-22: Version 6.6.31 + + Performance and stability improvements on all platforms. + + +2018-01-22: Version 6.6.30 + + Performance and stability improvements on all platforms. + + +2018-01-22: Version 6.6.29 + + Performance and stability improvements on all platforms. + + +2018-01-22: Version 6.6.28 + + Performance and stability improvements on all platforms. + + +2018-01-22: Version 6.6.27 + + Performance and stability improvements on all platforms. + + +2018-01-22: Version 6.6.26 + + Performance and stability improvements on all platforms. + + +2018-01-22: Version 6.6.25 + + Performance and stability improvements on all platforms. + + +2018-01-22: Version 6.6.24 + + Performance and stability improvements on all platforms. + + +2018-01-22: Version 6.6.23 + + Performance and stability improvements on all platforms. + + +2018-01-22: Version 6.6.22 + + Performance and stability improvements on all platforms. + + +2018-01-22: Version 6.6.21 + + Performance and stability improvements on all platforms. + + +2018-01-22: Version 6.6.20 + + Performance and stability improvements on all platforms. + + +2018-01-22: Version 6.6.19 + + Performance and stability improvements on all platforms. + + +2018-01-22: Version 6.6.18 + + Performance and stability improvements on all platforms. + + +2018-01-22: Version 6.6.17 + + Performance and stability improvements on all platforms. + + +2018-01-22: Version 6.6.16 + + Performance and stability improvements on all platforms. + + +2018-01-22: Version 6.6.15 + + Performance and stability improvements on all platforms. + + +2018-01-22: Version 6.6.14 + + Performance and stability improvements on all platforms. + + +2018-01-22: Version 6.6.13 + + Performance and stability improvements on all platforms. + + +2018-01-22: Version 6.6.12 + + Performance and stability improvements on all platforms. + + +2018-01-21: Version 6.6.11 + + Performance and stability improvements on all platforms. + + +2018-01-20: Version 6.6.10 + + Performance and stability improvements on all platforms. + + +2018-01-20: Version 6.6.9 + + Performance and stability improvements on all platforms. + + +2018-01-19: Version 6.6.8 + + Performance and stability improvements on all platforms. + + +2018-01-19: Version 6.6.7 + + Performance and stability improvements on all platforms. + + +2018-01-19: Version 6.6.6 + + Performance and stability improvements on all platforms. + + +2018-01-19: Version 6.6.5 + + Performance and stability improvements on all platforms. + + +2018-01-19: Version 6.6.4 + + Performance and stability improvements on all platforms. + + +2018-01-19: Version 6.6.3 + + Performance and stability improvements on all platforms. + + +2018-01-19: Version 6.6.2 + + Performance and stability improvements on all platforms. + + +2018-01-19: Version 6.6.1 + + Performance and stability improvements on all platforms. + + +2018-01-18: Version 6.5.257 + + Performance and stability improvements on all platforms. + + +2018-01-18: Version 6.5.256 + + Performance and stability improvements on all platforms. + + +2018-01-18: Version 6.5.255 + + Performance and stability improvements on all platforms. + + 2018-01-17: Version 6.5.254 Performance and stability improvements on all platforms. diff --git a/deps/v8/DEPS b/deps/v8/DEPS index bc9e4e0a90c8af..4c67868d52dac8 100644 --- a/deps/v8/DEPS +++ b/deps/v8/DEPS @@ -5,20 +5,22 @@ vars = { 'checkout_instrumented_libraries': False, 'chromium_url': 'https://chromium.googlesource.com', - 'build_for_node': False, + 'download_gcmole': False, + 'download_jsfunfuzz': False, + 'download_mips_toolchain': False, } deps = { 'v8/build': - Var('chromium_url') + '/chromium/src/build.git' + '@' + 'b3a78cd03a95c30ff10f863f736249eb04f0f34d', + Var('chromium_url') + '/chromium/src/build.git' + '@' + 'b1d6c28b4a64128ad856d9da458afda2861fddab', 'v8/tools/gyp': Var('chromium_url') + '/external/gyp.git' + '@' + 'd61a9397e668fa9843c4aa7da9e79460fe590bfb', 'v8/third_party/icu': - Var('chromium_url') + '/chromium/deps/icu.git' + '@' + 'c8ca2962b46670ec89071ffd1291688983cd319c', + Var('chromium_url') + '/chromium/deps/icu.git' + '@' + 'd888fd2a1be890f4d35e43f68d6d79f42519a357', 'v8/third_party/instrumented_libraries': - Var('chromium_url') + '/chromium/src/third_party/instrumented_libraries.git' + '@' + 'b7578b4132cf73ca3265e2ee0b7bd0a422a54ebf', + Var('chromium_url') + '/chromium/src/third_party/instrumented_libraries.git' + '@' + 'b745ddca2c63719167c0f2008ae19e667c5e9952', 'v8/buildtools': - Var('chromium_url') + '/chromium/buildtools.git' + '@' + '6fe4a3251488f7af86d64fc25cf442e817cf6133', + Var('chromium_url') + '/chromium/buildtools.git' + '@' + '2888931260f2a32bc583f005bd807a561b2fa6af', 'v8/base/trace_event/common': Var('chromium_url') + '/chromium/src/base/trace_event/common.git' + '@' + '0e9a47d74970bee1bbfc063c47215406f8918699', 'v8/third_party/android_ndk': { @@ -26,11 +28,11 @@ deps = { 'condition': 'checkout_android', }, 'v8/third_party/android_tools': { - 'url': Var('chromium_url') + '/android_tools.git' + '@' + 'c78b25872734e0038ae2a333edc645cd96bc232d', + 'url': Var('chromium_url') + '/android_tools.git' + '@' + '9a70d48fcdd68cd0e7e968f342bd767ee6323bd1', 'condition': 'checkout_android', }, 'v8/third_party/catapult': { - 'url': Var('chromium_url') + '/catapult.git' + '@' + 'b4826a52853c9c2778d496f6c6fa853f777f94df', + 'url': Var('chromium_url') + '/catapult.git' + '@' + '8a42ad3cb185e340c32b20f657980fd057e3769f', 'condition': 'checkout_android', }, 'v8/third_party/colorama/src': { @@ -52,15 +54,15 @@ deps = { 'v8/test/mozilla/data': Var('chromium_url') + '/v8/deps/third_party/mozilla-tests.git' + '@' + 'f6c578a10ea707b1a8ab0b88943fe5115ce2b9be', 'v8/test/test262/data': - Var('chromium_url') + '/external/github.com/tc39/test262.git' + '@' + '8311965251953d4745aeb68c98fb71fab2eac1d0', + Var('chromium_url') + '/external/github.com/tc39/test262.git' + '@' + 'b59d956b3c268abd0875aeb87d6688f4c7aafc9b', 'v8/test/test262/harness': Var('chromium_url') + '/external/github.com/test262-utils/test262-harness-py.git' + '@' + '0f2acdd882c84cff43b9d60df7574a1901e2cdcd', 'v8/tools/clang': - Var('chromium_url') + '/chromium/src/tools/clang.git' + '@' + '27088876ff821e8a1518383576a43662a3255d56', + Var('chromium_url') + '/chromium/src/tools/clang.git' + '@' + 'b3d3f5920b161f95f1a8ffe08b75c695e0edf350', 'v8/tools/luci-go': - Var('chromium_url') + '/chromium/src/tools/luci-go.git' + '@' + 'd882048313f6f51df29856406fa03b620c1d0205', + Var('chromium_url') + '/chromium/src/tools/luci-go.git' + '@' + 'ff0709d4283b1f233dcf0c9fec1672c6ecaed2f1', 'v8/test/wasm-js': - Var('chromium_url') + '/external/github.com/WebAssembly/spec.git' + '@' + 'a25083ac7076b05e3f304ec9e093ef1b1ee09422', + Var('chromium_url') + '/external/github.com/WebAssembly/spec.git' + '@' + '4653fc002a510b4f207af07f2c7c61b13dba78d9', } recursedeps = [ @@ -78,7 +80,6 @@ include_rules = [ # checkdeps.py shouldn't check for includes in these directories: skip_child_includes = [ 'build', - 'gypfiles', 'third_party', ] @@ -91,14 +92,16 @@ hooks = [ 'pattern': '.', 'action': [ 'python', - 'v8/gypfiles/landmines.py', + 'v8/build/landmines.py', + '--landmine-scripts', + 'v8/tools/get_landmines.py', ], }, # Pull clang-format binaries using checked-in hashes. { 'name': 'clang_format_win', 'pattern': '.', - 'condition': 'host_os == "win" and build_for_node != True', + 'condition': 'host_os == "win"', 'action': [ 'download_from_google_storage', '--no_resume', '--platform=win32', @@ -110,7 +113,7 @@ hooks = [ { 'name': 'clang_format_mac', 'pattern': '.', - 'condition': 'host_os == "mac" and build_for_node != True', + 'condition': 'host_os == "mac"', 'action': [ 'download_from_google_storage', '--no_resume', '--platform=darwin', @@ -122,7 +125,7 @@ hooks = [ { 'name': 'clang_format_linux', 'pattern': '.', - 'condition': 'host_os == "linux" and build_for_node != True', + 'condition': 'host_os == "linux"', 'action': [ 'download_from_google_storage', '--no_resume', '--platform=linux*', @@ -134,28 +137,30 @@ hooks = [ { 'name': 'gcmole', 'pattern': '.', - 'condition': 'build_for_node != True', - # TODO(machenbach): Insert condition and remove GYP_DEFINES dependency. - 'action': [ - 'python', - 'v8/tools/gcmole/download_gcmole_tools.py', + 'condition': 'download_gcmole', + 'action': [ 'download_from_google_storage', + '--bucket', 'chrome-v8-gcmole', + '-u', '--no_resume', + '-s', 'v8/tools/gcmole/gcmole-tools.tar.gz.sha1', + '--platform=linux*', ], }, { 'name': 'jsfunfuzz', 'pattern': '.', - 'condition': 'build_for_node != True', - # TODO(machenbach): Insert condition and remove GYP_DEFINES dependency. - 'action': [ - 'python', - 'v8/tools/jsfunfuzz/download_jsfunfuzz.py', + 'condition': 'download_jsfunfuzz', + 'action': [ 'download_from_google_storage', + '--bucket', 'chrome-v8-jsfunfuzz', + '-u', '--no_resume', + '-s', 'v8/tools/jsfunfuzz/jsfunfuzz.tar.gz.sha1', + '--platform=linux*', ], }, # Pull luci-go binaries (isolate, swarming) using checked-in hashes. { 'name': 'luci-go_win', 'pattern': '.', - 'condition': 'host_os == "win" and build_for_node != True', + 'condition': 'host_os == "win"', 'action': [ 'download_from_google_storage', '--no_resume', '--platform=win32', @@ -167,7 +172,7 @@ hooks = [ { 'name': 'luci-go_mac', 'pattern': '.', - 'condition': 'host_os == "mac" and build_for_node != True', + 'condition': 'host_os == "mac"', 'action': [ 'download_from_google_storage', '--no_resume', '--platform=darwin', @@ -179,7 +184,7 @@ hooks = [ { 'name': 'luci-go_linux', 'pattern': '.', - 'condition': 'host_os == "linux" and build_for_node != True', + 'condition': 'host_os == "linux"', 'action': [ 'download_from_google_storage', '--no_resume', '--platform=linux*', @@ -228,7 +233,6 @@ hooks = [ { 'name': 'wasm_spec_tests', 'pattern': '.', - 'condition': 'build_for_node != True', 'action': [ 'download_from_google_storage', '--no_resume', '--no_auth', @@ -240,7 +244,6 @@ hooks = [ { 'name': 'closure_compiler', 'pattern': '.', - 'condition': 'build_for_node != True', 'action': [ 'download_from_google_storage', '--no_resume', '--no_auth', @@ -250,17 +253,39 @@ hooks = [ ], }, { - # Downloads the current stable linux sysroot to build/linux/ if needed. - # This sysroot updates at about the same rate that the chrome build deps - # change. - 'name': 'sysroot', + 'name': 'sysroot_arm', 'pattern': '.', - 'condition': 'build_for_node != True', - 'action': [ - 'python', - 'v8/build/linux/sysroot_scripts/install-sysroot.py', - '--running-as-hook', - ], + 'condition': 'checkout_linux and checkout_arm', + 'action': ['python', 'v8/build/linux/sysroot_scripts/install-sysroot.py', + '--arch=arm'], + }, + { + 'name': 'sysroot_arm64', + 'pattern': '.', + 'condition': 'checkout_linux and checkout_arm64', + 'action': ['python', 'v8/build/linux/sysroot_scripts/install-sysroot.py', + '--arch=arm64'], + }, + { + 'name': 'sysroot_x86', + 'pattern': '.', + 'condition': 'checkout_linux and (checkout_x86 or checkout_x64)', + 'action': ['python', 'v8/build/linux/sysroot_scripts/install-sysroot.py', + '--arch=x86'], + }, + { + 'name': 'sysroot_mips', + 'pattern': '.', + 'condition': 'checkout_linux and checkout_mips', + 'action': ['python', 'v8/build/linux/sysroot_scripts/install-sysroot.py', + '--arch=mips'], + }, + { + 'name': 'sysroot_x64', + 'pattern': '.', + 'condition': 'checkout_linux and checkout_x64', + 'action': ['python', 'v8/build/linux/sysroot_scripts/install-sysroot.py', + '--arch=x64'], }, { 'name': 'msan_chained_origins', @@ -297,7 +322,7 @@ hooks = [ { 'name': 'binutils', 'pattern': 'v8/third_party/binutils', - 'condition': 'host_os == "linux" and build_for_node != True', + 'condition': 'host_os == "linux"', 'action': [ 'python', 'v8/third_party/binutils/download.py', @@ -307,6 +332,8 @@ hooks = [ # Note: On Win, this should run after win_toolchain, as it may use it. 'name': 'clang', 'pattern': '.', + # clang not supported on aix + 'condition': 'host_os != "aix"', 'action': ['python', 'v8/tools/clang/scripts/update.py'], }, { @@ -316,15 +343,20 @@ hooks = [ 'action': [ 'python', 'v8/build/fuchsia/update_sdk.py', - '226f6dd0cad1d6be63a353ce2649423470729ae9', ], }, { - # A change to a .gyp, .gypi, or to GYP itself should run the generator. - 'name': 'regyp_if_needed', + 'name': 'mips_toolchain', 'pattern': '.', - 'condition': 'build_for_node != True', - 'action': ['python', 'v8/gypfiles/gyp_v8', '--running-as-hook'], + 'condition': 'download_mips_toolchain', + 'action': [ 'download_from_google_storage', + '--no_resume', + '--platform=linux', + '--no_auth', + '-u', + '--bucket', 'chromium-v8', + '-s', 'v8/tools/mips_toolchain.tar.gz.sha1', + ], }, # Download and initialize "vpython" VirtualEnv environment packages. { diff --git a/deps/v8/Makefile b/deps/v8/Makefile deleted file mode 100644 index 167ebf8c082015..00000000000000 --- a/deps/v8/Makefile +++ /dev/null @@ -1,493 +0,0 @@ -# Copyright 2012 the V8 project authors. All rights reserved. -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following -# disclaimer in the documentation and/or other materials provided -# with the distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -# Variable default definitions. Override them by exporting them in your shell. -OUTDIR ?= out -TESTJOBS ?= -GYPFLAGS ?= -TESTFLAGS ?= -ANDROID_NDK_HOST_ARCH ?= -ANDROID_V8 ?= /data/local/tmp/v8 - -# Special build flags. Use them like this: "make library=shared" - -# library=shared || component=shared_library -ifeq ($(library), shared) - GYPFLAGS += -Dcomponent=shared_library -endif -ifdef component - GYPFLAGS += -Dcomponent=$(component) -endif -# disassembler=on -ifeq ($(disassembler), on) - GYPFLAGS += -Dv8_enable_disassembler=1 -endif -# objectprint=on -ifeq ($(objectprint), on) - GYPFLAGS += -Dv8_object_print=1 -endif -# verifycsa=on -ifeq ($(verifycsa), on) - GYPFLAGS += -Dv8_enable_verify_csa=1 -endif -# verifyheap=on -ifeq ($(verifyheap), on) - GYPFLAGS += -Dv8_enable_verify_heap=1 -endif -# tracemaps=on -ifeq ($(tracemaps), on) - GYPFLAGS += -Dv8_trace_maps=1 -endif -# concurrentmarking=on -ifeq ($(concurrentmarking), on) - GYPFLAGS += -Dv8_enable_concurrent_marking=1 -endif -# backtrace=off -ifeq ($(backtrace), off) - GYPFLAGS += -Dv8_enable_backtrace=0 -else - GYPFLAGS += -Dv8_enable_backtrace=1 -endif -# verifypredictable=on -ifeq ($(verifypredictable), on) - GYPFLAGS += -Dv8_enable_verify_predictable=1 -endif -# snapshot=off -ifeq ($(snapshot), off) - GYPFLAGS += -Dv8_use_snapshot='false' -endif -ifeq ($(snapshot), external) - GYPFLAGS += -Dv8_use_external_startup_data=1 -endif -# extrachecks=on/off -ifeq ($(extrachecks), on) - GYPFLAGS += -Ddcheck_always_on=1 -Dv8_enable_handle_zapping=1 -endif -ifeq ($(extrachecks), off) - GYPFLAGS += -Ddcheck_always_on=0 -Dv8_enable_handle_zapping=0 -endif -# slowdchecks=on/off -ifeq ($(slowdchecks), on) - GYPFLAGS += -Dv8_enable_slow_dchecks=1 -endif -ifeq ($(slowdchecks), off) - GYPFLAGS += -Dv8_enable_slow_dchecks=0 -endif -# debugsymbols=on -ifeq ($(debugsymbols), on) - GYPFLAGS += -Drelease_extra_cflags=-ggdb3 -endif -# gdbjit=on/off -ifeq ($(gdbjit), on) - GYPFLAGS += -Dv8_enable_gdbjit=1 -endif -ifeq ($(gdbjit), off) - GYPFLAGS += -Dv8_enable_gdbjit=0 -endif -# vtunejit=on -ifeq ($(vtunejit), on) - GYPFLAGS += -Dv8_enable_vtunejit=1 -endif -# unalignedaccess=on -ifeq ($(unalignedaccess), on) - GYPFLAGS += -Dv8_can_use_unaligned_accesses=true -endif -# randomseed=12345, disable random seed via randomseed=0 -ifdef randomseed - GYPFLAGS += -Dv8_random_seed=$(randomseed) -endif -# soname_version=1.2.3 -ifdef soname_version - GYPFLAGS += -Dsoname_version=$(soname_version) -endif -# werror=no -ifeq ($(werror), no) - GYPFLAGS += -Dwerror='' -endif -# strictaliasing=off (workaround for GCC-4.5) -ifeq ($(strictaliasing), off) - GYPFLAGS += -Dv8_no_strict_aliasing=1 -endif -# regexp=interpreted -ifeq ($(regexp), interpreted) - GYPFLAGS += -Dv8_interpreted_regexp=1 -endif -# i18nsupport=off -ifeq ($(i18nsupport), off) - GYPFLAGS += -Dv8_enable_i18n_support=0 - TESTFLAGS += --noi18n -endif -# deprecationwarnings=on -ifeq ($(deprecationwarnings), on) - GYPFLAGS += -Dv8_deprecation_warnings=1 -endif -# vectorstores=on -ifeq ($(vectorstores), on) - GYPFLAGS += -Dv8_vector_stores=1 -endif -# imminentdeprecationwarnings=on -ifeq ($(imminentdeprecationwarnings), on) - GYPFLAGS += -Dv8_imminent_deprecation_warnings=1 -endif -# asan=on -ifeq ($(asan), on) - GYPFLAGS += -Dasan=1 -Dclang=1 - TESTFLAGS += --asan - ifeq ($(lsan), on) - GYPFLAGS += -Dlsan=1 - endif -endif -ifdef embedscript - GYPFLAGS += -Dembed_script=$(embedscript) -endif -ifdef warmupscript - GYPFLAGS += -Dwarmup_script=$(warmupscript) -endif -ifeq ($(goma), on) - GYPFLAGS += -Duse_goma=1 -endif -# v8_os_page_size=0, when 0 or not specified use build OS page size -ifdef v8_os_page_size - ifneq ($(v8_os_page_size), 0) - ifneq ($(snapshot), off) - GYPFLAGS += -Dv8_os_page_size=$(v8_os_page_size) - endif - endif -endif -# arm specific flags. -# arm_version= -ifneq ($(strip $(arm_version)),) - GYPFLAGS += -Darm_version=$(arm_version) -else -# Deprecated (use arm_version instead): armv7=false/true -ifeq ($(armv7), false) - GYPFLAGS += -Darm_version=6 -else -ifeq ($(armv7), true) - GYPFLAGS += -Darm_version=7 -endif -endif -endif -# hardfp=on/off. Deprecated, use armfloatabi -ifeq ($(hardfp),on) - GYPFLAGS += -Darm_float_abi=hard -else -ifeq ($(hardfp),off) - GYPFLAGS += -Darm_float_abi=softfp -endif -endif -# fpu: armfpu=xxx -# xxx: vfp, vfpv3-d16, vfpv3, neon. -ifeq ($(armfpu),) - GYPFLAGS += -Darm_fpu=default -else - GYPFLAGS += -Darm_fpu=$(armfpu) -endif -# float abi: armfloatabi=softfp/hard -ifeq ($(armfloatabi),) -ifeq ($(hardfp),) - GYPFLAGS += -Darm_float_abi=default -endif -else - GYPFLAGS += -Darm_float_abi=$(armfloatabi) -endif -# armthumb=on/off -ifeq ($(armthumb), off) - GYPFLAGS += -Darm_thumb=0 -else -ifeq ($(armthumb), on) - GYPFLAGS += -Darm_thumb=1 -endif -endif -# arm_test_noprobe=on -# With this flag set, by default v8 will only use features implied -# by the compiler (no probe). This is done by modifying the default -# values of enable_armv7, enable_vfp3, enable_32dregs and enable_neon. -# Modifying these flags when launching v8 will enable the probing for -# the specified values. -ifeq ($(arm_test_noprobe), on) - GYPFLAGS += -Darm_test_noprobe=on -endif -# Do not omit the frame pointer, needed for profiling with perf -ifeq ($(no_omit_framepointer), on) - GYPFLAGS += -Drelease_extra_cflags=-fno-omit-frame-pointer -endif - -ifdef android_ndk_root - GYPFLAGS += -Dandroid_ndk_root=$(android_ndk_root) - export ANDROID_NDK_ROOT = $(android_ndk_root) -endif - -# ----------------- available targets: -------------------- -# - any arch listed in ARCHES (see below) -# - any mode listed in MODES -# - every combination ., e.g. "ia32.release" -# - "native": current host's architecture, release mode -# - any of the above with .check appended, e.g. "ia32.release.check" -# - "android": cross-compile for Android/ARM -# - default (no target specified): build all DEFAULT_ARCHES and MODES -# - "check": build all targets and run all tests -# - ".clean" for any in ARCHES -# - "clean": clean all ARCHES - -# ----------------- internal stuff ------------------------ - -# Architectures and modes to be compiled. Consider these to be internal -# variables, don't override them (use the targets instead). -ARCHES = ia32 x64 arm arm64 mips mipsel mips64 mips64el ppc ppc64 s390 s390x -ARCHES32 = ia32 arm mips mipsel ppc s390 -DEFAULT_ARCHES = ia32 x64 arm -MODES = release debug optdebug -DEFAULT_MODES = release debug -ANDROID_ARCHES = android_ia32 android_x64 android_arm android_arm64 \ - android_mipsel - -# List of files that trigger Makefile regeneration: -GYPFILES = third_party/icu/icu.gypi third_party/icu/icu.gyp \ - gypfiles/shim_headers.gypi gypfiles/features.gypi \ - gypfiles/standalone.gypi \ - gypfiles/toolchain.gypi gypfiles/all.gyp gypfiles/mac/asan.gyp \ - test/cctest/cctest.gyp test/fuzzer/fuzzer.gyp \ - test/unittests/unittests.gyp src/v8.gyp \ - tools/parser-shell.gyp testing/gmock.gyp testing/gtest.gyp \ - samples/samples.gyp src/third_party/vtune/v8vtune.gyp src/d8.gyp - -# If vtunejit=on, the v8vtune.gyp will be appended. -ifeq ($(vtunejit), on) - GYPFILES += src/third_party/vtune/v8vtune.gyp -endif -# Generates all combinations of ARCHES and MODES, e.g. "ia32.release". -BUILDS = $(foreach mode,$(MODES),$(addsuffix .$(mode),$(ARCHES))) -ANDROID_BUILDS = $(foreach mode,$(MODES), \ - $(addsuffix .$(mode),$(ANDROID_ARCHES))) -# Generates corresponding test targets, e.g. "ia32.release.check". -CHECKS = $(addsuffix .check,$(BUILDS)) -QUICKCHECKS = $(addsuffix .quickcheck,$(BUILDS)) -ANDROID_CHECKS = $(addsuffix .check,$(ANDROID_BUILDS)) -# File where previously used GYPFLAGS are stored. -ENVFILE = $(OUTDIR)/environment - -.PHONY: all check clean builddeps dependencies $(ENVFILE).new native \ - qc quickcheck $(QUICKCHECKS) turbocheck \ - $(addsuffix .quickcheck,$(MODES)) $(addsuffix .quickcheck,$(ARCHES)) \ - $(ARCHES) $(MODES) $(BUILDS) $(CHECKS) $(addsuffix .clean,$(ARCHES)) \ - $(addsuffix .check,$(MODES)) $(addsuffix .check,$(ARCHES)) \ - $(ANDROID_ARCHES) $(ANDROID_BUILDS) $(ANDROID_CHECKS) - -# Target definitions. "all" is the default. -all: $(DEFAULT_MODES) - -# Special target for the buildbots to use. Depends on $(OUTDIR)/Makefile -# having been created before. -buildbot: - $(MAKE) -C "$(OUTDIR)" BUILDTYPE=$(BUILDTYPE) \ - builddir="$(abspath $(OUTDIR))/$(BUILDTYPE)" - -# Compile targets. MODES and ARCHES are convenience targets. -.SECONDEXPANSION: -$(MODES): $(addsuffix .$$@,$(DEFAULT_ARCHES)) - -$(ARCHES): $(addprefix $$@.,$(DEFAULT_MODES)) - -# Defines how to build a particular target (e.g. ia32.release). -$(BUILDS): $(OUTDIR)/Makefile.$$@ - @$(MAKE) -C "$(OUTDIR)" -f Makefile.$@ \ - BUILDTYPE=$(shell echo $(subst .,,$(suffix $@)) | \ - python -c "print \ - raw_input().replace('opt', '').capitalize()") \ - builddir="$(shell pwd)/$(OUTDIR)/$@" - -native: $(OUTDIR)/Makefile.native - @$(MAKE) -C "$(OUTDIR)" -f Makefile.native \ - BUILDTYPE=Release \ - builddir="$(shell pwd)/$(OUTDIR)/$@" - -$(ANDROID_ARCHES): $(addprefix $$@.,$(MODES)) - -$(ANDROID_BUILDS): $(GYPFILES) $(ENVFILE) Makefile.android - @$(MAKE) -f Makefile.android $@ \ - ARCH="$(basename $@)" \ - MODE="$(subst .,,$(suffix $@))" \ - OUTDIR="$(OUTDIR)" \ - GYPFLAGS="$(GYPFLAGS)" - -# Test targets. -check: all - @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \ - --arch=$(shell echo $(DEFAULT_ARCHES) | sed -e 's/ /,/g') \ - $(TESTFLAGS) - -$(addsuffix .check,$(MODES)): $$(basename $$@) - @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \ - --mode=$(basename $@) $(TESTFLAGS) - -$(addsuffix .check,$(ARCHES)): $$(basename $$@) - @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \ - --arch=$(basename $@) $(TESTFLAGS) - -$(CHECKS): $$(basename $$@) - @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \ - --arch-and-mode=$(basename $@) $(TESTFLAGS) - -$(addsuffix .quickcheck,$(MODES)): $$(basename $$@) - @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \ - --mode=$(basename $@) $(TESTFLAGS) --quickcheck - -$(addsuffix .quickcheck,$(ARCHES)): $$(basename $$@) - @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \ - --arch=$(basename $@) $(TESTFLAGS) --quickcheck - -$(QUICKCHECKS): $$(basename $$@) - @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \ - --arch-and-mode=$(basename $@) $(TESTFLAGS) --quickcheck - -$(addsuffix .sync, $(ANDROID_BUILDS)): $$(basename $$@) - @tools/android-sync.sh $(basename $@) $(OUTDIR) \ - $(shell pwd) $(ANDROID_V8) - -$(addsuffix .check, $(ANDROID_BUILDS)): $$(basename $$@).sync - @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \ - --arch-and-mode=$(basename $@) \ - --timeout=600 \ - --command-prefix="tools/android-run.py" $(TESTFLAGS) - -$(addsuffix .check, $(ANDROID_ARCHES)): \ - $(addprefix $$(basename $$@).,$(MODES)).check - -native.check: native - @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR)/native \ - --arch-and-mode=. $(TESTFLAGS) - -SUPERFASTTESTMODES = ia32.release -FASTTESTMODES = $(SUPERFASTTESTMODES),x64.release,ia32.optdebug,x64.optdebug,arm.optdebug,arm64.release -FASTCOMPILEMODES = $(FASTTESTMODES),arm64.optdebug - -COMMA = , -EMPTY = -SPACE = $(EMPTY) $(EMPTY) -quickcheck: $(subst $(COMMA),$(SPACE),$(FASTCOMPILEMODES)) - gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \ - --arch-and-mode=$(SUPERFASTTESTMODES) $(TESTFLAGS) --quickcheck \ - --download-data mozilla webkit - gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \ - --arch-and-mode=$(FASTTESTMODES) $(TESTFLAGS) --quickcheck -qc: quickcheck - -turbocheck: $(subst $(COMMA),$(SPACE),$(FASTCOMPILEMODES)) - gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \ - --arch-and-mode=$(SUPERFASTTESTMODES) $(TESTFLAGS) \ - --quickcheck --variants=turbofan --download-data mozilla webkit - gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \ - --arch-and-mode=$(FASTTESTMODES) $(TESTFLAGS) \ - --quickcheck --variants=turbofan -tc: turbocheck - -# Clean targets. You can clean each architecture individually, or everything. -$(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES)): - rm -f $(OUTDIR)/Makefile.$(basename $@)* - rm -rf $(OUTDIR)/$(basename $@).release - rm -rf $(OUTDIR)/$(basename $@).debug - rm -rf $(OUTDIR)/$(basename $@).optdebug - find $(OUTDIR) -regex '.*\(host\|target\)\.$(basename $@).*\.mk' -delete - -native.clean: - rm -f $(OUTDIR)/Makefile.native - rm -rf $(OUTDIR)/native - find $(OUTDIR) -regex '.*\(host\|target\)\.native\.mk' -delete - -clean: $(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES)) native.clean gtags.clean tags.clean - -# GYP file generation targets. -OUT_MAKEFILES = $(addprefix $(OUTDIR)/Makefile.,$(BUILDS)) -$(OUT_MAKEFILES): $(GYPFILES) $(ENVFILE) - $(eval CXX_TARGET_ARCH:=$(shell $(CXX) -v 2>&1 | grep ^Target: | \ - cut -f 2 -d " " | cut -f 1 -d "-" )) - $(eval CXX_TARGET_ARCH:=$(subst aarch64,arm64,$(CXX_TARGET_ARCH))) - $(eval CXX_TARGET_ARCH:=$(subst x86_64,x64,$(CXX_TARGET_ARCH))) - $(eval CXX_TARGET_ARCH:=$(subst s390x,s390,$(CXX_TARGET_ARCH))) - $(eval CXX_TARGET_ARCH:=$(subst powerpc,ppc,$(CXX_TARGET_ARCH))) - $(eval CXX_TARGET_ARCH:=$(subst ppc64,ppc,$(CXX_TARGET_ARCH))) - $(eval CXX_TARGET_ARCH:=$(subst ppcle,ppc,$(CXX_TARGET_ARCH))) - $(eval V8_TARGET_ARCH:=$(subst .,,$(suffix $(basename $@)))) - PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(shell pwd)/gypfiles:$(PYTHONPATH):$(shell pwd)/tools/gyp/pylib:$(PYTHONPATH)" \ - GYP_GENERATORS=make \ - tools/gyp/gyp --generator-output="$(OUTDIR)" gypfiles/all.gyp \ - -Igypfiles/standalone.gypi --depth=. \ - -Dv8_target_arch=$(V8_TARGET_ARCH) \ - $(if $(findstring $(CXX_TARGET_ARCH),$(V8_TARGET_ARCH)), \ - -Dtarget_arch=$(V8_TARGET_ARCH), \ - $(if $(shell echo $(ARCHES32) | grep $(V8_TARGET_ARCH)), \ - -Dtarget_arch=ia32,)) \ - $(if $(findstring optdebug,$@),-Dv8_optimized_debug=1,) \ - -S$(suffix $(basename $@))$(suffix $@) $(GYPFLAGS) - -$(OUTDIR)/Makefile.native: $(GYPFILES) $(ENVFILE) - PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(shell pwd)/gypfiles:$(PYTHONPATH):$(shell pwd)/tools/gyp/pylib:$(PYTHONPATH)" \ - GYP_GENERATORS=make \ - tools/gyp/gyp --generator-output="$(OUTDIR)" gypfiles/all.gyp \ - -Igypfiles/standalone.gypi --depth=. -S.native $(GYPFLAGS) - -# Replaces the old with the new environment file if they're different, which -# will trigger GYP to regenerate Makefiles. -$(ENVFILE): $(ENVFILE).new - @if test -r $(ENVFILE) && cmp $(ENVFILE).new $(ENVFILE) > /dev/null; \ - then rm $(ENVFILE).new; \ - else mv $(ENVFILE).new $(ENVFILE); fi - -# Stores current GYPFLAGS in a file. -$(ENVFILE).new: - $(eval CXX_TARGET_ARCH:=$(shell $(CXX) -v 2>&1 | grep ^Target: | \ - cut -f 2 -d " " | cut -f 1 -d "-" )) - $(eval CXX_TARGET_ARCH:=$(subst aarch64,arm64,$(CXX_TARGET_ARCH))) - $(eval CXX_TARGET_ARCH:=$(subst x86_64,x64,$(CXX_TARGET_ARCH))) - @mkdir -p $(OUTDIR); echo "GYPFLAGS=$(GYPFLAGS) -Dtarget_arch=$(CXX_TARGET_ARCH)" > $(ENVFILE).new; - -# Support for the GNU GLOBAL Source Code Tag System. -gtags.files: $(GYPFILES) $(ENVFILE) - @find include src test -name '*.h' -o -name '*.cc' -o -name '*.c' > $@ - -# We need to manually set the stack limit here, to work around bugs in -# gmake-3.81 and global-5.7.1 on recent 64-bit Linux systems. -# Using $(wildcard ...) gracefully ignores non-existing files, so that stale -# gtags.files after switching branches don't cause recipe failures. -GPATH GRTAGS GSYMS GTAGS: gtags.files $(wildcard $(shell cat gtags.files 2> /dev/null)) - @bash -c 'ulimit -s 10240 && GTAGSFORCECPP=yes gtags -i -q -f $<' - -gtags.clean: - rm -f gtags.files GPATH GRTAGS GSYMS GTAGS - -tags: gtags.files $(wildcard $(shell cat gtags.files 2> /dev/null)) - @(ctags --version | grep 'Exuberant Ctags' >/dev/null) || \ - (echo "Please install Exuberant Ctags (check 'ctags --version')" >&2; false) - ctags --fields=+l -L $< - -tags.clean: - rm -r tags - -dependencies builddeps: - $(error Use 'gclient sync' instead) diff --git a/deps/v8/Makefile.android b/deps/v8/Makefile.android deleted file mode 100644 index 417152177d73c2..00000000000000 --- a/deps/v8/Makefile.android +++ /dev/null @@ -1,72 +0,0 @@ -# Copyright 2012 the V8 project authors. All rights reserved. -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following -# disclaimer in the documentation and/or other materials provided -# with the distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -# Those definitions should be consistent with the main Makefile -ANDROID_ARCHES = android_ia32 android_x64 android_arm android_arm64 \ - android_mipsel android_x87 -MODES = release debug - -# Generates all combinations of ANDROID ARCHES and MODES, -# e.g. "android_ia32.release" or "android_arm.release" -ANDROID_BUILDS = $(foreach mode,$(MODES), \ - $(addsuffix .$(mode),$(ANDROID_ARCHES))) - -ifeq ($(ARCH), android_arm) - DEFINES = target_arch=arm v8_target_arch=arm -else ifeq ($(ARCH), android_arm64) - DEFINES = target_arch=arm64 v8_target_arch=arm64 -else ifeq ($(ARCH), android_mipsel) - DEFINES = target_arch=mipsel v8_target_arch=mipsel -else ifeq ($(ARCH), android_ia32) - DEFINES = target_arch=ia32 v8_target_arch=ia32 -else ifeq ($(ARCH), android_x64) - DEFINES = target_arch=x64 v8_target_arch=x64 -else ifeq ($(ARCH), android_x87) - DEFINES = target_arch=ia32 v8_target_arch=x87 -else - $(error Target architecture "${ARCH}" is not supported) -endif - -# Common flags. -DEFINES += OS=android - -.SECONDEXPANSION: -$(ANDROID_BUILDS): $(OUTDIR)/Makefile.$$@ - @$(MAKE) -C "$(OUTDIR)" -f Makefile.$@ \ - BUILDTYPE=$(shell echo $(subst .,,$(suffix $@)) | \ - python -c "print raw_input().capitalize()") \ - builddir="$(shell pwd)/$(OUTDIR)/$@" - -# Android GYP file generation targets. -ANDROID_MAKEFILES = $(addprefix $(OUTDIR)/Makefile.,$(ANDROID_BUILDS)) -$(ANDROID_MAKEFILES): - GYP_GENERATORS=make-android \ - GYP_DEFINES="${DEFINES}" \ - PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(shell pwd)/gypfiles:$(PYTHONPATH)" \ - tools/gyp/gyp --generator-output="${OUTDIR}" gypfiles/all.gyp \ - -Igypfiles/standalone.gypi --depth=. \ - -S$(suffix $(basename $@))$(suffix $@) ${GYPFLAGS} diff --git a/deps/v8/OWNERS b/deps/v8/OWNERS index 2583a229b6cb09..d8e0fc60def3f7 100644 --- a/deps/v8/OWNERS +++ b/deps/v8/OWNERS @@ -7,6 +7,7 @@ bradnelson@chromium.org cbruni@chromium.org clemensh@chromium.org danno@chromium.org +delphick@chromium.org eholk@chromium.org franzih@chromium.org gdeepti@chromium.org @@ -17,26 +18,22 @@ 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 mlippautz@chromium.org mstarzinger@chromium.org -mtrofin@chromium.org mvstanton@chromium.org mythria@chromium.org neis@chromium.org petermarshall@chromium.org rmcilroy@chromium.org -rossberg@chromium.org sergiyb@chromium.org +sigurds@chromium.org tebbi@chromium.org titzer@chromium.org ulan@chromium.org verwaest@chromium.org -vogelheim@chromium.org yangguo@chromium.org # TEAM: v8-dev@googlegroups.com diff --git a/deps/v8/PRESUBMIT.py b/deps/v8/PRESUBMIT.py index b69e8f5089168c..e6dbb7939568fd 100644 --- a/deps/v8/PRESUBMIT.py +++ b/deps/v8/PRESUBMIT.py @@ -153,6 +153,62 @@ def _CheckUnwantedDependencies(input_api, output_api): return results +def _CheckHeadersHaveIncludeGuards(input_api, output_api): + """Ensures that all header files have include guards.""" + file_inclusion_pattern = r'src/.+\.h' + + def FilterFile(affected_file): + black_list = (_EXCLUDED_PATHS + + input_api.DEFAULT_BLACK_LIST) + return input_api.FilterSourceFile( + affected_file, + white_list=(file_inclusion_pattern, ), + black_list=black_list) + + leading_src_pattern = input_api.re.compile(r'^src/') + dash_dot_slash_pattern = input_api.re.compile(r'[-./]') + def PathToGuardMacro(path): + """Guards should be of the form V8_PATH_TO_FILE_WITHOUT_SRC_H_.""" + x = input_api.re.sub(leading_src_pattern, 'v8_', path) + x = input_api.re.sub(dash_dot_slash_pattern, '_', x) + x = x.upper() + "_" + return x + + problems = [] + for f in input_api.AffectedSourceFiles(FilterFile): + local_path = f.LocalPath() + guard_macro = PathToGuardMacro(local_path) + guard_patterns = [ + input_api.re.compile(r'^#ifndef ' + guard_macro + '$'), + input_api.re.compile(r'^#define ' + guard_macro + '$'), + input_api.re.compile(r'^#endif // ' + guard_macro + '$')] + skip_check_pattern = input_api.re.compile( + r'^// PRESUBMIT_INTENTIONALLY_MISSING_INCLUDE_GUARD') + found_patterns = [ False, False, False ] + file_omitted = False + + for line in f.NewContents(): + for i in range(len(guard_patterns)): + if guard_patterns[i].match(line): + found_patterns[i] = True + if skip_check_pattern.match(line): + file_omitted = True + break + + if not file_omitted and not all(found_patterns): + problems.append( + '%s: Missing include guard \'%s\'' % (local_path, guard_macro)) + + if problems: + return [output_api.PresubmitError( + 'You added one or more header files without an appropriate\n' + 'include guard. Add the include guard {#ifndef,#define,#endif}\n' + 'triplet or omit the check entirely through the magic comment:\n' + '"// PRESUBMIT_INTENTIONALLY_MISSING_INCLUDE_GUARD".', problems)] + else: + return [] + + # TODO(mstarzinger): Similar checking should be made available as part of # tools/presubmit.py (note that tools/check-inline-includes.sh exists). def _CheckNoInlineHeaderIncludesInNormalHeaders(input_api, output_api): @@ -230,44 +286,10 @@ def FilterFile(affected_file): return [] -def _CheckMissingFiles(input_api, output_api): - """Runs verify_source_deps.py to ensure no files were added that are not in - GN. - """ - # We need to wait until we have an input_api object and use this - # roundabout construct to import checkdeps because this file is - # eval-ed and thus doesn't have __file__. - original_sys_path = sys.path - try: - sys.path = sys.path + [input_api.os_path.join( - input_api.PresubmitLocalPath(), 'tools')] - from verify_source_deps import missing_gn_files, missing_gyp_files - finally: - # Restore sys.path to what it was before. - sys.path = original_sys_path - - gn_files = missing_gn_files() - gyp_files = missing_gyp_files() - results = [] - if gn_files: - results.append(output_api.PresubmitError( - "You added one or more source files but didn't update the\n" - "corresponding BUILD.gn files:\n", - gn_files)) - if gyp_files: - results.append(output_api.PresubmitError( - "You added one or more source files but didn't update the\n" - "corresponding gyp files:\n", - gyp_files)) - return results - - def _CommonChecks(input_api, output_api): """Checks common to both upload and commit.""" results = [] results.extend(_CheckCommitMessageBugEntry(input_api, output_api)) - results.extend(input_api.canned_checks.CheckOwners( - input_api, output_api, source_file_filter=None)) results.extend(input_api.canned_checks.CheckPatchFormatted( input_api, output_api)) results.extend(input_api.canned_checks.CheckGenderNeutral( @@ -276,9 +298,9 @@ def _CommonChecks(input_api, output_api): results.extend(_CheckUnwantedDependencies(input_api, output_api)) results.extend( _CheckNoProductionCodeUsingTestOnlyFunctions(input_api, output_api)) + results.extend(_CheckHeadersHaveIncludeGuards(input_api, output_api)) results.extend( _CheckNoInlineHeaderIncludesInNormalHeaders(input_api, output_api)) - results.extend(_CheckMissingFiles(input_api, output_api)) results.extend(_CheckJSONFiles(input_api, output_api)) results.extend(_CheckMacroUndefs(input_api, output_api)) results.extend(input_api.RunTests( diff --git a/deps/v8/gypfiles/win/msvs_dependencies.isolate b/deps/v8/gni/msvs_dependencies.isolate similarity index 100% rename from deps/v8/gypfiles/win/msvs_dependencies.isolate rename to deps/v8/gni/msvs_dependencies.isolate diff --git a/deps/v8/gni/v8.gni b/deps/v8/gni/v8.gni index ce9953ac68ce1f..16a124dce85471 100644 --- a/deps/v8/gni/v8.gni +++ b/deps/v8/gni/v8.gni @@ -33,7 +33,9 @@ declare_args() { # Enable the snapshot feature, for fast context creation. # http://v8project.blogspot.com/2015/09/custom-startup-snapshots.html - v8_use_snapshot = true + # TODO(thakis): Make snapshots work in 64-bit win/cross builds, + # https://803591 + v8_use_snapshot = !(is_win && host_os != "win" && target_cpu == "x64") # Use external files for startup data blobs: # the JS builtins sources and the start snapshot. @@ -105,6 +107,12 @@ if (is_posix && (v8_enable_backtrace || v8_monolithic)) { v8_add_configs += [ "//build/config/gcc:symbol_visibility_default" ] } +# On MIPS gcc_target_rpath and ldso_path might be needed for all builds. +if (target_cpu == "mipsel" || target_cpu == "mips64el" || + target_cpu == "mips" || target_cpu == "mips64") { + v8_add_configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ] +} + # All templates should be kept in sync. template("v8_source_set") { if (defined(invoker.split_count) && invoker.split_count > 1 && diff --git a/deps/v8/gypfiles/all.gyp b/deps/v8/gypfiles/all.gyp index 2f9cf858c03c74..5592ee1b36ca0f 100644 --- a/deps/v8/gypfiles/all.gyp +++ b/deps/v8/gypfiles/all.gyp @@ -8,46 +8,23 @@ 'target_name': 'All', 'type': 'none', 'dependencies': [ - '../src/d8.gyp:d8', - '../test/inspector/inspector.gyp:*', - '../test/mkgrokdump/mkgrokdump.gyp:*', + 'd8.gyp:d8', + 'inspector-test.gyp:*', + 'mkgrokdump.gyp:*', ], 'conditions': [ ['component!="shared_library"', { 'dependencies': [ - '../tools/parser-shell.gyp:parser-shell', + 'parser-shell.gyp:parser-shell', ], }], # These items don't compile for Android on Mac. ['host_os!="mac" or OS!="android"', { 'dependencies': [ - '../samples/samples.gyp:*', - '../test/cctest/cctest.gyp:*', - '../test/fuzzer/fuzzer.gyp:*', - '../test/unittests/unittests.gyp:*', - ], - }], - ['test_isolation_mode != "noop"', { - 'dependencies': [ - '../test/bot_default.gyp:*', - '../test/benchmarks/benchmarks.gyp:*', - '../test/debugger/debugger.gyp:*', - '../test/default.gyp:*', - '../test/d8_default.gyp:*', - '../test/intl/intl.gyp:*', - '../test/message/message.gyp:*', - '../test/mjsunit/mjsunit.gyp:*', - '../test/mozilla/mozilla.gyp:*', - '../test/optimize_for_size.gyp:*', - '../test/perf.gyp:*', - '../test/preparser/preparser.gyp:*', - '../test/test262/test262.gyp:*', - '../test/webkit/webkit.gyp:*', - '../tools/check-static-initializers.gyp:*', - '../tools/gcmole/run_gcmole.gyp:*', - '../tools/jsfunfuzz/jsfunfuzz.gyp:*', - '../tools/run-deopt-fuzzer.gyp:*', - '../tools/run-num-fuzzer.gyp:*', + 'samples.gyp:*', + 'cctest.gyp:*', + 'fuzzer.gyp:*', + 'unittests.gyp:*', ], }], ] diff --git a/deps/v8/gypfiles/cctest.gyp b/deps/v8/gypfiles/cctest.gyp new file mode 100644 index 00000000000000..6e7fddae0bdb34 --- /dev/null +++ b/deps/v8/gypfiles/cctest.gyp @@ -0,0 +1,468 @@ +# Copyright 2012 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. + +{ + 'variables': { + 'v8_code': 1, + 'generated_file': '<(SHARED_INTERMEDIATE_DIR)/resources.cc', + 'cctest_sources': [ + '../test/cctest/compiler/c-signature.h', + '../test/cctest/compiler/call-tester.h', + '../test/cctest/compiler/codegen-tester.cc', + '../test/cctest/compiler/codegen-tester.h', + '../test/cctest/compiler/code-assembler-tester.h', + '../test/cctest/compiler/function-tester.cc', + '../test/cctest/compiler/function-tester.h', + '../test/cctest/compiler/graph-builder-tester.h', + '../test/cctest/compiler/test-basic-block-profiler.cc', + '../test/cctest/compiler/test-branch-combine.cc', + '../test/cctest/compiler/test-run-unwinding-info.cc', + '../test/cctest/compiler/test-gap-resolver.cc', + '../test/cctest/compiler/test-graph-visualizer.cc', + '../test/cctest/compiler/test-code-generator.cc', + '../test/cctest/compiler/test-code-assembler.cc', + '../test/cctest/compiler/test-instruction.cc', + '../test/cctest/compiler/test-js-context-specialization.cc', + '../test/cctest/compiler/test-js-constant-cache.cc', + '../test/cctest/compiler/test-js-typed-lowering.cc', + '../test/cctest/compiler/test-jump-threading.cc', + '../test/cctest/compiler/test-linkage.cc', + '../test/cctest/compiler/test-loop-analysis.cc', + '../test/cctest/compiler/test-machine-operator-reducer.cc', + '../test/cctest/compiler/test-multiple-return.cc', + '../test/cctest/compiler/test-node.cc', + '../test/cctest/compiler/test-operator.cc', + '../test/cctest/compiler/test-representation-change.cc', + '../test/cctest/compiler/test-run-bytecode-graph-builder.cc', + '../test/cctest/compiler/test-run-calls-to-external-references.cc', + '../test/cctest/compiler/test-run-deopt.cc', + '../test/cctest/compiler/test-run-intrinsics.cc', + '../test/cctest/compiler/test-run-jsbranches.cc', + '../test/cctest/compiler/test-run-jscalls.cc', + '../test/cctest/compiler/test-run-jsexceptions.cc', + '../test/cctest/compiler/test-run-jsobjects.cc', + '../test/cctest/compiler/test-run-jsops.cc', + '../test/cctest/compiler/test-run-load-store.cc', + '../test/cctest/compiler/test-run-machops.cc', + '../test/cctest/compiler/test-run-native-calls.cc', + '../test/cctest/compiler/test-run-retpoline.cc', + '../test/cctest/compiler/test-run-stackcheck.cc', + '../test/cctest/compiler/test-run-stubs.cc', + '../test/cctest/compiler/test-run-tail-calls.cc', + '../test/cctest/compiler/test-run-variables.cc', + '../test/cctest/compiler/test-run-wasm-machops.cc', + '../test/cctest/compiler/value-helper.cc', + '../test/cctest/compiler/value-helper.h', + '../test/cctest/cctest.cc', + '../test/cctest/cctest.h', + '../test/cctest/expression-type-collector-macros.h', + '../test/cctest/gay-fixed.cc', + '../test/cctest/gay-fixed.h', + '../test/cctest/gay-precision.cc', + '../test/cctest/gay-precision.h', + '../test/cctest/gay-shortest.cc', + '../test/cctest/gay-shortest.h', + '../test/cctest/heap/heap-tester.h', + '../test/cctest/heap/heap-utils.cc', + '../test/cctest/heap/heap-utils.h', + '../test/cctest/heap/test-alloc.cc', + '../test/cctest/heap/test-array-buffer-tracker.cc', + '../test/cctest/heap/test-compaction.cc', + '../test/cctest/heap/test-concurrent-marking.cc', + '../test/cctest/heap/test-embedder-tracing.cc', + '../test/cctest/heap/test-heap.cc', + '../test/cctest/heap/test-incremental-marking.cc', + '../test/cctest/heap/test-invalidated-slots.cc', + '../test/cctest/heap/test-lab.cc', + '../test/cctest/heap/test-mark-compact.cc', + '../test/cctest/heap/test-page-promotion.cc', + '../test/cctest/heap/test-spaces.cc', + '../test/cctest/interpreter/interpreter-tester.cc', + '../test/cctest/interpreter/interpreter-tester.h', + '../test/cctest/interpreter/source-position-matcher.cc', + '../test/cctest/interpreter/source-position-matcher.h', + '../test/cctest/interpreter/test-bytecode-generator.cc', + '../test/cctest/interpreter/test-interpreter.cc', + '../test/cctest/interpreter/test-interpreter-intrinsics.cc', + '../test/cctest/interpreter/test-source-positions.cc', + '../test/cctest/interpreter/bytecode-expectations-printer.cc', + '../test/cctest/interpreter/bytecode-expectations-printer.h', + '../test/cctest/libplatform/test-tracing.cc', + '../test/cctest/libsampler/test-sampler.cc', + '../test/cctest/parsing/test-parse-decision.cc', + '../test/cctest/parsing/test-preparser.cc', + '../test/cctest/parsing/test-scanner-streams.cc', + '../test/cctest/parsing/test-scanner.cc', + '../test/cctest/print-extension.cc', + '../test/cctest/print-extension.h', + '../test/cctest/profiler-extension.cc', + '../test/cctest/profiler-extension.h', + '../test/cctest/scope-test-helper.h', + '../test/cctest/setup-isolate-for-tests.cc', + '../test/cctest/setup-isolate-for-tests.h', + '../test/cctest/test-access-checks.cc', + '../test/cctest/test-accessor-assembler.cc', + '../test/cctest/test-accessors.cc', + '../test/cctest/test-allocation.cc', + '../test/cctest/test-api.cc', + '../test/cctest/test-api.h', + '../test/cctest/test-api-accessors.cc', + '../test/cctest/test-api-interceptors.cc', + '../test/cctest/test-array-list.cc', + '../test/cctest/test-atomicops.cc', + '../test/cctest/test-bignum.cc', + '../test/cctest/test-bignum-dtoa.cc', + '../test/cctest/test-bit-vector.cc', + '../test/cctest/test-circular-queue.cc', + '../test/cctest/test-code-layout.cc', + '../test/cctest/test-code-stub-assembler.cc', + '../test/cctest/test-compiler.cc', + '../test/cctest/test-constantpool.cc', + '../test/cctest/test-conversions.cc', + '../test/cctest/test-cpu-profiler.cc', + '../test/cctest/test-date.cc', + '../test/cctest/test-debug.cc', + '../test/cctest/test-decls.cc', + '../test/cctest/test-deoptimization.cc', + '../test/cctest/test-dictionary.cc', + '../test/cctest/test-diy-fp.cc', + '../test/cctest/test-double.cc', + '../test/cctest/test-dtoa.cc', + '../test/cctest/test-elements-kind.cc', + '../test/cctest/test-fast-dtoa.cc', + '../test/cctest/test-feedback-vector.cc', + '../test/cctest/test-feedback-vector.h', + '../test/cctest/test-field-type-tracking.cc', + '../test/cctest/test-fixed-dtoa.cc', + '../test/cctest/test-flags.cc', + '../test/cctest/test-func-name-inference.cc', + '../test/cctest/test-global-handles.cc', + '../test/cctest/test-global-object.cc', + '../test/cctest/test-hashcode.cc', + '../test/cctest/test-hashmap.cc', + '../test/cctest/test-heap-profiler.cc', + '../test/cctest/test-identity-map.cc', + '../test/cctest/test-intl.cc', + '../test/cctest/test-inobject-slack-tracking.cc', + '../test/cctest/test-isolate-independent-builtins.cc', + '../test/cctest/test-liveedit.cc', + '../test/cctest/test-lockers.cc', + '../test/cctest/test-log.cc', + '../test/cctest/test-managed.cc', + '../test/cctest/test-mementos.cc', + '../test/cctest/test-modules.cc', + '../test/cctest/test-object.cc', + '../test/cctest/test-orderedhashtable.cc', + '../test/cctest/test-parsing.cc', + '../test/cctest/test-platform.cc', + '../test/cctest/test-profile-generator.cc', + '../test/cctest/test-random-number-generator.cc', + '../test/cctest/test-regexp.cc', + '../test/cctest/test-representation.cc', + '../test/cctest/test-sampler-api.cc', + '../test/cctest/test-serialize.cc', + '../test/cctest/test-strings.cc', + '../test/cctest/test-symbols.cc', + '../test/cctest/test-strtod.cc', + '../test/cctest/test-thread-termination.cc', + '../test/cctest/test-threads.cc', + '../test/cctest/test-trace-event.cc', + '../test/cctest/test-traced-value.cc', + '../test/cctest/test-transitions.cc', + '../test/cctest/test-transitions.h', + '../test/cctest/test-typedarrays.cc', + '../test/cctest/test-types.cc', + '../test/cctest/test-unbound-queue.cc', + '../test/cctest/test-unboxed-doubles.cc', + '../test/cctest/test-unscopables-hidden-prototype.cc', + '../test/cctest/test-usecounters.cc', + '../test/cctest/test-utils.cc', + '../test/cctest/test-version.cc', + '../test/cctest/test-weakmaps.cc', + '../test/cctest/test-weaksets.cc', + '../test/cctest/trace-extension.cc', + '../test/cctest/trace-extension.h', + '../test/cctest/types-fuzz.h', + '../test/cctest/unicode-helpers.h', + '../test/cctest/wasm/test-c-wasm-entry.cc', + '../test/cctest/wasm/test-streaming-compilation.cc', + '../test/cctest/wasm/test-run-wasm.cc', + '../test/cctest/wasm/test-run-wasm-64.cc', + '../test/cctest/wasm/test-run-wasm-asmjs.cc', + '../test/cctest/wasm/test-run-wasm-atomics.cc', + '../test/cctest/wasm/test-run-wasm-interpreter.cc', + '../test/cctest/wasm/test-run-wasm-js.cc', + '../test/cctest/wasm/test-run-wasm-module.cc', + '../test/cctest/wasm/test-run-wasm-relocation.cc', + '../test/cctest/wasm/test-run-wasm-sign-extension.cc', + '../test/cctest/wasm/test-run-wasm-simd.cc', + '../test/cctest/wasm/test-wasm-breakpoints.cc', + "../test/cctest/wasm/test-wasm-codegen.cc", + '../test/cctest/wasm/test-wasm-interpreter-entry.cc', + '../test/cctest/wasm/test-wasm-stack.cc', + '../test/cctest/wasm/test-wasm-trap-position.cc', + '../test/cctest/wasm/wasm-run-utils.cc', + '../test/cctest/wasm/wasm-run-utils.h', + ], + 'cctest_sources_ia32': [ + '../test/cctest/test-assembler-ia32.cc', + '../test/cctest/test-code-stubs.cc', + '../test/cctest/test-code-stubs.h', + '../test/cctest/test-code-stubs-ia32.cc', + '../test/cctest/test-disasm-ia32.cc', + '../test/cctest/test-log-stack-tracer.cc', + '../test/cctest/test-run-wasm-relocation-ia32.cc', + ], + 'cctest_sources_x64': [ + '../test/cctest/test-assembler-x64.cc', + '../test/cctest/test-code-stubs.cc', + '../test/cctest/test-code-stubs.h', + '../test/cctest/test-code-stubs-x64.cc', + '../test/cctest/test-disasm-x64.cc', + '../test/cctest/test-macro-assembler-x64.cc', + '../test/cctest/test-log-stack-tracer.cc', + '../test/cctest/test-run-wasm-relocation-x64.cc', + ], + 'cctest_sources_arm': [ + '../test/cctest/assembler-helper-arm.cc', + '../test/cctest/assembler-helper-arm.h', + '../test/cctest/test-assembler-arm.cc', + '../test/cctest/test-code-stubs.cc', + '../test/cctest/test-code-stubs.h', + '../test/cctest/test-code-stubs-arm.cc', + '../test/cctest/test-disasm-arm.cc', + '../test/cctest/test-macro-assembler-arm.cc', + '../test/cctest/test-run-wasm-relocation-arm.cc', + '../test/cctest/test-sync-primitives-arm.cc', + ], + 'cctest_sources_arm64': [ + '../test/cctest/test-utils-arm64.cc', + '../test/cctest/test-utils-arm64.h', + '../test/cctest/test-assembler-arm64.cc', + '../test/cctest/test-code-stubs.cc', + '../test/cctest/test-code-stubs.h', + '../test/cctest/test-code-stubs-arm64.cc', + '../test/cctest/test-disasm-arm64.cc', + '../test/cctest/test-fuzz-arm64.cc', + '../test/cctest/test-javascript-arm64.cc', + '../test/cctest/test-js-arm64-variables.cc', + '../test/cctest/test-run-wasm-relocation-arm64.cc', + '../test/cctest/test-sync-primitives-arm64.cc', + ], + 'cctest_sources_s390': [ + '../test/cctest/test-assembler-s390.cc', + '../test/cctest/test-code-stubs.cc', + '../test/cctest/test-code-stubs.h', + '../test/cctest/test-disasm-s390.cc', + ], + 'cctest_sources_ppc': [ + '../test/cctest/test-assembler-ppc.cc', + '../test/cctest/test-code-stubs.cc', + '../test/cctest/test-code-stubs.h', + '../test/cctest/test-disasm-ppc.cc', + ], + 'cctest_sources_mips': [ + '../test/cctest/test-assembler-mips.cc', + '../test/cctest/test-code-stubs.cc', + '../test/cctest/test-code-stubs.h', + '../test/cctest/test-code-stubs-mips.cc', + '../test/cctest/test-disasm-mips.cc', + '../test/cctest/test-macro-assembler-mips.cc', + ], + 'cctest_sources_mipsel': [ + '../test/cctest/test-assembler-mips.cc', + '../test/cctest/test-code-stubs.cc', + '../test/cctest/test-code-stubs.h', + '../test/cctest/test-code-stubs-mips.cc', + '../test/cctest/test-disasm-mips.cc', + '../test/cctest/test-macro-assembler-mips.cc', + ], + 'cctest_sources_mips64': [ + '../test/cctest/test-assembler-mips64.cc', + '../test/cctest/test-code-stubs.cc', + '../test/cctest/test-code-stubs.h', + '../test/cctest/test-code-stubs-mips64.cc', + '../test/cctest/test-disasm-mips64.cc', + '../test/cctest/test-macro-assembler-mips64.cc', + ], + 'cctest_sources_mips64el': [ + '../test/cctest/test-assembler-mips64.cc', + '../test/cctest/test-code-stubs.cc', + '../test/cctest/test-code-stubs.h', + '../test/cctest/test-code-stubs-mips64.cc', + '../test/cctest/test-disasm-mips64.cc', + '../test/cctest/test-macro-assembler-mips64.cc', + ], + }, + 'includes': ['toolchain.gypi', 'features.gypi'], + 'targets': [ + { + 'target_name': 'cctest', + 'type': 'executable', + 'dependencies': [ + 'resources', + 'v8.gyp:v8_libbase', + 'v8.gyp:v8_libplatform', + ], + 'include_dirs': [ + '..', + ], + 'sources': [ + '../test/common/wasm/flag-utils.h', + '../test/common/wasm/test-signatures.h', + '../test/common/wasm/wasm-macro-gen.h', + '../test/common/wasm/wasm-module-runner.cc', + '../test/common/wasm/wasm-module-runner.h', + '<@(cctest_sources)', + '<(generated_file)', + ], + 'conditions': [ + ['v8_target_arch=="ia32"', { + 'sources': [ + '<@(cctest_sources_ia32)', + ], + }], + ['v8_target_arch=="x64"', { + 'sources': [ + '<@(cctest_sources_x64)', + ], + }], + ['v8_target_arch=="arm"', { + 'sources': [ + '<@(cctest_sources_arm)', + ], + }], + ['v8_target_arch=="arm64"', { + 'sources': [ + '<@(cctest_sources_arm64)', + ], + }], + ['v8_target_arch=="s390"', { + 'sources': [ + '<@(cctest_sources_s390)', + ], + }], + ['v8_target_arch=="s390x"', { + 'sources': [ + '<@(cctest_sources_s390)', + ], + }], + ['v8_target_arch=="ppc"', { + 'sources': [ + '<@(cctest_sources_ppc)', + ], + }], + ['v8_target_arch=="ppc64"', { + 'sources': [ + '<@(cctest_sources_ppc)', + ], + }], + ['v8_target_arch=="mips"', { + 'sources': [ + '<@(cctest_sources_mips)', + ], + }], + ['v8_target_arch=="mipsel"', { + 'sources': [ + '<@(cctest_sources_mipsel)', + ], + }], + ['v8_target_arch=="mips64"', { + 'sources': [ + '<@(cctest_sources_mips64)', + ], + }], + ['v8_target_arch=="mips64el"', { + 'sources': [ + '<@(cctest_sources_mips64el)', + ], + }], + [ 'OS=="win"', { + 'msvs_settings': { + 'VCCLCompilerTool': { + # MSVS wants this for gay-{precision,shortest}.cc. + 'AdditionalOptions': ['/bigobj'], + }, + }, + }], + ['v8_target_arch=="ppc" or v8_target_arch=="ppc64" \ + or v8_target_arch=="arm" or v8_target_arch=="arm64" \ + or v8_target_arch=="s390" or v8_target_arch=="s390x" \ + or v8_target_arch=="mips" or v8_target_arch=="mips64" \ + or v8_target_arch=="mipsel" or v8_target_arch=="mips64el"', { + # disable fmadd/fmsub so that expected results match generated code in + # RunFloat64MulAndFloat64Add1 and friends. + 'cflags': ['-ffp-contract=off'], + }], + ['OS=="aix"', { + 'ldflags': [ '-Wl,-bbigtoc' ], + }], + ['component=="shared_library"', { + # cctest can't be built against a shared library, so we need to + # depend on the underlying static target in that case. + 'dependencies': ['v8.gyp:v8_maybe_snapshot'], + 'defines': [ 'BUILDING_V8_SHARED', ] + }, { + 'dependencies': ['v8.gyp:v8'], + }], + ['v8_use_snapshot=="true"', { + 'dependencies': ['v8.gyp:v8_initializers'], + }], + ], + }, + { + 'target_name': 'resources', + 'type': 'none', + 'variables': { + 'file_list': [ + '../tools/splaytree.js', + '../tools/codemap.js', + '../tools/csvparser.js', + '../tools/consarray.js', + '../tools/profile.js', + '../tools/profile_view.js', + '../tools/arguments.js', + '../tools/logreader.js', + '../test/cctest/log-eq-of-logging-and-traversal.js', + ], + }, + 'actions': [ + { + 'action_name': 'js2c', + 'inputs': [ + '../tools/js2c.py', + '<@(file_list)', + ], + 'outputs': [ + '<(generated_file)', + ], + 'action': [ + 'python', + '../tools/js2c.py', + '<@(_outputs)', + 'TEST', # type + '<@(file_list)', + ], + } + ], + }, + { + 'target_name': 'generate-bytecode-expectations', + 'type': 'executable', + 'dependencies': [ + 'v8.gyp:v8', + 'v8.gyp:v8_libbase', + 'v8.gyp:v8_libplatform', + ], + 'include_dirs+': [ + '..', + ], + 'sources': [ + '../test/cctest/interpreter/bytecode-expectations-printer.cc', + '../test/cctest/interpreter/bytecode-expectations-printer.h', + '../test/cctest/interpreter/generate-bytecode-expectations.cc', + ], + }, + ], +} diff --git a/deps/v8/gypfiles/coverage_wrapper.py b/deps/v8/gypfiles/coverage_wrapper.py old mode 100755 new mode 100644 diff --git a/deps/v8/src/d8.gyp b/deps/v8/gypfiles/d8.gyp similarity index 52% rename from deps/v8/src/d8.gyp rename to deps/v8/gypfiles/d8.gyp index e6a40212cd7236..f593a2b044ee4a 100644 --- a/deps/v8/src/d8.gyp +++ b/deps/v8/gypfiles/d8.gyp @@ -1,29 +1,6 @@ -# Copyright 2012 the V8 project authors. All rights reserved. -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following -# disclaimer in the documentation and/or other materials provided -# with the distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# Copyright 2018 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. { 'variables': { @@ -32,7 +9,7 @@ 'v8_enable_vtunejit%': 0, 'v8_enable_i18n_support%': 1, }, - 'includes': ['../gypfiles/toolchain.gypi', '../gypfiles/features.gypi'], + 'includes': ['toolchain.gypi', 'features.gypi'], 'targets': [ { 'target_name': 'd8', @@ -48,10 +25,10 @@ '<(DEPTH)', ], 'sources': [ - 'd8.h', - 'd8.cc', - 'd8-console.h', - 'd8-console.cc', + '../src/d8.h', + '../src/d8.cc', + '../src/d8-console.h', + '../src/d8-console.cc', '<(SHARED_INTERMEDIATE_DIR)/d8-js.cc', ], 'conditions': [ @@ -68,10 +45,10 @@ ['(OS=="linux" or OS=="mac" or OS=="freebsd" or OS=="netbsd" \ or OS=="openbsd" or OS=="solaris" or OS=="android" \ or OS=="qnx" or OS=="aix")', { - 'sources': [ 'd8-posix.cc', ] + 'sources': [ '../src/d8-posix.cc', ] }], [ 'OS=="win"', { - 'sources': [ 'd8-windows.cc', ] + 'sources': [ '../src/d8-windows.cc', ] }], [ 'component!="shared_library"', { 'conditions': [ @@ -86,7 +63,7 @@ }], ['v8_enable_vtunejit==1', { 'dependencies': [ - '../src/third_party/vtune/v8vtune.gyp:v8_vtune', + 'v8vtune.gyp:v8_vtune', ], }], ['v8_enable_i18n_support==1', { @@ -107,8 +84,8 @@ 'type': 'none', 'variables': { 'js_files': [ - 'd8.js', - 'js/macros.py', + '../src/d8.js', + '../src/js/macros.py', ], }, 'conditions': [ @@ -139,23 +116,4 @@ ], }, ], - 'conditions': [ - ['test_isolation_mode != "noop"', { - 'targets': [ - { - 'target_name': 'd8_run', - 'type': 'none', - 'dependencies': [ - 'd8', - ], - 'includes': [ - '../gypfiles/isolate.gypi', - ], - 'sources': [ - 'd8.isolate', - ], - }, - ], - }], - ], } diff --git a/deps/v8/gypfiles/features.gypi b/deps/v8/gypfiles/features.gypi index 8c99b4f0866ce0..69ff763be04ab5 100644 --- a/deps/v8/gypfiles/features.gypi +++ b/deps/v8/gypfiles/features.gypi @@ -87,6 +87,9 @@ # Enable concurrent marking. 'v8_enable_concurrent_marking%': 1, + # Enables various testing features. + 'v8_enable_test_features%': 0, + # Controls the threshold for on-heap/off-heap Typed Arrays. 'v8_typed_array_max_size_in_heap%': 64, @@ -119,6 +122,9 @@ ['v8_trace_maps==1', { 'defines': ['V8_TRACE_MAPS',], }], + ['v8_enable_test_features==1', { + 'defines': ['V8_ENABLE_ALLOCATION_TIMEOUT', 'V8_ENABLE_FORCE_SLOW_PATH'], + }], ['v8_enable_verify_predictable==1', { 'defines': ['VERIFY_PREDICTABLE',], }], @@ -164,7 +170,7 @@ }, # Debug 'Release': { 'variables': { - 'v8_enable_handle_zapping%': 0, + 'v8_enable_handle_zapping%': 1, }, 'conditions': [ ['v8_enable_handle_zapping==1', { diff --git a/deps/v8/test/fuzzer/fuzzer.gyp b/deps/v8/gypfiles/fuzzer.gyp similarity index 55% rename from deps/v8/test/fuzzer/fuzzer.gyp rename to deps/v8/gypfiles/fuzzer.gyp index 0c54211290ea36..f65b7dc6d0fb25 100644 --- a/deps/v8/test/fuzzer/fuzzer.gyp +++ b/deps/v8/gypfiles/fuzzer.gyp @@ -6,7 +6,7 @@ 'variables': { 'v8_code': 1, }, - 'includes': ['../../gypfiles/toolchain.gypi', '../../gypfiles/features.gypi'], + 'includes': ['toolchain.gypi', 'features.gypi'], 'targets': [ { 'target_name': 'v8_simple_json_fuzzer', @@ -15,24 +15,24 @@ 'json_fuzzer_lib', ], 'include_dirs': [ - '../..', + '..', ], 'sources': [ - 'fuzzer.cc', + '../test/fuzzer/fuzzer.cc', ], }, { 'target_name': 'json_fuzzer_lib', 'type': 'static_library', 'dependencies': [ - '../../src/v8.gyp:v8_libplatform', + 'v8.gyp:v8_libplatform', 'fuzzer_support', ], 'include_dirs': [ - '../..', + '..', ], - 'sources': [ ### gcmole(all) ### - 'json.cc', + 'sources': [ + '../test/fuzzer/json.cc', ], }, { @@ -42,175 +42,171 @@ 'parser_fuzzer_lib', ], 'include_dirs': [ - '../..', + '..', ], 'sources': [ - 'fuzzer.cc', + '../test/fuzzer/fuzzer.cc', ], }, { 'target_name': 'parser_fuzzer_lib', 'type': 'static_library', 'dependencies': [ - '../../src/v8.gyp:v8_libplatform', + 'v8.gyp:v8_libplatform', 'fuzzer_support', ], 'include_dirs': [ - '../..', + '..', ], - 'sources': [ ### gcmole(all) ### - 'parser.cc', + 'sources': [ + '../test/fuzzer/parser.cc', ], }, { - 'target_name': 'v8_simple_regexp_fuzzer', + 'target_name': 'v8_simple_regexp_builtins_fuzzer', 'type': 'executable', 'dependencies': [ - 'regexp_fuzzer_lib', + 'regexp_builtins_fuzzer_lib', ], 'include_dirs': [ - '../..', + '..', ], 'sources': [ - 'fuzzer.cc', + '../test/fuzzer/fuzzer.cc', ], }, { - 'target_name': 'regexp_fuzzer_lib', + 'target_name': 'regexp_builtins_fuzzer_lib', 'type': 'static_library', 'dependencies': [ - '../../src/v8.gyp:v8_libplatform', + 'v8.gyp:v8_libplatform', 'fuzzer_support', ], 'include_dirs': [ - '../..', + '..', ], - 'sources': [ ### gcmole(all) ### - 'regexp.cc', + 'sources': [ + '../test/fuzzer/regexp-builtins.cc', + '../test/fuzzer/regexp_builtins/mjsunit.js.h', ], }, { - 'target_name': 'v8_simple_multi_return_fuzzer', + 'target_name': 'v8_simple_regexp_fuzzer', 'type': 'executable', 'dependencies': [ - 'multi_return_fuzzer_lib', + 'regexp_fuzzer_lib', ], 'include_dirs': [ - '../..', + '..', ], 'sources': [ - 'fuzzer.cc', + '../test/fuzzer/fuzzer.cc', ], }, { - 'target_name': 'multi_return_fuzzer_lib', + 'target_name': 'regexp_fuzzer_lib', 'type': 'static_library', 'dependencies': [ - '../../src/v8.gyp:v8_libplatform', + 'v8.gyp:v8_libplatform', 'fuzzer_support', ], 'include_dirs': [ - '../..', + '..', ], - 'sources': [ ### gcmole(all) ### - '../compiler/c-signature.h', - '../compiler/call-helper.h', - '../compiler/raw-machine-assembler-tester.h', - 'multi-return.cc', + 'sources': [ + '../test/fuzzer/regexp.cc', ], }, { - 'target_name': 'v8_simple_wasm_fuzzer', + 'target_name': 'v8_simple_multi_return_fuzzer', 'type': 'executable', 'dependencies': [ - 'wasm_fuzzer_lib', + 'multi_return_fuzzer_lib', ], 'include_dirs': [ - '../..', + '..', ], 'sources': [ - 'fuzzer.cc', + '../test/fuzzer/fuzzer.cc', ], }, { - 'target_name': 'wasm_fuzzer_lib', + 'target_name': 'multi_return_fuzzer_lib', 'type': 'static_library', 'dependencies': [ - '../../src/v8.gyp:v8_libplatform', + 'v8.gyp:v8_libplatform', 'fuzzer_support', ], 'include_dirs': [ - '../..', + '..', ], - 'sources': [ ### gcmole(all) ### - 'wasm.cc', - '../common/wasm/wasm-module-runner.cc', - '../common/wasm/wasm-module-runner.h', - 'wasm-fuzzer-common.cc', - 'wasm-fuzzer-common.h', + 'sources': [ + '../test/cctest/compiler/c-signature.h', + '../test/cctest/compiler/call-helper.h', + '../test/cctest/compiler/raw-machine-assembler-tester.h', + '../test/fuzzer/multi-return.cc', ], }, { - 'target_name': 'v8_simple_wasm_async_fuzzer', + 'target_name': 'v8_simple_wasm_fuzzer', 'type': 'executable', 'dependencies': [ - 'wasm_async_fuzzer_lib', + 'wasm_fuzzer_lib', ], 'include_dirs': [ - '../..', + '..', ], 'sources': [ - 'fuzzer.cc', + '../test/fuzzer/fuzzer.cc', ], }, { - 'target_name': 'wasm_async_fuzzer_lib', + 'target_name': 'wasm_fuzzer_lib', 'type': 'static_library', 'dependencies': [ - '../../src/v8.gyp:v8_libplatform', + 'v8.gyp:v8_libplatform', 'fuzzer_support', ], 'include_dirs': [ - '../..', + '..', ], - 'sources': [ ### gcmole(all) ### - 'wasm-async.cc', - '../common/wasm/wasm-module-runner.cc', - '../common/wasm/wasm-module-runner.h', - 'wasm-fuzzer-common.cc', - 'wasm-fuzzer-common.h', + 'sources': [ + '../test/fuzzer/wasm.cc', + '../test/common/wasm/wasm-module-runner.cc', + '../test/common/wasm/wasm-module-runner.h', + '../test/fuzzer/wasm-fuzzer-common.cc', + '../test/fuzzer/wasm-fuzzer-common.h', ], }, { - 'target_name': 'v8_simple_wasm_call_fuzzer', + 'target_name': 'v8_simple_wasm_async_fuzzer', 'type': 'executable', 'dependencies': [ - 'wasm_call_fuzzer_lib', + 'wasm_async_fuzzer_lib', ], 'include_dirs': [ - '../..', + '..', ], 'sources': [ - 'fuzzer.cc', + '../test/fuzzer/fuzzer.cc', ], }, { - 'target_name': 'wasm_call_fuzzer_lib', + 'target_name': 'wasm_async_fuzzer_lib', 'type': 'static_library', 'dependencies': [ - '../../src/v8.gyp:v8_libplatform', + 'v8.gyp:v8_libplatform', 'fuzzer_support', ], 'include_dirs': [ - '../..', + '..', ], - 'sources': [ ### gcmole(all) ### - 'wasm-call.cc', - '../common/wasm/test-signatures.h', - '../common/wasm/wasm-module-runner.cc', - '../common/wasm/wasm-module-runner.h', - 'wasm-fuzzer-common.cc', - 'wasm-fuzzer-common.h', + 'sources': [ + '../test/fuzzer/wasm-async.cc', + '../test/common/wasm/wasm-module-runner.cc', + '../test/common/wasm/wasm-module-runner.h', + '../test/fuzzer/wasm-fuzzer-common.cc', + '../test/fuzzer/wasm-fuzzer-common.h', ], }, { @@ -220,29 +216,29 @@ 'wasm_code_fuzzer_lib', ], 'include_dirs': [ - '../..', + '..', ], 'sources': [ - 'fuzzer.cc', + '../test/fuzzer/fuzzer.cc', ], }, { 'target_name': 'wasm_code_fuzzer_lib', 'type': 'static_library', 'dependencies': [ - '../../src/v8.gyp:v8_libplatform', + 'v8.gyp:v8_libplatform', 'fuzzer_support', ], 'include_dirs': [ - '../..', + '..', ], - 'sources': [ ### gcmole(all) ### - 'wasm-code.cc', - '../common/wasm/test-signatures.h', - '../common/wasm/wasm-module-runner.cc', - '../common/wasm/wasm-module-runner.h', - 'wasm-fuzzer-common.cc', - 'wasm-fuzzer-common.h', + 'sources': [ + '../test/fuzzer/wasm-code.cc', + '../test/common/wasm/test-signatures.h', + '../test/common/wasm/wasm-module-runner.cc', + '../test/common/wasm/wasm-module-runner.h', + '../test/fuzzer/wasm-fuzzer-common.cc', + '../test/fuzzer/wasm-fuzzer-common.h', ], }, { @@ -252,29 +248,29 @@ 'wasm_compile_fuzzer_lib', ], 'include_dirs': [ - '../..', + '..', ], 'sources': [ - 'fuzzer.cc', + '../test/fuzzer/fuzzer.cc', ], }, { 'target_name': 'wasm_compile_fuzzer_lib', 'type': 'static_library', 'dependencies': [ - '../../src/v8.gyp:v8_libplatform', + 'v8.gyp:v8_libplatform', 'fuzzer_support', ], 'include_dirs': [ - '../..', + '..', ], - 'sources': [ ### gcmole(all) ### - 'wasm-compile.cc', - '../common/wasm/test-signatures.h', - '../common/wasm/wasm-module-runner.cc', - '../common/wasm/wasm-module-runner.h', - 'wasm-fuzzer-common.cc', - 'wasm-fuzzer-common.h', + 'sources': [ + '../test/fuzzer/wasm-compile.cc', + '../test/common/wasm/test-signatures.h', + '../test/common/wasm/wasm-module-runner.cc', + '../test/common/wasm/wasm-module-runner.h', + '../test/fuzzer/wasm-fuzzer-common.cc', + '../test/fuzzer/wasm-fuzzer-common.h', ], }, { @@ -284,28 +280,28 @@ 'wasm_data_section_fuzzer_lib', ], 'include_dirs': [ - '../..', + '..', ], 'sources': [ - 'fuzzer.cc', + '../test/fuzzer/fuzzer.cc', ], }, { 'target_name': 'wasm_data_section_fuzzer_lib', 'type': 'static_library', 'dependencies': [ - '../../src/v8.gyp:v8_libplatform', + 'v8.gyp:v8_libplatform', 'fuzzer_support', ], 'include_dirs': [ - '../..', + '..', ], - 'sources': [ ### gcmole(all) ### - 'wasm-data-section.cc', - '../common/wasm/wasm-module-runner.cc', - '../common/wasm/wasm-module-runner.h', - 'wasm-fuzzer-common.cc', - 'wasm-fuzzer-common.h', + 'sources': [ + '../test/fuzzer/wasm-data-section.cc', + '../test/common/wasm/wasm-module-runner.cc', + '../test/common/wasm/wasm-module-runner.h', + '../test/fuzzer/wasm-fuzzer-common.cc', + '../test/fuzzer/wasm-fuzzer-common.h', ], }, { @@ -315,28 +311,28 @@ 'wasm_function_sigs_section_fuzzer_lib', ], 'include_dirs': [ - '../..', + '..', ], 'sources': [ - 'fuzzer.cc', + '../test/fuzzer/fuzzer.cc', ], }, { 'target_name': 'wasm_function_sigs_section_fuzzer_lib', 'type': 'static_library', 'dependencies': [ - '../../src/v8.gyp:v8_libplatform', + 'v8.gyp:v8_libplatform', 'fuzzer_support', ], 'include_dirs': [ - '../..', + '..', ], - 'sources': [ ### gcmole(all) ### - 'wasm-function-sigs-section.cc', - '../common/wasm/wasm-module-runner.cc', - '../common/wasm/wasm-module-runner.h', - 'wasm-fuzzer-common.cc', - 'wasm-fuzzer-common.h', + 'sources': [ + '../test/fuzzer/wasm-function-sigs-section.cc', + '../test/common/wasm/wasm-module-runner.cc', + '../test/common/wasm/wasm-module-runner.h', + '../test/fuzzer/wasm-fuzzer-common.cc', + '../test/fuzzer/wasm-fuzzer-common.h', ], }, { @@ -346,28 +342,28 @@ 'wasm_globals_section_fuzzer_lib', ], 'include_dirs': [ - '../..', + '..', ], 'sources': [ - 'fuzzer.cc', + '../test/fuzzer/fuzzer.cc', ], }, { 'target_name': 'wasm_globals_section_fuzzer_lib', 'type': 'static_library', 'dependencies': [ - '../../src/v8.gyp:v8_libplatform', + 'v8.gyp:v8_libplatform', 'fuzzer_support', ], 'include_dirs': [ - '../..', + '..', ], - 'sources': [ ### gcmole(all) ### - 'wasm-globals-section.cc', - '../common/wasm/wasm-module-runner.cc', - '../common/wasm/wasm-module-runner.h', - 'wasm-fuzzer-common.cc', - 'wasm-fuzzer-common.h', + 'sources': [ + '../test/fuzzer/wasm-globals-section.cc', + '../test/common/wasm/wasm-module-runner.cc', + '../test/common/wasm/wasm-module-runner.h', + '../test/fuzzer/wasm-fuzzer-common.cc', + '../test/fuzzer/wasm-fuzzer-common.h', ], }, { @@ -377,28 +373,28 @@ 'wasm_imports_section_fuzzer_lib', ], 'include_dirs': [ - '../..', + '..', ], 'sources': [ - 'fuzzer.cc', + '../test/fuzzer/fuzzer.cc', ], }, { 'target_name': 'wasm_imports_section_fuzzer_lib', 'type': 'static_library', 'dependencies': [ - '../../src/v8.gyp:v8_libplatform', + 'v8.gyp:v8_libplatform', 'fuzzer_support', ], 'include_dirs': [ - '../..', + '..', ], - 'sources': [ ### gcmole(all) ### - 'wasm-imports-section.cc', - '../common/wasm/wasm-module-runner.cc', - '../common/wasm/wasm-module-runner.h', - 'wasm-fuzzer-common.cc', - 'wasm-fuzzer-common.h', + 'sources': [ + '../test/fuzzer/wasm-imports-section.cc', + '../test/common/wasm/wasm-module-runner.cc', + '../test/common/wasm/wasm-module-runner.h', + '../test/fuzzer/wasm-fuzzer-common.cc', + '../test/fuzzer/wasm-fuzzer-common.h', ], }, { @@ -408,28 +404,28 @@ 'wasm_memory_section_fuzzer_lib', ], 'include_dirs': [ - '../..', + '..', ], 'sources': [ - 'fuzzer.cc', + '../test/fuzzer/fuzzer.cc', ], }, { 'target_name': 'wasm_memory_section_fuzzer_lib', 'type': 'static_library', 'dependencies': [ - '../../src/v8.gyp:v8_libplatform', + 'v8.gyp:v8_libplatform', 'fuzzer_support', ], 'include_dirs': [ - '../..', + '..', ], - 'sources': [ ### gcmole(all) ### - 'wasm-memory-section.cc', - '../common/wasm/wasm-module-runner.cc', - '../common/wasm/wasm-module-runner.h', - 'wasm-fuzzer-common.cc', - 'wasm-fuzzer-common.h', + 'sources': [ + '../test/fuzzer/wasm-memory-section.cc', + '../test/common/wasm/wasm-module-runner.cc', + '../test/common/wasm/wasm-module-runner.h', + '../test/fuzzer/wasm-fuzzer-common.cc', + '../test/fuzzer/wasm-fuzzer-common.h', ], }, { @@ -439,28 +435,28 @@ 'wasm_names_section_fuzzer_lib', ], 'include_dirs': [ - '../..', + '..', ], 'sources': [ - 'fuzzer.cc', + '../test/fuzzer/fuzzer.cc', ], }, { 'target_name': 'wasm_names_section_fuzzer_lib', 'type': 'static_library', 'dependencies': [ - '../../src/v8.gyp:v8_libplatform', + 'v8.gyp:v8_libplatform', 'fuzzer_support', ], 'include_dirs': [ - '../..', + '..', ], - 'sources': [ ### gcmole(all) ### - 'wasm-names-section.cc', - '../common/wasm/wasm-module-runner.cc', - '../common/wasm/wasm-module-runner.h', - 'wasm-fuzzer-common.cc', - 'wasm-fuzzer-common.h', + 'sources': [ + '../test/fuzzer/wasm-names-section.cc', + '../test/common/wasm/wasm-module-runner.cc', + '../test/common/wasm/wasm-module-runner.h', + '../test/fuzzer/wasm-fuzzer-common.cc', + '../test/fuzzer/wasm-fuzzer-common.h', ], }, { @@ -470,44 +466,44 @@ 'wasm_types_section_fuzzer_lib', ], 'include_dirs': [ - '../..', + '..', ], 'sources': [ - 'fuzzer.cc', + '../test/fuzzer/fuzzer.cc', ], }, { 'target_name': 'wasm_types_section_fuzzer_lib', 'type': 'static_library', 'dependencies': [ - '../../src/v8.gyp:v8_libplatform', + 'v8.gyp:v8_libplatform', 'fuzzer_support', ], 'include_dirs': [ - '../..', + '..', ], - 'sources': [ ### gcmole(all) ### - 'wasm-types-section.cc', - '../common/wasm/wasm-module-runner.cc', - '../common/wasm/wasm-module-runner.h', - 'wasm-fuzzer-common.cc', - 'wasm-fuzzer-common.h', + 'sources': [ + '../test/fuzzer/wasm-types-section.cc', + '../test/common/wasm/wasm-module-runner.cc', + '../test/common/wasm/wasm-module-runner.h', + '../test/fuzzer/wasm-fuzzer-common.cc', + '../test/fuzzer/wasm-fuzzer-common.h', ], }, { 'target_name': 'fuzzer_support', 'type': 'static_library', 'dependencies': [ - '../../src/v8.gyp:v8', - '../../src/v8.gyp:v8_libbase', - '../../src/v8.gyp:v8_libplatform', + 'v8.gyp:v8', + 'v8.gyp:v8_libbase', + 'v8.gyp:v8_libplatform', ], 'include_dirs': [ - '../..', + '..', ], - 'sources': [ ### gcmole(all) ### - 'fuzzer-support.cc', - 'fuzzer-support.h', + 'sources': [ + '../test/fuzzer/fuzzer-support.cc', + '../test/fuzzer/fuzzer-support.h', ], 'conditions': [ ['v8_enable_i18n_support==1', { @@ -519,26 +515,4 @@ ], }, ], - 'conditions': [ - ['test_isolation_mode != "noop"', { - 'targets': [ - { - 'target_name': 'fuzzer_run', - 'type': 'none', - 'dependencies': [ - 'v8_simple_json_fuzzer', - 'v8_simple_parser_fuzzer', - 'v8_simple_regexp_fuzzer', - 'v8_simple_wasm_fuzzer', - ], - 'includes': [ - '../../gypfiles/isolate.gypi', - ], - 'sources': [ - 'fuzzer.isolate', - ], - }, - ], - }], - ], } diff --git a/deps/v8/gypfiles/gmock.gyp b/deps/v8/gypfiles/gmock.gyp new file mode 100644 index 00000000000000..a80387298b1503 --- /dev/null +++ b/deps/v8/gypfiles/gmock.gyp @@ -0,0 +1,72 @@ +# Copyright 2014 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. + +{ + 'targets': [ + { + 'target_name': 'gmock', + 'type': 'static_library', + 'dependencies': [ + 'gtest.gyp:gtest', + ], + 'sources': [ + # Sources based on files in r173 of gmock. + '../testing/gmock/include/gmock/gmock-actions.h', + '../testing/gmock/include/gmock/gmock-cardinalities.h', + '../testing/gmock/include/gmock/gmock-generated-actions.h', + '../testing/gmock/include/gmock/gmock-generated-function-mockers.h', + '../testing/gmock/include/gmock/gmock-generated-matchers.h', + '../testing/gmock/include/gmock/gmock-generated-nice-strict.h', + '../testing/gmock/include/gmock/gmock-matchers.h', + '../testing/gmock/include/gmock/gmock-spec-builders.h', + '../testing/gmock/include/gmock/gmock.h', + '../testing/gmock/include/gmock/internal/gmock-generated-internal-utils.h', + '../testing/gmock/include/gmock/internal/gmock-internal-utils.h', + '../testing/gmock/include/gmock/internal/gmock-port.h', + '../testing/gmock/src/gmock-all.cc', + '../testing/gmock/src/gmock-cardinalities.cc', + '../testing/gmock/src/gmock-internal-utils.cc', + '../testing/gmock/src/gmock-matchers.cc', + '../testing/gmock/src/gmock-spec-builders.cc', + '../testing/gmock/src/gmock.cc', + '../testing/gmock-support.h', # gMock helpers + '../testing/gmock_custom/gmock/internal/custom/gmock-port.h', + ], + 'sources!': [ + '../testing/gmock/src/gmock-all.cc', # Not needed by our build. + ], + 'include_dirs': [ + '../testing/gmock_custom', + '../testing/gmock', + '../testing/gmock/include', + ], + 'all_dependent_settings': { + 'include_dirs': [ + '../testing/gmock_custom', + '../testing/gmock/include', # So that gmock headers can find themselves. + ], + }, + 'export_dependent_settings': [ + 'gtest.gyp:gtest', + ], + 'conditions': [ + ['want_separate_host_toolset==1', { + 'toolsets': ['host', 'target'], + }, { + 'toolsets': ['target'], + }], + ], + }, + { + 'target_name': 'gmock_main', + 'type': 'static_library', + 'dependencies': [ + 'gmock', + ], + 'sources': [ + '../testing/gmock/src/gmock_main.cc', + ], + }, + ], +} diff --git a/deps/v8/testing/gtest.gyp b/deps/v8/gypfiles/gtest.gyp similarity index 50% rename from deps/v8/testing/gtest.gyp rename to deps/v8/gypfiles/gtest.gyp index a94ee884fe9f51..82ae105293fbfc 100644 --- a/deps/v8/testing/gtest.gyp +++ b/deps/v8/gypfiles/gtest.gyp @@ -9,42 +9,42 @@ 'toolsets': ['host', 'target'], 'type': 'static_library', 'sources': [ - 'gtest/include/gtest/gtest-death-test.h', - 'gtest/include/gtest/gtest-message.h', - 'gtest/include/gtest/gtest-param-test.h', - 'gtest/include/gtest/gtest-printers.h', - 'gtest/include/gtest/gtest-spi.h', - 'gtest/include/gtest/gtest-test-part.h', - 'gtest/include/gtest/gtest-typed-test.h', - 'gtest/include/gtest/gtest.h', - 'gtest/include/gtest/gtest_pred_impl.h', - 'gtest/include/gtest/internal/gtest-death-test-internal.h', - 'gtest/include/gtest/internal/gtest-filepath.h', - 'gtest/include/gtest/internal/gtest-internal.h', - 'gtest/include/gtest/internal/gtest-linked_ptr.h', - 'gtest/include/gtest/internal/gtest-param-util-generated.h', - 'gtest/include/gtest/internal/gtest-param-util.h', - 'gtest/include/gtest/internal/gtest-port.h', - 'gtest/include/gtest/internal/gtest-string.h', - 'gtest/include/gtest/internal/gtest-tuple.h', - 'gtest/include/gtest/internal/gtest-type-util.h', - 'gtest/src/gtest-all.cc', - 'gtest/src/gtest-death-test.cc', - 'gtest/src/gtest-filepath.cc', - 'gtest/src/gtest-internal-inl.h', - 'gtest/src/gtest-port.cc', - 'gtest/src/gtest-printers.cc', - 'gtest/src/gtest-test-part.cc', - 'gtest/src/gtest-typed-test.cc', - 'gtest/src/gtest.cc', - 'gtest-support.h', + '../testing/gtest/include/gtest/gtest-death-test.h', + '../testing/gtest/include/gtest/gtest-message.h', + '../testing/gtest/include/gtest/gtest-param-test.h', + '../testing/gtest/include/gtest/gtest-printers.h', + '../testing/gtest/include/gtest/gtest-spi.h', + '../testing/gtest/include/gtest/gtest-test-part.h', + '../testing/gtest/include/gtest/gtest-typed-test.h', + '../testing/gtest/include/gtest/gtest.h', + '../testing/gtest/include/gtest/gtest_pred_impl.h', + '../testing/gtest/include/gtest/internal/gtest-death-test-internal.h', + '../testing/gtest/include/gtest/internal/gtest-filepath.h', + '../testing/gtest/include/gtest/internal/gtest-internal.h', + '../testing/gtest/include/gtest/internal/gtest-linked_ptr.h', + '../testing/gtest/include/gtest/internal/gtest-param-util-generated.h', + '../testing/gtest/include/gtest/internal/gtest-param-util.h', + '../testing/gtest/include/gtest/internal/gtest-port.h', + '../testing/gtest/include/gtest/internal/gtest-string.h', + '../testing/gtest/include/gtest/internal/gtest-tuple.h', + '../testing/gtest/include/gtest/internal/gtest-type-util.h', + '../testing/gtest/src/gtest-all.cc', + '../testing/gtest/src/gtest-death-test.cc', + '../testing/gtest/src/gtest-filepath.cc', + '../testing/gtest/src/gtest-internal-inl.h', + '../testing/gtest/src/gtest-port.cc', + '../testing/gtest/src/gtest-printers.cc', + '../testing/gtest/src/gtest-test-part.cc', + '../testing/gtest/src/gtest-typed-test.cc', + '../testing/gtest/src/gtest.cc', + '../testing/gtest-support.h', ], 'sources!': [ - 'gtest/src/gtest-all.cc', # Not needed by our build. + '../testing/gtest/src/gtest-all.cc', # Not needed by our build. ], 'include_dirs': [ - 'gtest', - 'gtest/include', + '../testing/gtest', + '../testing/gtest/include', ], 'dependencies': [ 'gtest_prod', @@ -78,7 +78,7 @@ 'UNIT_TEST', ], 'include_dirs': [ - 'gtest/include', # So that gtest headers can find themselves. + '../testing/gtest/include', # So that gtest headers can find themselves. ], 'target_conditions': [ ['_type=="executable"', { @@ -107,7 +107,7 @@ 'gtest', ], 'sources': [ - 'gtest/src/gtest_main.cc', + '../testing/gtest/src/gtest_main.cc', ], }, { @@ -115,7 +115,7 @@ 'toolsets': ['host', 'target'], 'type': 'none', 'sources': [ - 'gtest/include/gtest/gtest_prod.h', + '../testing/gtest/include/gtest/gtest_prod.h', ], }, ], diff --git a/deps/v8/gypfiles/gyp_v8 b/deps/v8/gypfiles/gyp_v8 old mode 100755 new mode 100644 index 5215f513525479..62e13d86e6cc40 --- a/deps/v8/gypfiles/gyp_v8 +++ b/deps/v8/gypfiles/gyp_v8 @@ -48,7 +48,8 @@ import gyp # Add paths so that pymod_do_main(...) can import files. sys.path.insert( 1, os.path.abspath(os.path.join(v8_root, 'tools', 'generate_shim_headers'))) - +sys.path.append( + os.path.abspath(os.path.join(v8_root, 'third_party', 'binutils'))) def GetOutputDirectory(): """Returns the output directory that GYP will use.""" @@ -108,14 +109,19 @@ def run_gyp(args): if __name__ == '__main__': args = sys.argv[1:] - gyp_chromium_no_action = os.environ.get('GYP_CHROMIUM_NO_ACTION', '1') - if gyp_chromium_no_action != '0': - print 'GYP is now disabled by default.\n' - print 'If you really want to run this, set the environment variable ' - print 'GYP_CHROMIUM_NO_ACTION=0.' + gyp_chromium_no_action = os.environ.get('GYP_CHROMIUM_NO_ACTION') + if gyp_chromium_no_action == '1': + print 'Skipping gyp_v8 due to GYP_CHROMIUM_NO_ACTION env var.' sys.exit(0) running_as_hook = '--running-as-hook' + if running_as_hook in args and gyp_chromium_no_action != '0': + print 'GYP is now disabled by default in runhooks.\n' + print 'If you really want to run this, either run ' + print '`python gypfiles/gyp_v8` explicitly by hand ' + print 'or set the environment variable GYP_CHROMIUM_NO_ACTION=0.' + sys.exit(0) + if running_as_hook in args: args.remove(running_as_hook) diff --git a/deps/v8/gypfiles/inspector-test.gyp b/deps/v8/gypfiles/inspector-test.gyp new file mode 100644 index 00000000000000..c8cc5561a4cf79 --- /dev/null +++ b/deps/v8/gypfiles/inspector-test.gyp @@ -0,0 +1,39 @@ +# Copyright 2016 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. + +{ + 'variables': { + 'v8_code': 1, + }, + 'includes': ['toolchain.gypi', 'features.gypi'], + 'targets': [ + { + 'target_name': 'inspector-test', + 'type': 'executable', + 'dependencies': [ + 'v8.gyp:v8_libplatform', + 'v8.gyp:v8_libbase', + 'v8.gyp:v8', + ], + 'include_dirs': [ + '..', + ], + 'sources': [ + '../test/inspector/inspector-test.cc', + '../test/inspector/isolate-data.cc', + '../test/inspector/isolate-data.h', + '../test/inspector/task-runner.cc', + '../test/inspector/task-runner.h', + ], + 'conditions': [ + ['v8_enable_i18n_support==1', { + 'dependencies': [ + '<(icu_gyp_path):icui18n', + '<(icu_gyp_path):icuuc', + ], + }], + ], + }, + ], +} diff --git a/deps/v8/src/inspector/inspector.gyp b/deps/v8/gypfiles/inspector.gyp similarity index 76% rename from deps/v8/src/inspector/inspector.gyp rename to deps/v8/gypfiles/inspector.gyp index 3d59cc089df076..c0b503d9cec51f 100644 --- a/deps/v8/src/inspector/inspector.gyp +++ b/deps/v8/gypfiles/inspector.gyp @@ -4,11 +4,12 @@ { 'variables': { - 'protocol_path': '../../third_party/inspector_protocol', + 'protocol_path': '../third_party/inspector_protocol', + 'inspector_path': '../src/inspector', }, 'includes': [ 'inspector.gypi', - '<(PRODUCT_DIR)/../../../third_party/inspector_protocol/inspector_protocol.gypi', + '../third_party/inspector_protocol/inspector_protocol.gypi', ], 'targets': [ { 'target_name': 'inspector_injected_script', @@ -18,7 +19,7 @@ { 'action_name': 'convert_js_to_cpp_char_array', 'inputs': [ - 'build/xxd.py', + '<(inspector_path)/build/xxd.py', '<(inspector_injected_script_source)', ], 'outputs': [ @@ -26,9 +27,9 @@ ], 'action': [ 'python', - 'build/xxd.py', + '<(inspector_path)/build/xxd.py', 'InjectedScriptSource_js', - 'injected-script-source.js', + '<(inspector_path)/injected-script-source.js', '<@(_outputs)' ], }, @@ -43,7 +44,7 @@ { 'action_name': 'protocol_compatibility', 'inputs': [ - 'js_protocol.json', + '<(inspector_path)/js_protocol.json', ], 'outputs': [ '<@(SHARED_INTERMEDIATE_DIR)/src/js_protocol.stamp', @@ -52,7 +53,7 @@ 'python', '<(protocol_path)/CheckProtocolCompatibility.py', '--stamp', '<@(_outputs)', - 'js_protocol.json', + '<(inspector_path)/js_protocol.json', ], 'message': 'Generating inspector protocol sources from protocol json definition', }, @@ -66,8 +67,8 @@ { 'action_name': 'protocol_generated_sources', 'inputs': [ - 'js_protocol.json', - 'inspector_protocol_config.json', + '<(inspector_path)/js_protocol.json', + '<(inspector_path)/inspector_protocol_config.json', '<@(inspector_protocol_files)', ], 'outputs': [ @@ -76,9 +77,9 @@ 'action': [ 'python', '<(protocol_path)/CodeGenerator.py', - '--jinja_dir', '../../third_party', + '--jinja_dir', '../third_party', '--output_base', '<(SHARED_INTERMEDIATE_DIR)/src/inspector', - '--config', 'inspector_protocol_config.json', + '--config', '<(inspector_path)/inspector_protocol_config.json', ], 'message': 'Generating inspector protocol sources from protocol json', }, diff --git a/deps/v8/gypfiles/inspector.gypi b/deps/v8/gypfiles/inspector.gypi new file mode 100644 index 00000000000000..00cbbfaecb7f28 --- /dev/null +++ b/deps/v8/gypfiles/inspector.gypi @@ -0,0 +1,90 @@ +# Copyright 2016 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. + +{ + 'variables': { + 'inspector_generated_sources': [ + '<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Forward.h', + '<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Protocol.cpp', + '<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Protocol.h', + '<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Console.cpp', + '<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Console.h', + '<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Debugger.cpp', + '<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Debugger.h', + '<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/HeapProfiler.cpp', + '<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/HeapProfiler.h', + '<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Profiler.cpp', + '<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Profiler.h', + '<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Runtime.cpp', + '<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Runtime.h', + '<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Schema.cpp', + '<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Schema.h', + '<(SHARED_INTERMEDIATE_DIR)/include/inspector/Debugger.h', + '<(SHARED_INTERMEDIATE_DIR)/include/inspector/Runtime.h', + '<(SHARED_INTERMEDIATE_DIR)/include/inspector/Schema.h', + ], + + 'inspector_injected_script_source': '../src/inspector/injected-script-source.js', + 'inspector_generated_injected_script': '<(SHARED_INTERMEDIATE_DIR)/src/inspector/injected-script-source.h', + + 'inspector_all_sources': [ + '<@(inspector_generated_sources)', + '<(inspector_generated_injected_script)', + '../include/v8-inspector.h', + '../include/v8-inspector-protocol.h', + '../src/inspector/injected-script.cc', + '../src/inspector/injected-script.h', + '../src/inspector/inspected-context.cc', + '../src/inspector/inspected-context.h', + '../src/inspector/remote-object-id.cc', + '../src/inspector/remote-object-id.h', + '../src/inspector/search-util.cc', + '../src/inspector/search-util.h', + '../src/inspector/string-16.cc', + '../src/inspector/string-16.h', + '../src/inspector/string-util.cc', + '../src/inspector/string-util.h', + '../src/inspector/test-interface.cc', + '../src/inspector/test-interface.h', + '../src/inspector/v8-console.cc', + '../src/inspector/v8-console.h', + '../src/inspector/v8-console-agent-impl.cc', + '../src/inspector/v8-console-agent-impl.h', + '../src/inspector/v8-console-message.cc', + '../src/inspector/v8-console-message.h', + '../src/inspector/v8-debugger.cc', + '../src/inspector/v8-debugger.h', + '../src/inspector/v8-debugger-agent-impl.cc', + '../src/inspector/v8-debugger-agent-impl.h', + '../src/inspector/v8-debugger-script.cc', + '../src/inspector/v8-debugger-script.h', + '../src/inspector/v8-function-call.cc', + '../src/inspector/v8-function-call.h', + '../src/inspector/v8-heap-profiler-agent-impl.cc', + '../src/inspector/v8-heap-profiler-agent-impl.h', + '../src/inspector/v8-injected-script-host.cc', + '../src/inspector/v8-injected-script-host.h', + '../src/inspector/v8-inspector-impl.cc', + '../src/inspector/v8-inspector-impl.h', + '../src/inspector/v8-inspector-session-impl.cc', + '../src/inspector/v8-inspector-session-impl.h', + '../src/inspector/v8-internal-value-type.cc', + '../src/inspector/v8-internal-value-type.h', + '../src/inspector/v8-profiler-agent-impl.cc', + '../src/inspector/v8-profiler-agent-impl.h', + '../src/inspector/v8-regex.cc', + '../src/inspector/v8-regex.h', + '../src/inspector/v8-runtime-agent-impl.cc', + '../src/inspector/v8-runtime-agent-impl.h', + '../src/inspector/v8-schema-agent-impl.cc', + '../src/inspector/v8-schema-agent-impl.h', + '../src/inspector/v8-stack-trace-impl.cc', + '../src/inspector/v8-stack-trace-impl.h', + '../src/inspector/v8-value-utils.cc', + '../src/inspector/v8-value-utils.h', + '../src/inspector/wasm-translation.cc', + '../src/inspector/wasm-translation.h', + ] + } +} diff --git a/deps/v8/gypfiles/isolate.gypi b/deps/v8/gypfiles/isolate.gypi deleted file mode 100644 index 3e85b530e25952..00000000000000 --- a/deps/v8/gypfiles/isolate.gypi +++ /dev/null @@ -1,100 +0,0 @@ -# Copyright 2015 the V8 project authors. All rights reserved. -# Copyright (c) 2012 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. - -# This file is meant to be included into a target to provide a rule -# to "build" .isolate files into a .isolated file. -# -# To use this, create a gyp target with the following form: -# 'conditions': [ -# ['test_isolation_mode != "noop"', { -# 'targets': [ -# { -# 'target_name': 'foo_test_run', -# 'type': 'none', -# 'dependencies': [ -# 'foo_test', -# ], -# 'includes': [ -# '../gypfiles/isolate.gypi', -# ], -# 'sources': [ -# 'foo_test.isolate', -# ], -# }, -# ], -# }], -# ], -# -# Note: foo_test.isolate is included and a source file. It is an inherent -# property of the .isolate format. This permits to define GYP variables but is -# a stricter format than GYP so isolate.py can read it. -# -# The generated .isolated file will be: -# <(PRODUCT_DIR)/foo_test.isolated -# -# See http://dev.chromium.org/developers/testing/isolated-testing/for-swes -# for more information. - -{ - 'rules': [ - { - 'rule_name': 'isolate', - 'extension': 'isolate', - 'inputs': [ - # Files that are known to be involved in this step. - '<(DEPTH)/tools/isolate_driver.py', - '<(DEPTH)/tools/swarming_client/isolate.py', - '<(DEPTH)/tools/swarming_client/run_isolated.py', - ], - 'outputs': [ - '<(PRODUCT_DIR)/<(RULE_INPUT_ROOT).isolated', - ], - 'action': [ - 'python', - '<(DEPTH)/tools/isolate_driver.py', - '<(test_isolation_mode)', - '--isolated', '<(PRODUCT_DIR)/<(RULE_INPUT_ROOT).isolated', - '--isolate', '<(RULE_INPUT_PATH)', - - # Variables should use the -V FOO=<(FOO) form so frequent values, - # like '0' or '1', aren't stripped out by GYP. Run 'isolate.py help' - # for more details. - - # Path variables are used to replace file paths when loading a .isolate - # file - '--path-variable', 'DEPTH', '<(DEPTH)', - '--path-variable', 'PRODUCT_DIR', '<(PRODUCT_DIR)', - - '--config-variable', 'CONFIGURATION_NAME=<(CONFIGURATION_NAME)', - '--config-variable', 'OS=<(OS)', - '--config-variable', 'asan=<(asan)', - '--config-variable', 'cfi_vptr=<(cfi_vptr)', - '--config-variable', 'gcmole=<(gcmole)', - '--config-variable', 'has_valgrind=<(has_valgrind)', - '--config-variable', 'icu_use_data_file_flag=<(icu_use_data_file_flag)', - '--config-variable', 'msan=<(msan)', - '--config-variable', 'tsan=<(tsan)', - '--config-variable', 'coverage=<(coverage)', - '--config-variable', 'sanitizer_coverage=<(sanitizer_coverage)', - '--config-variable', 'component=<(component)', - '--config-variable', 'target_arch=<(target_arch)', - '--config-variable', 'ubsan_vptr=0', - '--config-variable', 'v8_use_external_startup_data=<(v8_use_external_startup_data)', - '--config-variable', 'v8_use_snapshot=<(v8_use_snapshot)', - ], - 'conditions': [ - ['OS=="win"', { - 'action': [ - '--config-variable', 'msvs_version=2013', - ], - }, { - 'action': [ - '--config-variable', 'msvs_version=0', - ], - }], - ], - }, - ], -} diff --git a/deps/v8/gypfiles/landmine_utils.py b/deps/v8/gypfiles/landmine_utils.py deleted file mode 100644 index 8bdc2b648b32b9..00000000000000 --- a/deps/v8/gypfiles/landmine_utils.py +++ /dev/null @@ -1,123 +0,0 @@ -# Copyright 2014 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. - - -import functools -import logging -import os -import shlex -import sys - - -def memoize(default=None): - """This decorator caches the return value of a parameterless pure function""" - def memoizer(func): - val = [] - @functools.wraps(func) - def inner(): - if not val: - ret = func() - val.append(ret if ret is not None else default) - if logging.getLogger().isEnabledFor(logging.INFO): - print '%s -> %r' % (func.__name__, val[0]) - return val[0] - return inner - return memoizer - - -@memoize() -def IsWindows(): - return sys.platform in ['win32', 'cygwin'] - - -@memoize() -def IsLinux(): - return sys.platform.startswith(('linux', 'freebsd')) - - -@memoize() -def IsMac(): - return sys.platform == 'darwin' - - -@memoize() -def gyp_defines(): - """Parses and returns GYP_DEFINES env var as a dictionary.""" - return dict(arg.split('=', 1) - for arg in shlex.split(os.environ.get('GYP_DEFINES', ''))) - - -@memoize() -def gyp_generator_flags(): - """Parses and returns GYP_GENERATOR_FLAGS env var as a dictionary.""" - return dict(arg.split('=', 1) - for arg in shlex.split(os.environ.get('GYP_GENERATOR_FLAGS', ''))) - - -@memoize() -def gyp_msvs_version(): - return os.environ.get('GYP_MSVS_VERSION', '') - - -@memoize() -def distributor(): - """ - Returns a string which is the distributed build engine in use (if any). - Possible values: 'goma', 'ib', '' - """ - if 'goma' in gyp_defines(): - return 'goma' - elif IsWindows(): - if 'CHROME_HEADLESS' in os.environ: - return 'ib' # use (win and !goma and headless) as approximation of ib - - -@memoize() -def platform(): - """ - Returns a string representing the platform this build is targeted for. - Possible values: 'win', 'mac', 'linux', 'ios', 'android' - """ - if 'OS' in gyp_defines(): - if 'android' in gyp_defines()['OS']: - return 'android' - else: - return gyp_defines()['OS'] - elif IsWindows(): - return 'win' - elif IsLinux(): - return 'linux' - else: - return 'mac' - - -@memoize() -def builder(): - """ - Returns a string representing the build engine (not compiler) to use. - Possible values: 'make', 'ninja', 'xcode', 'msvs', 'scons' - """ - if 'GYP_GENERATORS' in os.environ: - # for simplicity, only support the first explicit generator - generator = os.environ['GYP_GENERATORS'].split(',')[0] - if generator.endswith('-android'): - return generator.split('-')[0] - elif generator.endswith('-ninja'): - return 'ninja' - else: - return generator - else: - if platform() == 'android': - # Good enough for now? Do any android bots use make? - return 'make' - elif platform() == 'ios': - return 'xcode' - elif IsWindows(): - return 'msvs' - elif IsLinux(): - return 'make' - elif IsMac(): - return 'xcode' - else: - assert False, 'Don\'t know what builder we\'re using!' diff --git a/deps/v8/gypfiles/landmines.py b/deps/v8/gypfiles/landmines.py deleted file mode 100755 index 2a81c66d1a6529..00000000000000 --- a/deps/v8/gypfiles/landmines.py +++ /dev/null @@ -1,245 +0,0 @@ -#!/usr/bin/env python -# Copyright 2014 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. - -""" -This script runs every build as the first hook (See DEPS). If it detects that -the build should be clobbered, it will delete the contents of the build -directory. - -A landmine is tripped when a builder checks out a different revision, and the -diff between the new landmines and the old ones is non-null. At this point, the -build is clobbered. -""" - -import difflib -import errno -import gyp_environment -import logging -import optparse -import os -import re -import shutil -import sys -import subprocess -import time - -import landmine_utils - - -SRC_DIR = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) - - -def get_build_dir(build_tool, is_iphone=False): - """ - Returns output directory absolute path dependent on build and targets. - Examples: - r'c:\b\build\slave\win\build\src\out' - '/mnt/data/b/build/slave/linux/build/src/out' - '/b/build/slave/ios_rel_device/build/src/xcodebuild' - - Keep this function in sync with tools/build/scripts/slave/compile.py - """ - ret = None - if build_tool == 'xcode': - ret = os.path.join(SRC_DIR, 'xcodebuild') - elif build_tool in ['make', 'ninja', 'ninja-ios']: # TODO: Remove ninja-ios. - if 'CHROMIUM_OUT_DIR' in os.environ: - output_dir = os.environ.get('CHROMIUM_OUT_DIR').strip() - if not output_dir: - raise Error('CHROMIUM_OUT_DIR environment variable is set but blank!') - else: - output_dir = landmine_utils.gyp_generator_flags().get('output_dir', 'out') - ret = os.path.join(SRC_DIR, output_dir) - elif build_tool in ['msvs', 'vs', 'ib']: - ret = os.path.join(SRC_DIR, 'build') - else: - raise NotImplementedError('Unexpected GYP_GENERATORS (%s)' % build_tool) - return os.path.abspath(ret) - - -def extract_gn_build_commands(build_ninja_file): - """Extracts from a build.ninja the commands to run GN. - - The commands to run GN are the gn rule and build.ninja build step at the - top of the build.ninja file. We want to keep these when deleting GN builds - since we want to preserve the command-line flags to GN. - - On error, returns the empty string.""" - result = "" - with open(build_ninja_file, 'r') as f: - # Read until the second blank line. The first thing GN writes to the file - # is the "rule gn" and the second is the section for "build build.ninja", - # separated by blank lines. - num_blank_lines = 0 - while num_blank_lines < 2: - line = f.readline() - if len(line) == 0: - return '' # Unexpected EOF. - result += line - if line[0] == '\n': - num_blank_lines = num_blank_lines + 1 - return result - -def delete_build_dir(build_dir): - # GN writes a build.ninja.d file. Note that not all GN builds have args.gn. - build_ninja_d_file = os.path.join(build_dir, 'build.ninja.d') - if not os.path.exists(build_ninja_d_file): - shutil.rmtree(build_dir) - return - - # GN builds aren't automatically regenerated when you sync. To avoid - # messing with the GN workflow, erase everything but the args file, and - # write a dummy build.ninja file that will automatically rerun GN the next - # time Ninja is run. - build_ninja_file = os.path.join(build_dir, 'build.ninja') - build_commands = extract_gn_build_commands(build_ninja_file) - - try: - gn_args_file = os.path.join(build_dir, 'args.gn') - with open(gn_args_file, 'r') as f: - args_contents = f.read() - except IOError: - args_contents = '' - - shutil.rmtree(build_dir) - - # Put back the args file (if any). - os.mkdir(build_dir) - if args_contents != '': - with open(gn_args_file, 'w') as f: - f.write(args_contents) - - # Write the build.ninja file sufficiently to regenerate itself. - with open(os.path.join(build_dir, 'build.ninja'), 'w') as f: - if build_commands != '': - f.write(build_commands) - else: - # Couldn't parse the build.ninja file, write a default thing. - f.write('''rule gn -command = gn -q gen //out/%s/ -description = Regenerating ninja files - -build build.ninja: gn -generator = 1 -depfile = build.ninja.d -''' % (os.path.split(build_dir)[1])) - - # Write a .d file for the build which references a nonexistant file. This - # will make Ninja always mark the build as dirty. - with open(build_ninja_d_file, 'w') as f: - f.write('build.ninja: nonexistant_file.gn\n') - - -def needs_clobber(landmines_path, new_landmines): - if os.path.exists(landmines_path): - with open(landmines_path, 'r') as f: - old_landmines = f.readlines() - if old_landmines != new_landmines: - old_date = time.ctime(os.stat(landmines_path).st_ctime) - diff = difflib.unified_diff(old_landmines, new_landmines, - fromfile='old_landmines', tofile='new_landmines', - fromfiledate=old_date, tofiledate=time.ctime(), n=0) - sys.stdout.write('Clobbering due to:\n') - sys.stdout.writelines(diff) - return True - else: - sys.stdout.write('Clobbering due to missing landmines file.\n') - return True - return False - - -def clobber_if_necessary(new_landmines): - """Does the work of setting, planting, and triggering landmines.""" - out_dir = get_build_dir(landmine_utils.builder()) - landmines_path = os.path.normpath(os.path.join(out_dir, '..', '.landmines')) - try: - os.makedirs(out_dir) - except OSError as e: - if e.errno == errno.EEXIST: - pass - - if needs_clobber(landmines_path, new_landmines): - # Clobber contents of build directory but not directory itself: some - # checkouts have the build directory mounted. - for f in os.listdir(out_dir): - path = os.path.join(out_dir, f) - if os.path.basename(out_dir) == 'build': - # Only delete build directories and files for MSVS builds as the folder - # shares some checked out files and directories. - if (os.path.isdir(path) and - re.search(r'(?:[Rr]elease)|(?:[Dd]ebug)', f)): - delete_build_dir(path) - elif (os.path.isfile(path) and - (path.endswith('.sln') or - path.endswith('.vcxproj') or - path.endswith('.vcxproj.user'))): - os.unlink(path) - else: - if os.path.isfile(path): - os.unlink(path) - elif os.path.isdir(path): - delete_build_dir(path) - if os.path.basename(out_dir) == 'xcodebuild': - # Xcodebuild puts an additional project file structure into build, - # while the output folder is xcodebuild. - project_dir = os.path.join(SRC_DIR, 'build', 'all.xcodeproj') - if os.path.exists(project_dir) and os.path.isdir(project_dir): - delete_build_dir(project_dir) - - # Save current set of landmines for next time. - with open(landmines_path, 'w') as f: - f.writelines(new_landmines) - - -def process_options(): - """Returns a list of landmine emitting scripts.""" - parser = optparse.OptionParser() - parser.add_option( - '-s', '--landmine-scripts', action='append', - default=[os.path.join(SRC_DIR, 'gypfiles', 'get_landmines.py')], - help='Path to the script which emits landmines to stdout. The target ' - 'is passed to this script via option -t. Note that an extra ' - 'script can be specified via an env var EXTRA_LANDMINES_SCRIPT.') - parser.add_option('-v', '--verbose', action='store_true', - default=('LANDMINES_VERBOSE' in os.environ), - help=('Emit some extra debugging information (default off). This option ' - 'is also enabled by the presence of a LANDMINES_VERBOSE environment ' - 'variable.')) - - options, args = parser.parse_args() - - if args: - parser.error('Unknown arguments %s' % args) - - logging.basicConfig( - level=logging.DEBUG if options.verbose else logging.ERROR) - - extra_script = os.environ.get('EXTRA_LANDMINES_SCRIPT') - if extra_script: - return options.landmine_scripts + [extra_script] - else: - return options.landmine_scripts - - -def main(): - landmine_scripts = process_options() - - if landmine_utils.builder() in ('dump_dependency_json', 'eclipse'): - return 0 - - gyp_environment.set_environment() - - landmines = [] - for s in landmine_scripts: - proc = subprocess.Popen([sys.executable, s], stdout=subprocess.PIPE) - output, _ = proc.communicate() - landmines.extend([('%s\n' % l.strip()) for l in output.splitlines()]) - clobber_if_necessary(landmines) - - return 0 - - -if __name__ == '__main__': - sys.exit(main()) diff --git a/deps/v8/gypfiles/mkgrokdump.gyp b/deps/v8/gypfiles/mkgrokdump.gyp new file mode 100644 index 00000000000000..75e8fc75cd6a98 --- /dev/null +++ b/deps/v8/gypfiles/mkgrokdump.gyp @@ -0,0 +1,27 @@ +# 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. + +{ + 'variables': { + 'v8_code': 1, + }, + 'includes': ['toolchain.gypi', 'features.gypi'], + 'targets': [ + { + 'target_name': 'mkgrokdump', + 'type': 'executable', + 'dependencies': [ + 'v8.gyp:v8', + 'v8.gyp:v8_libbase', + 'v8.gyp:v8_libplatform', + ], + 'include_dirs': [ + '..', + ], + 'sources': [ + '../test/mkgrokdump/mkgrokdump.cc', + ], + }, + ], +} diff --git a/deps/v8/tools/parser-shell.gyp b/deps/v8/gypfiles/parser-shell.gyp similarity index 89% rename from deps/v8/tools/parser-shell.gyp rename to deps/v8/gypfiles/parser-shell.gyp index 9b94888edfd7a0..464e2676ac8bb6 100644 --- a/deps/v8/tools/parser-shell.gyp +++ b/deps/v8/gypfiles/parser-shell.gyp @@ -30,15 +30,15 @@ 'v8_code': 1, 'v8_enable_i18n_support%': 1, }, - 'includes': ['../gypfiles/toolchain.gypi', '../gypfiles/features.gypi'], + 'includes': ['toolchain.gypi', 'features.gypi'], 'targets': [ { 'target_name': 'parser-shell', 'type': 'executable', 'dependencies': [ - '../src/v8.gyp:v8', - '../src/v8.gyp:v8_libbase', - '../src/v8.gyp:v8_libplatform', + 'v8.gyp:v8', + 'v8.gyp:v8_libbase', + 'v8.gyp:v8_libplatform', ], 'conditions': [ ['v8_enable_i18n_support==1', { @@ -52,8 +52,8 @@ '..', ], 'sources': [ - 'parser-shell.cc', - 'shell-utils.h', + '../tools/parser-shell.cc', + '../tools/shell-utils.h', ], }, ], diff --git a/deps/v8/gypfiles/run-tests-legacy.py b/deps/v8/gypfiles/run-tests-legacy.py old mode 100755 new mode 100644 diff --git a/deps/v8/gypfiles/samples.gyp b/deps/v8/gypfiles/samples.gyp new file mode 100644 index 00000000000000..9080c0d445d24f --- /dev/null +++ b/deps/v8/gypfiles/samples.gyp @@ -0,0 +1,61 @@ +# Copyright 2012 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. + +{ + 'variables': { + 'v8_code': 1, + 'v8_enable_i18n_support%': 1, + 'v8_toolset_for_shell%': 'target', + }, + 'includes': ['toolchain.gypi', 'features.gypi'], + 'target_defaults': { + 'type': 'executable', + 'dependencies': [ + 'v8.gyp:v8', + 'v8.gyp:v8_libbase', + 'v8.gyp:v8_libplatform', + ], + 'include_dirs': [ + '..', + ], + 'conditions': [ + ['v8_enable_i18n_support==1', { + 'dependencies': [ + '<(icu_gyp_path):icui18n', + '<(icu_gyp_path):icuuc', + ], + }], + ['OS=="win" and v8_enable_i18n_support==1', { + 'dependencies': [ + '<(icu_gyp_path):icudata', + ], + }], + ], + }, + 'targets': [ + { + 'target_name': 'v8_shell', + 'sources': [ + '../samples/shell.cc', + ], + 'conditions': [ + [ 'want_separate_host_toolset==1', { + 'toolsets': [ '<(v8_toolset_for_shell)', ], + }], + ], + }, + { + 'target_name': 'hello-world', + 'sources': [ + '../samples/hello-world.cc', + ], + }, + { + 'target_name': 'process', + 'sources': [ + '../samples/process.cc', + ], + }, + ], +} diff --git a/deps/v8/gypfiles/sysroot_ld_flags.sh b/deps/v8/gypfiles/sysroot_ld_flags.sh old mode 100755 new mode 100644 diff --git a/deps/v8/gypfiles/toolchain.gypi b/deps/v8/gypfiles/toolchain.gypi index 80844cecc671ef..e67a5e22b96af9 100644 --- a/deps/v8/gypfiles/toolchain.gypi +++ b/deps/v8/gypfiles/toolchain.gypi @@ -58,6 +58,9 @@ # Similar to the ARM hard float ABI but on MIPS. 'v8_use_mips_abi_hardfloat%': 'true', + # MIPS MSA support + 'mips_use_msa%': 0, + # Print to stdout on Android. 'v8_android_log_stdout%': 0, @@ -439,6 +442,9 @@ 'cflags': ['-mips32r6'], 'ldflags': ['-mips32r6'], }], + ['mips_arch_variant=="r6" and mips_use_msa==1', { + 'defines': [ '_MIPS_MSA' ], + }], ['mips_arch_variant=="r2"', { 'conditions': [ [ 'mips_fpu_mode=="fp64"', { @@ -507,6 +513,9 @@ 'FPU_MODE_FP64', ], }], + ['mips_arch_variant=="r6" and mips_use_msa==1', { + 'defines': [ '_MIPS_MSA' ], + }], ['mips_arch_variant=="r2"', { 'conditions': [ [ 'mips_fpu_mode=="fp64"', { @@ -558,6 +567,9 @@ 'FPU_MODE_FP64', ], }], + ['mips_arch_variant=="r6" and mips_use_msa==1', { + 'defines': [ '_MIPS_MSA' ], + }], ['mips_arch_variant=="r2"', { 'conditions': [ ['mips_fpu_mode=="fp64"', { @@ -640,6 +652,9 @@ 'cflags': ['-mips32r6'], 'ldflags': ['-mips32r6'], }], + ['mips_arch_variant=="r6" and mips_use_msa==1', { + 'defines': [ '_MIPS_MSA' ], + }], ['mips_arch_variant=="r2"', { 'conditions': [ [ 'mips_fpu_mode=="fp64"', { @@ -721,6 +736,9 @@ 'FPU_MODE_FP64', ], }], + ['mips_arch_variant=="r6" and mips_use_msa==1', { + 'defines': [ '_MIPS_MSA' ], + }], ['mips_arch_variant=="r2"', { 'conditions': [ [ 'mips_fpu_mode=="fp64"', { @@ -778,6 +796,9 @@ 'FPU_MODE_FP64', ], }], + ['mips_arch_variant=="r6" and mips_use_msa==1', { + 'defines': [ '_MIPS_MSA' ], + }], ['mips_arch_variant=="r2"', { 'conditions': [ ['mips_fpu_mode=="fp64"', { @@ -877,6 +898,9 @@ 'cflags': ['-mips64r6', '-mabi=64'], 'ldflags': ['-mips64r6', '-mabi=64'], }], + ['mips_arch_variant=="r6" and mips_use_msa==1', { + 'defines': [ '_MIPS_MSA' ], + }], ['mips_arch_variant=="r2"', { 'defines': ['_MIPS_ARCH_MIPS64R2',], 'conditions': [ @@ -895,6 +919,9 @@ ['mips_arch_variant=="r6"', { 'defines': ['_MIPS_ARCH_MIPS64R6',], }], + ['mips_arch_variant=="r6" and mips_use_msa==1', { + 'defines': [ '_MIPS_MSA' ], + }], ['mips_arch_variant=="r2"', { 'defines': ['_MIPS_ARCH_MIPS64R2',], }], @@ -907,6 +934,9 @@ ['mips_arch_variant=="r6"', { 'defines': ['_MIPS_ARCH_MIPS64R6',], }], + ['mips_arch_variant=="r6" and mips_use_msa==1', { + 'defines': [ '_MIPS_MSA' ], + }], ['mips_arch_variant=="r2"', { 'defines': ['_MIPS_ARCH_MIPS64R2',], }], @@ -1225,7 +1255,9 @@ 'OBJECT_PRINT', 'VERIFY_HEAP', 'DEBUG', - 'V8_TRACE_MAPS' + 'V8_TRACE_MAPS', + 'V8_ENABLE_ALLOCATION_TIMEOUT', + 'V8_ENABLE_FORCE_SLOW_PATH', ], 'conditions': [ ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" or \ diff --git a/deps/v8/gypfiles/unittests.gyp b/deps/v8/gypfiles/unittests.gyp new file mode 100644 index 00000000000000..c6d3713b0cf54e --- /dev/null +++ b/deps/v8/gypfiles/unittests.gyp @@ -0,0 +1,287 @@ +# Copyright 2014 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. + +# The sources are kept automatically in sync with BUILD.gn. + +{ + 'variables': { + 'v8_code': 1, + 'unittests_sources': [ + '../test/unittests/allocation-unittest.cc', + '../test/unittests/api/access-check-unittest.cc', + '../test/unittests/api/exception-unittest.cc', + '../test/unittests/api/interceptor-unittest.cc', + '../test/unittests/api/isolate-unittest.cc', + '../test/unittests/api/remote-object-unittest.cc', + '../test/unittests/api/v8-object-unittest.cc', + '../test/unittests/asmjs/asm-scanner-unittest.cc', + '../test/unittests/asmjs/asm-types-unittest.cc', + '../test/unittests/asmjs/switch-logic-unittest.cc', + '../test/unittests/base/atomic-utils-unittest.cc', + '../test/unittests/base/bits-unittest.cc', + '../test/unittests/base/cpu-unittest.cc', + '../test/unittests/base/division-by-constant-unittest.cc', + '../test/unittests/base/flags-unittest.cc', + '../test/unittests/base/functional-unittest.cc', + '../test/unittests/base/ieee754-unittest.cc', + '../test/unittests/base/logging-unittest.cc', + '../test/unittests/base/macros-unittest.cc', + '../test/unittests/base/iterator-unittest.cc', + '../test/unittests/base/ostreams-unittest.cc', + '../test/unittests/base/platform/condition-variable-unittest.cc', + '../test/unittests/base/platform/mutex-unittest.cc', + '../test/unittests/base/platform/platform-unittest.cc', + '../test/unittests/base/platform/semaphore-unittest.cc', + '../test/unittests/base/platform/time-unittest.cc', + '../test/unittests/base/sys-info-unittest.cc', + '../test/unittests/base/template-utils-unittest.cc', + '../test/unittests/base/utils/random-number-generator-unittest.cc', + '../test/unittests/bigint-unittest.cc', + '../test/unittests/cancelable-tasks-unittest.cc', + '../test/unittests/char-predicates-unittest.cc', + "../test/unittests/code-stub-assembler-unittest.cc", + "../test/unittests/code-stub-assembler-unittest.h", + '../test/unittests/compiler/branch-elimination-unittest.cc', + '../test/unittests/compiler/bytecode-analysis-unittest.cc', + '../test/unittests/compiler/checkpoint-elimination-unittest.cc', + "../test/unittests/compiler/code-assembler-unittest.cc", + "../test/unittests/compiler/code-assembler-unittest.h", + '../test/unittests/compiler/common-operator-reducer-unittest.cc', + '../test/unittests/compiler/common-operator-unittest.cc', + '../test/unittests/compiler/compiler-test-utils.h', + '../test/unittests/compiler/control-equivalence-unittest.cc', + '../test/unittests/compiler/control-flow-optimizer-unittest.cc', + '../test/unittests/compiler/dead-code-elimination-unittest.cc', + '../test/unittests/compiler/diamond-unittest.cc', + '../test/unittests/compiler/effect-control-linearizer-unittest.cc', + '../test/unittests/compiler/graph-reducer-unittest.cc', + '../test/unittests/compiler/graph-reducer-unittest.h', + '../test/unittests/compiler/graph-trimmer-unittest.cc', + '../test/unittests/compiler/graph-unittest.cc', + '../test/unittests/compiler/graph-unittest.h', + '../test/unittests/compiler/instruction-unittest.cc', + '../test/unittests/compiler/instruction-selector-unittest.cc', + '../test/unittests/compiler/instruction-selector-unittest.h', + '../test/unittests/compiler/instruction-sequence-unittest.cc', + '../test/unittests/compiler/instruction-sequence-unittest.h', + '../test/unittests/compiler/int64-lowering-unittest.cc', + '../test/unittests/compiler/js-builtin-reducer-unittest.cc', + '../test/unittests/compiler/js-create-lowering-unittest.cc', + '../test/unittests/compiler/js-intrinsic-lowering-unittest.cc', + '../test/unittests/compiler/js-operator-unittest.cc', + '../test/unittests/compiler/js-typed-lowering-unittest.cc', + '../test/unittests/compiler/linkage-tail-call-unittest.cc', + '../test/unittests/compiler/live-range-builder.h', + '../test/unittests/compiler/regalloc/live-range-unittest.cc', + '../test/unittests/compiler/load-elimination-unittest.cc', + '../test/unittests/compiler/loop-peeling-unittest.cc', + '../test/unittests/compiler/machine-operator-reducer-unittest.cc', + '../test/unittests/compiler/machine-operator-unittest.cc', + '../test/unittests/compiler/regalloc/move-optimizer-unittest.cc', + '../test/unittests/compiler/node-cache-unittest.cc', + '../test/unittests/compiler/node-matchers-unittest.cc', + '../test/unittests/compiler/node-properties-unittest.cc', + '../test/unittests/compiler/node-test-utils.cc', + '../test/unittests/compiler/node-test-utils.h', + '../test/unittests/compiler/node-unittest.cc', + '../test/unittests/compiler/opcodes-unittest.cc', + '../test/unittests/compiler/persistent-unittest.cc', + '../test/unittests/compiler/regalloc/register-allocator-unittest.cc', + '../test/unittests/compiler/schedule-unittest.cc', + '../test/unittests/compiler/scheduler-unittest.cc', + '../test/unittests/compiler/scheduler-rpo-unittest.cc', + '../test/unittests/compiler/simplified-lowering-unittest.cc', + '../test/unittests/compiler/simplified-operator-reducer-unittest.cc', + '../test/unittests/compiler/simplified-operator-unittest.cc', + '../test/unittests/compiler/state-values-utils-unittest.cc', + '../test/unittests/compiler/typed-optimization-unittest.cc', + '../test/unittests/compiler/typer-unittest.cc', + '../test/unittests/compiler/value-numbering-reducer-unittest.cc', + '../test/unittests/compiler/zone-stats-unittest.cc', + '../test/unittests/compiler-dispatcher/compiler-dispatcher-tracer-unittest.cc', + '../test/unittests/compiler-dispatcher/compiler-dispatcher-unittest.cc', + '../test/unittests/compiler-dispatcher/optimizing-compile-dispatcher-unittest.cc', + '../test/unittests/compiler-dispatcher/unoptimized-compile-job-unittest.cc', + '../test/unittests/counters-unittest.cc', + '../test/unittests/detachable-vector-unittest.cc', + '../test/unittests/eh-frame-iterator-unittest.cc', + '../test/unittests/eh-frame-writer-unittest.cc', + '../test/unittests/heap/barrier-unittest.cc', + '../test/unittests/heap/bitmap-unittest.cc', + '../test/unittests/heap/embedder-tracing-unittest.cc', + '../test/unittests/heap/gc-idle-time-handler-unittest.cc', + '../test/unittests/heap/gc-tracer-unittest.cc', + '../test/unittests/heap/item-parallel-job-unittest.cc', + '../test/unittests/heap/marking-unittest.cc', + '../test/unittests/heap/memory-reducer-unittest.cc', + '../test/unittests/heap/object-stats-unittest.cc', + '../test/unittests/heap/heap-unittest.cc', + '../test/unittests/heap/scavenge-job-unittest.cc', + '../test/unittests/heap/slot-set-unittest.cc', + '../test/unittests/heap/spaces-unittest.cc', + '../test/unittests/heap/unmapper-unittest.cc', + '../test/unittests/heap/worklist-unittest.cc', + '../test/unittests/interpreter/bytecodes-unittest.cc', + '../test/unittests/interpreter/bytecode-array-builder-unittest.cc', + '../test/unittests/interpreter/bytecode-array-iterator-unittest.cc', + '../test/unittests/interpreter/bytecode-array-random-iterator-unittest.cc', + '../test/unittests/interpreter/bytecode-array-writer-unittest.cc', + '../test/unittests/interpreter/bytecode-decoder-unittest.cc', + '../test/unittests/interpreter/bytecode-node-unittest.cc', + '../test/unittests/interpreter/bytecode-operands-unittest.cc', + '../test/unittests/interpreter/bytecode-register-allocator-unittest.cc', + '../test/unittests/interpreter/bytecode-register-optimizer-unittest.cc', + '../test/unittests/interpreter/bytecode-source-info-unittest.cc', + '../test/unittests/interpreter/bytecode-utils.h', + '../test/unittests/interpreter/constant-array-builder-unittest.cc', + '../test/unittests/interpreter/interpreter-assembler-unittest.cc', + '../test/unittests/interpreter/interpreter-assembler-unittest.h', + '../test/unittests/libplatform/default-platform-unittest.cc', + '../test/unittests/libplatform/task-queue-unittest.cc', + '../test/unittests/libplatform/worker-thread-unittest.cc', + '../test/unittests/locked-queue-unittest.cc', + '../test/unittests/object-unittest.cc', + '../test/unittests/parser/ast-value-unittest.cc', + '../test/unittests/parser/preparser-unittest.cc', + '../test/unittests/register-configuration-unittest.cc', + '../test/unittests/run-all-unittests.cc', + '../test/unittests/source-position-table-unittest.cc', + '../test/unittests/test-helpers.cc', + '../test/unittests/test-helpers.h', + '../test/unittests/test-utils.h', + '../test/unittests/test-utils.cc', + '../test/unittests/unicode-unittest.cc', + '../test/unittests/utils-unittest.cc', + '../test/unittests/value-serializer-unittest.cc', + '../test/unittests/zone/segmentpool-unittest.cc', + '../test/unittests/zone/zone-allocator-unittest.cc', + '../test/unittests/zone/zone-chunk-list-unittest.cc', + '../test/unittests/zone/zone-unittest.cc', + '../test/unittests/wasm/control-transfer-unittest.cc', + '../test/unittests/wasm/decoder-unittest.cc', + '../test/unittests/wasm/function-body-decoder-unittest.cc', + '../test/unittests/wasm/wasm-code-manager-unittest.cc', + '../test/unittests/wasm/leb-helper-unittest.cc', + '../test/unittests/wasm/loop-assignment-analysis-unittest.cc', + '../test/unittests/wasm/module-decoder-unittest.cc', + '../test/unittests/wasm/streaming-decoder-unittest.cc', + '../test/unittests/wasm/trap-handler-unittest.cc', + '../test/unittests/wasm/wasm-macro-gen-unittest.cc', + '../test/unittests/wasm/wasm-module-builder-unittest.cc', + '../test/unittests/wasm/wasm-opcodes-unittest.cc', + ], + 'unittests_sources_arm': [ + '../test/unittests/compiler/arm/instruction-selector-arm-unittest.cc', + ], + 'unittests_sources_arm64': [ + '../test/unittests/compiler/arm64/instruction-selector-arm64-unittest.cc', + ], + 'unittests_sources_ia32': [ + '../test/unittests/compiler/ia32/instruction-selector-ia32-unittest.cc', + ], + 'unittests_sources_mips': [ + '../test/unittests/compiler/mips/instruction-selector-mips-unittest.cc', + ], + 'unittests_sources_mips64': [ + '../test/unittests/compiler/mips64/instruction-selector-mips64-unittest.cc', + ], + 'unittests_sources_x64': [ + '../test/unittests/compiler/x64/instruction-selector-x64-unittest.cc', + ], + 'unittests_sources_ppc': [ + '../test/unittests/compiler/ppc/instruction-selector-ppc-unittest.cc', + ], + 'unittests_sources_s390': [ + '../test/unittests/compiler/s390/instruction-selector-s390-unittest.cc', + ], + }, + 'includes': ['toolchain.gypi', 'features.gypi'], + 'targets': [ + { + 'target_name': 'unittests', + 'type': 'executable', + 'variables': { + 'optimize': 'max', + }, + 'dependencies': [ + 'gmock.gyp:gmock', + 'gtest.gyp:gtest', + 'v8.gyp:v8', + 'v8.gyp:v8_libbase', + 'v8.gyp:v8_libplatform', + 'v8.gyp:v8_maybe_snapshot', + ], + 'include_dirs': [ + '..', + ], + 'sources': [ + '<@(unittests_sources)', + ], + 'conditions': [ + ['v8_target_arch=="arm"', { + 'sources': [ + '<@(unittests_sources_arm)', + ], + }], + ['v8_target_arch=="arm64"', { + 'sources': [ + '<@(unittests_sources_arm64)', + ], + }], + ['v8_target_arch=="ia32"', { + 'sources': [ + '<@(unittests_sources_ia32)', + ], + }], + ['v8_target_arch=="mips"', { + 'sources': [ + '<@(unittests_sources_mips)', + ], + }], + ['v8_target_arch=="mipsel"', { + 'sources': [ + '<@(unittests_sources_mips)', + ], + }], + ['v8_target_arch=="mips64"', { + 'sources': [ + '<@(unittests_sources_mips64)', + ], + }], + ['v8_target_arch=="mips64el"', { + 'sources': [ + '<@(unittests_sources_mips64)', + ], + }], + ['v8_target_arch=="x64"', { + 'sources': [ + '<@(unittests_sources_x64)', + ], + }], + ['v8_target_arch=="ppc" or v8_target_arch=="ppc64"', { + 'sources': [ + '<@(unittests_sources_ppc)', + ], + }], + ['v8_target_arch=="s390" or v8_target_arch=="s390x"', { + 'sources': [ + '<@(unittests_sources_s390)', + ], + }], + ['OS=="aix"', { + 'ldflags': [ '-Wl,-bbigtoc' ], + }], + ['v8_enable_i18n_support==1', { + 'dependencies': [ + '<(icu_gyp_path):icui18n', + '<(icu_gyp_path):icuuc', + ], + }], + ['v8_use_snapshot=="true"', { + 'dependencies': ['v8.gyp:v8_initializers'], + }], + ], + }, + ], +} diff --git a/deps/v8/gypfiles/v8.gyp b/deps/v8/gypfiles/v8.gyp new file mode 100644 index 00000000000000..433166290a9ed5 --- /dev/null +++ b/deps/v8/gypfiles/v8.gyp @@ -0,0 +1,2613 @@ +# Copyright 2012 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. + +{ + 'variables': { + 'v8_code': 1, + 'v8_random_seed%': 314159265, + 'v8_vector_stores%': 0, + 'embed_script%': "", + 'warmup_script%': "", + 'v8_extra_library_files%': [], + 'v8_experimental_extra_library_files%': [], + 'mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot<(EXECUTABLE_SUFFIX)', + 'v8_os_page_size%': 0, + }, + 'includes': ['toolchain.gypi', 'features.gypi', 'inspector.gypi'], + 'targets': [ + { + 'target_name': 'v8', + 'dependencies_traverse': 1, + 'dependencies': ['v8_maybe_snapshot', 'v8_dump_build_config#target'], + 'conditions': [ + ['want_separate_host_toolset==1', { + 'toolsets': ['host', 'target'], + }, { + 'toolsets': ['target'], + }], + ['component=="shared_library"', { + 'type': '<(component)', + 'sources': [ + # Note: on non-Windows we still build this file so that gyp + # has some sources to link into the component. + '../src/v8dll-main.cc', + ], + 'include_dirs': [ + '..', + ], + 'defines': [ + 'BUILDING_V8_SHARED', + ], + 'direct_dependent_settings': { + 'defines': [ + 'USING_V8_SHARED', + ], + }, + 'conditions': [ + ['OS=="mac"', { + 'xcode_settings': { + 'OTHER_LDFLAGS': ['-dynamiclib', '-all_load'] + }, + }], + ['soname_version!=""', { + 'product_extension': 'so.<(soname_version)', + }], + ], + }, + { + 'type': 'none', + }], + ], + 'direct_dependent_settings': { + 'include_dirs': [ + '../include/', + ], + }, + }, + { + # This rule delegates to either v8_snapshot, v8_nosnapshot, or + # v8_external_snapshot, depending on the current variables. + # The intention is to make the 'calling' rules a bit simpler. + 'target_name': 'v8_maybe_snapshot', + 'type': 'none', + 'conditions': [ + ['v8_use_snapshot!="true"', { + # The dependency on v8_base should come from a transitive + # dependency however the Android toolchain requires libv8_base.a + # to appear before libv8_snapshot.a so it's listed explicitly. + 'dependencies': ['v8_base', 'v8_init', 'v8_nosnapshot'], + }], + ['v8_use_snapshot=="true" and v8_use_external_startup_data==0', { + # The dependency on v8_base should come from a transitive + # dependency however the Android toolchain requires libv8_base.a + # to appear before libv8_snapshot.a so it's listed explicitly. + 'dependencies': ['v8_base', 'v8_snapshot'], + }], + ['v8_use_snapshot=="true" and v8_use_external_startup_data==1 and want_separate_host_toolset==0', { + 'dependencies': ['v8_base', 'v8_external_snapshot'], + 'inputs': [ '<(PRODUCT_DIR)/snapshot_blob.bin', ], + }], + ['v8_use_snapshot=="true" and v8_use_external_startup_data==1 and want_separate_host_toolset==1', { + 'dependencies': ['v8_base', 'v8_external_snapshot'], + 'target_conditions': [ + ['_toolset=="host"', { + 'inputs': [ + '<(PRODUCT_DIR)/snapshot_blob_host.bin', + ], + }, { + 'inputs': [ + '<(PRODUCT_DIR)/snapshot_blob.bin', + ], + }], + ], + }], + ['want_separate_host_toolset==1', { + 'toolsets': ['host', 'target'], + }, { + 'toolsets': ['target'], + }], + ] + }, + { + 'target_name': 'v8_init', + 'type': 'static_library', + 'dependencies': [ + 'v8_initializers', + ], + 'variables': { + 'optimize': 'max', + }, + 'include_dirs+': [ + '..', + '../include/', + ], + 'sources': [ + '../src/setup-isolate-full.cc', + ], + 'conditions': [ + ['want_separate_host_toolset==1', { + 'toolsets': ['host', 'target'], + }, { + 'toolsets': ['target'], + }], + ], + }, + { + 'target_name': 'v8_initializers', + 'type': 'static_library', + 'dependencies': [ + 'v8_base', + ], + 'variables': { + 'optimize': 'max', + }, + 'include_dirs+': [ + '..', + '../include/', + ], + 'sources': [ + '../src/builtins/builtins-arguments-gen.cc', + '../src/builtins/builtins-arguments-gen.h', + '../src/builtins/builtins-array-gen.cc', + '../src/builtins/builtins-array-gen.h', + '../src/builtins/builtins-async-function-gen.cc', + '../src/builtins/builtins-async-gen.cc', + '../src/builtins/builtins-async-gen.h', + '../src/builtins/builtins-async-generator-gen.cc', + '../src/builtins/builtins-async-iterator-gen.cc', + '../src/builtins/builtins-boolean-gen.cc', + '../src/builtins/builtins-call-gen.cc', + '../src/builtins/builtins-call-gen.h', + '../src/builtins/builtins-collections-gen.cc', + '../src/builtins/builtins-console-gen.cc', + '../src/builtins/builtins-constructor-gen.cc', + '../src/builtins/builtins-constructor-gen.h', + '../src/builtins/builtins-constructor.h', + '../src/builtins/builtins-conversion-gen.cc', + '../src/builtins/builtins-date-gen.cc', + '../src/builtins/builtins-debug-gen.cc', + '../src/builtins/builtins-function-gen.cc', + '../src/builtins/builtins-generator-gen.cc', + '../src/builtins/builtins-global-gen.cc', + '../src/builtins/builtins-handler-gen.cc', + '../src/builtins/builtins-ic-gen.cc', + '../src/builtins/builtins-internal-gen.cc', + '../src/builtins/builtins-interpreter-gen.cc', + '../src/builtins/builtins-intl-gen.cc', + '../src/builtins/builtins-iterator-gen.h', + '../src/builtins/builtins-iterator-gen.cc', + '../src/builtins/builtins-math-gen.cc', + '../src/builtins/builtins-math-gen.h', + '../src/builtins/builtins-number-gen.cc', + '../src/builtins/builtins-object-gen.cc', + '../src/builtins/builtins-promise-gen.cc', + '../src/builtins/builtins-promise-gen.h', + '../src/builtins/builtins-proxy-gen.cc', + '../src/builtins/builtins-proxy-gen.h', + '../src/builtins/builtins-reflect-gen.cc', + '../src/builtins/builtins-regexp-gen.cc', + '../src/builtins/builtins-regexp-gen.h', + '../src/builtins/builtins-sharedarraybuffer-gen.cc', + '../src/builtins/builtins-string-gen.cc', + '../src/builtins/builtins-string-gen.h', + '../src/builtins/builtins-symbol-gen.cc', + '../src/builtins/builtins-typedarray-gen.cc', + '../src/builtins/builtins-typedarray-gen.h', + '../src/builtins/builtins-utils-gen.h', + '../src/builtins/builtins-wasm-gen.cc', + '../src/builtins/growable-fixed-array-gen.cc', + '../src/builtins/growable-fixed-array-gen.h', + '../src/builtins/setup-builtins-internal.cc', + '../src/heap/setup-heap-internal.cc', + '../src/ic/accessor-assembler.cc', + '../src/ic/accessor-assembler.h', + '../src/ic/binary-op-assembler.cc', + '../src/ic/binary-op-assembler.h', + '../src/ic/keyed-store-generic.cc', + '../src/ic/keyed-store-generic.h', + '../src/interpreter/interpreter-assembler.cc', + '../src/interpreter/interpreter-assembler.h', + '../src/interpreter/interpreter-generator.cc', + '../src/interpreter/interpreter-generator.h', + '../src/interpreter/interpreter-intrinsics-generator.cc', + '../src/interpreter/interpreter-intrinsics-generator.h', + '../src/interpreter/setup-interpreter-internal.cc', + '../src/interpreter/setup-interpreter.h', + ], + 'conditions': [ + ['want_separate_host_toolset==1', { + 'toolsets': ['host', 'target'], + }, { + 'toolsets': ['target'], + }], + ['v8_target_arch=="ia32"', { + 'sources': [ + '../src/builtins/ia32/builtins-ia32.cc', + ], + }], + ['v8_target_arch=="x64"', { + 'sources': [ + '../src/builtins/x64/builtins-x64.cc', + ], + }], + ['v8_target_arch=="arm"', { + 'sources': [ + '../src/builtins/arm/builtins-arm.cc', + ], + }], + ['v8_target_arch=="arm64"', { + 'sources': [ + '../src/builtins/arm64/builtins-arm64.cc', + ], + }], + ['v8_target_arch=="mips" or v8_target_arch=="mipsel"', { + 'sources': [ + '../src/builtins/mips/builtins-mips.cc', + ], + }], + ['v8_target_arch=="mips64" or v8_target_arch=="mips64el"', { + 'sources': [ + '../src/builtins/mips64/builtins-mips64.cc', + ], + }], + ['v8_target_arch=="ppc" or v8_target_arch=="ppc64"', { + 'sources': [ + '../src/builtins/ppc/builtins-ppc.cc', + ], + }], + ['v8_target_arch=="s390" or v8_target_arch=="s390x"', { + 'sources': [ + '../src/builtins/s390/builtins-s390.cc', + ], + }], + ['v8_enable_i18n_support==0', { + 'sources!': [ + '../src/builtins/builtins-intl-gen.cc', + ], + }], + ], + }, + { + 'target_name': 'v8_snapshot', + 'type': 'static_library', + 'conditions': [ + ['want_separate_host_toolset==1', { + 'toolsets': ['host', 'target'], + 'dependencies': [ + 'mksnapshot#host', + 'js2c#host', + ], + }, { + 'toolsets': ['target'], + 'dependencies': [ + 'mksnapshot', + 'js2c', + ], + }], + ['component=="shared_library"', { + 'defines': [ + 'BUILDING_V8_SHARED', + ], + 'direct_dependent_settings': { + 'defines': [ + 'USING_V8_SHARED', + ], + }, + }], + ], + 'dependencies': [ + 'v8_base', + ], + 'include_dirs+': [ + '..', + '<(DEPTH)', + ], + 'sources': [ + '<(SHARED_INTERMEDIATE_DIR)/libraries.cc', + '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc', + '<(SHARED_INTERMEDIATE_DIR)/experimental-extras-libraries.cc', + '<(INTERMEDIATE_DIR)/snapshot.cc', + '../src/setup-isolate-deserialize.cc', + ], + 'actions': [ + { + 'action_name': 'run_mksnapshot', + 'inputs': [ + '<(mksnapshot_exec)', + ], + 'conditions': [ + ['embed_script!=""', { + 'inputs': [ + '<(embed_script)', + ], + }], + ['warmup_script!=""', { + 'inputs': [ + '<(warmup_script)', + ], + }], + ], + 'outputs': [ + '<(INTERMEDIATE_DIR)/snapshot.cc', + ], + 'variables': { + 'mksnapshot_flags': [], + 'conditions': [ + ['v8_random_seed!=0', { + 'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'], + }], + ['v8_vector_stores!=0', { + 'mksnapshot_flags': ['--vector-stores'], + }], + ], + }, + 'action': [ + '<(mksnapshot_exec)', + '<@(mksnapshot_flags)', + '--startup_src', '<@(INTERMEDIATE_DIR)/snapshot.cc', + '<(embed_script)', + '<(warmup_script)', + ], + }, + ], + }, + { + 'target_name': 'v8_nosnapshot', + 'type': 'static_library', + 'dependencies': [ + 'v8_base', + ], + 'include_dirs+': [ + '..', + '<(DEPTH)', + ], + 'sources': [ + '<(SHARED_INTERMEDIATE_DIR)/libraries.cc', + '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc', + '<(SHARED_INTERMEDIATE_DIR)/experimental-extras-libraries.cc', + '../src/snapshot/snapshot-empty.cc', + ], + 'conditions': [ + ['want_separate_host_toolset==1', { + 'toolsets': ['host', 'target'], + 'dependencies': ['js2c#host'], + }, { + 'toolsets': ['target'], + 'dependencies': ['js2c'], + }], + ['component=="shared_library"', { + 'defines': [ + 'BUILDING_V8_SHARED', + ], + }], + ] + }, + { + 'target_name': 'v8_external_snapshot', + 'type': 'static_library', + 'conditions': [ + [ 'v8_use_external_startup_data==1', { + 'conditions': [ + ['want_separate_host_toolset==1', { + 'toolsets': ['host', 'target'], + 'dependencies': [ + 'mksnapshot#host', + 'js2c#host', + 'natives_blob', + ]}, { + 'toolsets': ['target'], + 'dependencies': [ + 'mksnapshot', + 'js2c', + 'natives_blob', + ], + }], + ['component=="shared_library"', { + 'defines': [ + 'BUILDING_V8_SHARED', + ], + 'direct_dependent_settings': { + 'defines': [ + 'USING_V8_SHARED', + ], + }, + }], + ], + 'dependencies': [ + 'v8_base', + ], + 'include_dirs+': [ + '..', + '<(DEPTH)', + ], + 'sources': [ + '../src/setup-isolate-deserialize.cc', + '../src/snapshot/natives-external.cc', + '../src/snapshot/snapshot-external.cc', + ], + 'actions': [ + { + 'action_name': 'run_mksnapshot (external)', + 'inputs': [ + '<(mksnapshot_exec)', + ], + 'variables': { + 'mksnapshot_flags': [], + 'conditions': [ + ['v8_random_seed!=0', { + 'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'], + }], + ['v8_vector_stores!=0', { + 'mksnapshot_flags': ['--vector-stores'], + }], + ['v8_os_page_size!=0', { + 'mksnapshot_flags': ['--v8_os_page_size', '<(v8_os_page_size)'], + }], + ], + }, + 'conditions': [ + ['embed_script!=""', { + 'inputs': [ + '<(embed_script)', + ], + }], + ['warmup_script!=""', { + 'inputs': [ + '<(warmup_script)', + ], + }], + ['want_separate_host_toolset==1', { + 'target_conditions': [ + ['_toolset=="host"', { + 'outputs': [ + '<(PRODUCT_DIR)/snapshot_blob_host.bin', + ], + 'action': [ + '<(mksnapshot_exec)', + '<@(mksnapshot_flags)', + '--startup_blob', '<(PRODUCT_DIR)/snapshot_blob_host.bin', + '<(embed_script)', + '<(warmup_script)', + ], + }, { + 'outputs': [ + '<(PRODUCT_DIR)/snapshot_blob.bin', + ], + 'action': [ + '<(mksnapshot_exec)', + '<@(mksnapshot_flags)', + '--startup_blob', '<(PRODUCT_DIR)/snapshot_blob.bin', + '<(embed_script)', + '<(warmup_script)', + ], + }], + ], + }, { + 'outputs': [ + '<(PRODUCT_DIR)/snapshot_blob.bin', + ], + 'action': [ + '<(mksnapshot_exec)', + '<@(mksnapshot_flags)', + '--startup_blob', '<(PRODUCT_DIR)/snapshot_blob.bin', + '<(embed_script)', + '<(warmup_script)', + ], + }], + ], + }, + ], + }], + ], + }, + { + 'target_name': 'v8_base', + 'type': 'static_library', + 'dependencies': [ + 'v8_libbase', + 'v8_libsampler', + 'inspector.gyp:protocol_generated_sources#target', + 'inspector.gyp:inspector_injected_script#target', + ], + 'objs': ['foo.o'], + 'variables': { + 'optimize': 'max', + }, + 'include_dirs+': [ + '..', + '<(DEPTH)', + '<(SHARED_INTERMEDIATE_DIR)' + ], + 'sources': [ + '<@(inspector_all_sources)', + '../include//v8-debug.h', + '../include//v8-platform.h', + '../include//v8-profiler.h', + '../include//v8-testing.h', + '../include//v8-util.h', + '../include//v8-value-serializer-version.h', + '../include//v8-version-string.h', + '../include//v8-version.h', + '../include//v8.h', + '../include//v8config.h', + '../src/accessors.cc', + '../src/accessors.h', + '../src/address-map.cc', + '../src/address-map.h', + '../src/allocation.cc', + '../src/allocation.h', + '../src/allocation-site-scopes.h', + '../src/api.cc', + '../src/api.h', + '../src/api-arguments-inl.h', + '../src/api-arguments.cc', + '../src/api-arguments.h', + '../src/api-natives.cc', + '../src/api-natives.h', + '../src/arguments.cc', + '../src/arguments.h', + '../src/asmjs/asm-js.cc', + '../src/asmjs/asm-js.h', + '../src/asmjs/asm-names.h', + '../src/asmjs/asm-parser.cc', + '../src/asmjs/asm-parser.h', + '../src/asmjs/asm-scanner.cc', + '../src/asmjs/asm-scanner.h', + '../src/asmjs/asm-types.cc', + '../src/asmjs/asm-types.h', + '../src/asmjs/switch-logic.h', + '../src/asmjs/switch-logic.cc', + '../src/assembler.cc', + '../src/assembler.h', + '../src/assembler-inl.h', + '../src/assert-scope.h', + '../src/assert-scope.cc', + '../src/ast/ast-function-literal-id-reindexer.cc', + '../src/ast/ast-function-literal-id-reindexer.h', + '../src/ast/ast-source-ranges.h', + '../src/ast/ast-traversal-visitor.h', + '../src/ast/ast-value-factory.cc', + '../src/ast/ast-value-factory.h', + '../src/ast/ast.cc', + '../src/ast/ast.h', + '../src/ast/compile-time-value.cc', + '../src/ast/compile-time-value.h', + '../src/ast/context-slot-cache.cc', + '../src/ast/context-slot-cache.h', + '../src/ast/modules.cc', + '../src/ast/modules.h', + '../src/ast/prettyprinter.cc', + '../src/ast/prettyprinter.h', + '../src/ast/scopes.cc', + '../src/ast/scopes.h', + '../src/ast/variables.cc', + '../src/ast/variables.h', + '../src/bailout-reason.cc', + '../src/bailout-reason.h', + '../src/basic-block-profiler.cc', + '../src/basic-block-profiler.h', + '../src/bignum-dtoa.cc', + '../src/bignum-dtoa.h', + '../src/bignum.cc', + '../src/bignum.h', + '../src/bit-vector.cc', + '../src/bit-vector.h', + '../src/bootstrapper.cc', + '../src/bootstrapper.h', + '../src/boxed-float.h', + '../src/builtins/builtins-api.cc', + '../src/builtins/builtins-arraybuffer.cc', + '../src/builtins/builtins-array.cc', + '../src/builtins/builtins-bigint.cc', + '../src/builtins/builtins-boolean.cc', + '../src/builtins/builtins-call.cc', + '../src/builtins/builtins-callsite.cc', + '../src/builtins/builtins-collections.cc', + '../src/builtins/builtins-console.cc', + '../src/builtins/builtins-constructor.h', + '../src/builtins/builtins-dataview.cc', + '../src/builtins/builtins-date.cc', + '../src/builtins/builtins-definitions.h', + '../src/builtins/builtins-descriptors.h', + '../src/builtins/builtins-error.cc', + '../src/builtins/builtins-function.cc', + '../src/builtins/builtins-global.cc', + '../src/builtins/builtins-internal.cc', + '../src/builtins/builtins-interpreter.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-reflect.cc', + '../src/builtins/builtins-regexp.cc', + '../src/builtins/builtins-sharedarraybuffer.cc', + '../src/builtins/builtins-string.cc', + '../src/builtins/builtins-intl.cc', + '../src/builtins/builtins-intl.h', + '../src/builtins/builtins-symbol.cc', + '../src/builtins/builtins-typedarray.cc', + '../src/builtins/builtins-utils.h', + '../src/builtins/builtins.cc', + '../src/builtins/builtins.h', + '../src/cached-powers.cc', + '../src/cached-powers.h', + '../src/callable.h', + '../src/cancelable-task.cc', + '../src/cancelable-task.h', + '../src/char-predicates.cc', + '../src/char-predicates-inl.h', + '../src/char-predicates.h', + '../src/checks.h', + '../src/code-events.h', + '../src/code-factory.cc', + '../src/code-factory.h', + '../src/code-stub-assembler.cc', + '../src/code-stub-assembler.h', + '../src/code-stubs.cc', + '../src/code-stubs.h', + '../src/code-stubs-utils.h', + '../src/codegen.cc', + '../src/codegen.h', + '../src/collector.h', + '../src/compilation-cache.cc', + '../src/compilation-cache.h', + '../src/compilation-dependencies.cc', + '../src/compilation-dependencies.h', + '../src/compilation-info.cc', + '../src/compilation-info.h', + '../src/compilation-statistics.cc', + '../src/compilation-statistics.h', + '../src/compiler/access-builder.cc', + '../src/compiler/access-builder.h', + '../src/compiler/access-info.cc', + '../src/compiler/access-info.h', + '../src/compiler/all-nodes.cc', + '../src/compiler/all-nodes.h', + '../src/compiler/allocation-builder.h', + '../src/compiler/basic-block-instrumentor.cc', + '../src/compiler/basic-block-instrumentor.h', + '../src/compiler/branch-elimination.cc', + '../src/compiler/branch-elimination.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-liveness-map.cc', + '../src/compiler/bytecode-liveness-map.h', + '../src/compiler/c-linkage.cc', + '../src/compiler/checkpoint-elimination.cc', + '../src/compiler/checkpoint-elimination.h', + '../src/compiler/code-generator-impl.h', + '../src/compiler/code-generator.cc', + '../src/compiler/code-generator.h', + '../src/compiler/code-assembler.cc', + '../src/compiler/code-assembler.h', + '../src/compiler/common-node-cache.cc', + '../src/compiler/common-node-cache.h', + '../src/compiler/common-operator-reducer.cc', + '../src/compiler/common-operator-reducer.h', + '../src/compiler/common-operator.cc', + '../src/compiler/common-operator.h', + '../src/compiler/control-equivalence.cc', + '../src/compiler/control-equivalence.h', + '../src/compiler/control-flow-optimizer.cc', + '../src/compiler/control-flow-optimizer.h', + '../src/compiler/dead-code-elimination.cc', + '../src/compiler/dead-code-elimination.h', + '../src/compiler/diamond.h', + '../src/compiler/effect-control-linearizer.cc', + '../src/compiler/effect-control-linearizer.h', + '../src/compiler/escape-analysis.cc', + '../src/compiler/escape-analysis.h', + '../src/compiler/escape-analysis-reducer.cc', + '../src/compiler/escape-analysis-reducer.h', + '../src/compiler/frame.cc', + '../src/compiler/frame.h', + '../src/compiler/frame-elider.cc', + '../src/compiler/frame-elider.h', + '../src/compiler/frame-states.cc', + '../src/compiler/frame-states.h', + '../src/compiler/functional-list.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-trimmer.cc', + '../src/compiler/graph-trimmer.h', + '../src/compiler/graph-visualizer.cc', + '../src/compiler/graph-visualizer.h', + '../src/compiler/graph.cc', + '../src/compiler/graph.h', + '../src/compiler/instruction-codes.h', + '../src/compiler/instruction-selector-impl.h', + '../src/compiler/instruction-selector.cc', + '../src/compiler/instruction-selector.h', + '../src/compiler/instruction-scheduler.cc', + '../src/compiler/instruction-scheduler.h', + '../src/compiler/instruction.cc', + '../src/compiler/instruction.h', + '../src/compiler/int64-lowering.cc', + '../src/compiler/int64-lowering.h', + '../src/compiler/js-builtin-reducer.cc', + '../src/compiler/js-builtin-reducer.h', + '../src/compiler/js-call-reducer.cc', + '../src/compiler/js-call-reducer.h', + '../src/compiler/js-context-specialization.cc', + '../src/compiler/js-context-specialization.h', + '../src/compiler/js-create-lowering.cc', + '../src/compiler/js-create-lowering.h', + '../src/compiler/js-generic-lowering.cc', + '../src/compiler/js-generic-lowering.h', + '../src/compiler/js-graph.cc', + '../src/compiler/js-graph.h', + '../src/compiler/js-inlining.cc', + '../src/compiler/js-inlining.h', + '../src/compiler/js-inlining-heuristic.cc', + '../src/compiler/js-inlining-heuristic.h', + '../src/compiler/js-intrinsic-lowering.cc', + '../src/compiler/js-intrinsic-lowering.h', + '../src/compiler/js-native-context-specialization.cc', + '../src/compiler/js-native-context-specialization.h', + '../src/compiler/js-operator.cc', + '../src/compiler/js-operator.h', + '../src/compiler/js-type-hint-lowering.cc', + '../src/compiler/js-type-hint-lowering.h', + '../src/compiler/js-typed-lowering.cc', + '../src/compiler/js-typed-lowering.h', + '../src/compiler/jump-threading.cc', + '../src/compiler/jump-threading.h', + '../src/compiler/linkage.cc', + '../src/compiler/linkage.h', + '../src/compiler/live-range-separator.cc', + '../src/compiler/live-range-separator.h', + '../src/compiler/load-elimination.cc', + '../src/compiler/load-elimination.h', + '../src/compiler/loop-analysis.cc', + '../src/compiler/loop-analysis.h', + '../src/compiler/loop-peeling.cc', + '../src/compiler/loop-peeling.h', + '../src/compiler/loop-variable-optimizer.cc', + '../src/compiler/loop-variable-optimizer.h', + '../src/compiler/machine-operator-reducer.cc', + '../src/compiler/machine-operator-reducer.h', + '../src/compiler/machine-operator.cc', + '../src/compiler/machine-operator.h', + '../src/compiler/machine-graph-verifier.cc', + '../src/compiler/machine-graph-verifier.h', + '../src/compiler/memory-optimizer.cc', + '../src/compiler/memory-optimizer.h', + '../src/compiler/move-optimizer.cc', + '../src/compiler/move-optimizer.h', + '../src/compiler/node-aux-data.h', + '../src/compiler/node-cache.cc', + '../src/compiler/node-cache.h', + '../src/compiler/node-marker.cc', + '../src/compiler/node-marker.h', + '../src/compiler/node-matchers.cc', + '../src/compiler/node-matchers.h', + '../src/compiler/node-properties.cc', + '../src/compiler/node-properties.h', + '../src/compiler/node.cc', + '../src/compiler/node.h', + '../src/compiler/opcodes.cc', + '../src/compiler/opcodes.h', + '../src/compiler/operation-typer.cc', + '../src/compiler/operation-typer.h', + '../src/compiler/operator-properties.cc', + '../src/compiler/operator-properties.h', + '../src/compiler/operator.cc', + '../src/compiler/operator.h', + '../src/compiler/osr.cc', + '../src/compiler/osr.h', + '../src/compiler/persistent-map.h', + '../src/compiler/pipeline.cc', + '../src/compiler/pipeline.h', + '../src/compiler/pipeline-statistics.cc', + '../src/compiler/pipeline-statistics.h', + '../src/compiler/property-access-builder.cc', + '../src/compiler/property-access-builder.h', + '../src/compiler/raw-machine-assembler.cc', + '../src/compiler/raw-machine-assembler.h', + '../src/compiler/redundancy-elimination.cc', + '../src/compiler/redundancy-elimination.h', + '../src/compiler/register-allocator.cc', + '../src/compiler/register-allocator.h', + '../src/compiler/register-allocator-verifier.cc', + '../src/compiler/register-allocator-verifier.h', + '../src/compiler/representation-change.cc', + '../src/compiler/representation-change.h', + '../src/compiler/schedule.cc', + '../src/compiler/schedule.h', + '../src/compiler/scheduler.cc', + '../src/compiler/scheduler.h', + '../src/compiler/select-lowering.cc', + '../src/compiler/select-lowering.h', + '../src/compiler/simd-scalar-lowering.cc', + '../src/compiler/simd-scalar-lowering.h', + '../src/compiler/simplified-lowering.cc', + '../src/compiler/simplified-lowering.h', + '../src/compiler/simplified-operator-reducer.cc', + '../src/compiler/simplified-operator-reducer.h', + '../src/compiler/simplified-operator.cc', + '../src/compiler/simplified-operator.h', + '../src/compiler/compiler-source-position-table.cc', + '../src/compiler/compiler-source-position-table.h', + '../src/compiler/state-values-utils.cc', + '../src/compiler/state-values-utils.h', + '../src/compiler/store-store-elimination.cc', + '../src/compiler/store-store-elimination.h', + '../src/compiler/types.cc', + '../src/compiler/types.h', + '../src/compiler/type-cache.cc', + '../src/compiler/type-cache.h', + '../src/compiler/typed-optimization.cc', + '../src/compiler/typed-optimization.h', + '../src/compiler/typer.cc', + '../src/compiler/typer.h', + '../src/compiler/unwinding-info-writer.h', + '../src/compiler/value-numbering-reducer.cc', + '../src/compiler/value-numbering-reducer.h', + '../src/compiler/verifier.cc', + '../src/compiler/verifier.h', + '../src/compiler/wasm-compiler.cc', + '../src/compiler/wasm-compiler.h', + '../src/compiler/wasm-linkage.cc', + '../src/compiler/zone-stats.cc', + '../src/compiler/zone-stats.h', + '../src/compiler-dispatcher/compiler-dispatcher.cc', + '../src/compiler-dispatcher/compiler-dispatcher.h', + '../src/compiler-dispatcher/compiler-dispatcher-job.cc', + '../src/compiler-dispatcher/compiler-dispatcher-job.h', + '../src/compiler-dispatcher/compiler-dispatcher-tracer.cc', + '../src/compiler-dispatcher/compiler-dispatcher-tracer.h', + '../src/compiler-dispatcher/optimizing-compile-dispatcher.cc', + '../src/compiler-dispatcher/optimizing-compile-dispatcher.h', + '../src/compiler-dispatcher/unoptimized-compile-job.cc', + '../src/compiler-dispatcher/unoptimized-compile-job.h', + '../src/compiler.cc', + '../src/compiler.h', + '../src/contexts-inl.h', + '../src/contexts.cc', + '../src/contexts.h', + '../src/conversions-inl.h', + '../src/conversions.cc', + '../src/conversions.h', + '../src/counters-inl.h', + '../src/counters.cc', + '../src/counters.h', + '../src/date.cc', + '../src/date.h', + '../src/dateparser-inl.h', + '../src/dateparser.cc', + '../src/dateparser.h', + '../src/debug/debug-coverage.cc', + '../src/debug/debug-coverage.h', + '../src/debug/debug-evaluate.cc', + '../src/debug/debug-evaluate.h', + '../src/debug/debug-interface.h', + '../src/debug/debug-frames.cc', + '../src/debug/debug-frames.h', + '../src/debug/debug-scope-iterator.cc', + '../src/debug/debug-scope-iterator.h', + '../src/debug/debug-scopes.cc', + '../src/debug/debug-scopes.h', + '../src/debug/debug-stack-trace-iterator.cc', + '../src/debug/debug-stack-trace-iterator.h', + '../src/debug/debug-type-profile.cc', + '../src/debug/debug-type-profile.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', + '../src/deoptimize-reason.h', + '../src/deoptimizer.cc', + '../src/deoptimizer.h', + '../src/detachable-vector.h', + '../src/disasm.h', + '../src/disassembler.cc', + '../src/disassembler.h', + '../src/diy-fp.cc', + '../src/diy-fp.h', + '../src/double.h', + '../src/dtoa.cc', + '../src/dtoa.h', + '../src/eh-frame.cc', + '../src/eh-frame.h', + '../src/elements-kind.cc', + '../src/elements-kind.h', + '../src/elements.cc', + '../src/elements.h', + '../src/execution.cc', + '../src/execution.h', + '../src/extensions/externalize-string-extension.cc', + '../src/extensions/externalize-string-extension.h', + '../src/extensions/free-buffer-extension.cc', + '../src/extensions/free-buffer-extension.h', + '../src/extensions/gc-extension.cc', + '../src/extensions/gc-extension.h', + '../src/extensions/ignition-statistics-extension.cc', + '../src/extensions/ignition-statistics-extension.h', + '../src/extensions/statistics-extension.cc', + '../src/extensions/statistics-extension.h', + '../src/extensions/trigger-failure-extension.cc', + '../src/extensions/trigger-failure-extension.h', + '../src/external-reference-table.cc', + '../src/external-reference-table.h', + '../src/factory-inl.h', + '../src/factory.cc', + '../src/factory.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.h', + '../src/field-index-inl.h', + '../src/field-type.cc', + '../src/field-type.h', + '../src/fixed-dtoa.cc', + '../src/fixed-dtoa.h', + '../src/flag-definitions.h', + '../src/flags.cc', + '../src/flags.h', + '../src/frame-constants.h', + '../src/frames-inl.h', + '../src/frames.cc', + '../src/frames.h', + '../src/futex-emulation.cc', + '../src/futex-emulation.h', + '../src/gdb-jit.cc', + '../src/gdb-jit.h', + '../src/global-handles.cc', + '../src/global-handles.h', + '../src/globals.h', + '../src/handles-inl.h', + '../src/handles.cc', + '../src/handles.h', + '../src/heap-symbols.h', + '../src/heap/array-buffer-collector.cc', + '../src/heap/array-buffer-collector.h', + '../src/heap/array-buffer-tracker-inl.h', + '../src/heap/array-buffer-tracker.cc', + '../src/heap/array-buffer-tracker.h', + '../src/heap/barrier.h', + '../src/heap/code-stats.cc', + '../src/heap/code-stats.h', + '../src/heap/concurrent-marking.cc', + '../src/heap/concurrent-marking.h', + '../src/heap/embedder-tracing.cc', + '../src/heap/embedder-tracing.h', + '../src/heap/memory-reducer.cc', + '../src/heap/memory-reducer.h', + '../src/heap/gc-idle-time-handler.cc', + '../src/heap/gc-idle-time-handler.h', + '../src/heap/gc-tracer.cc', + '../src/heap/gc-tracer.h', + '../src/heap/heap-inl.h', + '../src/heap/heap.cc', + '../src/heap/heap.h', + '../src/heap/incremental-marking-inl.h', + '../src/heap/incremental-marking-job.cc', + '../src/heap/incremental-marking-job.h', + '../src/heap/incremental-marking.cc', + '../src/heap/incremental-marking.h', + '../src/heap/invalidated-slots-inl.h', + '../src/heap/invalidated-slots.cc', + '../src/heap/invalidated-slots.h', + '../src/heap/item-parallel-job.cc', + '../src/heap/item-parallel-job.h', + '../src/heap/local-allocator.h', + '../src/heap/mark-compact-inl.h', + '../src/heap/mark-compact.cc', + '../src/heap/mark-compact.h', + '../src/heap/marking.cc', + '../src/heap/marking.h', + '../src/heap/object-stats.cc', + '../src/heap/object-stats.h', + '../src/heap/objects-visiting-inl.h', + '../src/heap/objects-visiting.cc', + '../src/heap/objects-visiting.h', + '../src/heap/remembered-set.h', + '../src/heap/scavenge-job.h', + '../src/heap/scavenge-job.cc', + '../src/heap/scavenger-inl.h', + '../src/heap/scavenger.cc', + '../src/heap/scavenger.h', + '../src/heap/slot-set.h', + '../src/heap/spaces-inl.h', + '../src/heap/spaces.cc', + '../src/heap/spaces.h', + '../src/heap/store-buffer.cc', + '../src/heap/store-buffer.h', + '../src/heap/stress-marking-observer.cc', + '../src/heap/stress-marking-observer.h', + '../src/heap/stress-scavenge-observer.cc', + '../src/heap/stress-scavenge-observer.h', + '../src/heap/sweeper.cc', + '../src/heap/sweeper.h', + '../src/heap/worklist.h', + '../src/intl.cc', + '../src/intl.h', + '../src/icu_util.cc', + '../src/icu_util.h', + '../src/ic/call-optimization.cc', + '../src/ic/call-optimization.h', + '../src/ic/handler-configuration.cc', + '../src/ic/handler-configuration-inl.h', + '../src/ic/handler-configuration.h', + '../src/ic/ic-inl.h', + '../src/ic/ic-stats.cc', + '../src/ic/ic-stats.h', + '../src/ic/ic.cc', + '../src/ic/ic.h', + '../src/identity-map.cc', + '../src/identity-map.h', + '../src/instruction-stream.cc', + '../src/instruction-stream.h', + '../src/interface-descriptors.cc', + '../src/interface-descriptors.h', + '../src/interpreter/block-coverage-builder.h', + '../src/interpreter/bytecodes.cc', + '../src/interpreter/bytecodes.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-decoder.cc', + '../src/interpreter/bytecode-decoder.h', + '../src/interpreter/bytecode-flags.cc', + '../src/interpreter/bytecode-flags.h', + '../src/interpreter/bytecode-generator.cc', + '../src/interpreter/bytecode-generator.h', + '../src/interpreter/bytecode-label.cc', + '../src/interpreter/bytecode-label.h', + '../src/interpreter/bytecode-node.cc', + '../src/interpreter/bytecode-node.h', + '../src/interpreter/bytecode-operands.cc', + '../src/interpreter/bytecode-operands.h', + '../src/interpreter/bytecode-register.cc', + '../src/interpreter/bytecode-register.h', + '../src/interpreter/bytecode-register-allocator.h', + '../src/interpreter/bytecode-register-optimizer.cc', + '../src/interpreter/bytecode-register-optimizer.h', + '../src/interpreter/bytecode-source-info.cc', + '../src/interpreter/bytecode-source-info.h', + '../src/interpreter/bytecode-jump-table.h', + '../src/interpreter/bytecode-traits.h', + '../src/interpreter/constant-array-builder.cc', + '../src/interpreter/constant-array-builder.h', + '../src/interpreter/control-flow-builders.cc', + '../src/interpreter/control-flow-builders.h', + '../src/interpreter/handler-table-builder.cc', + '../src/interpreter/handler-table-builder.h', + '../src/interpreter/interpreter.cc', + '../src/interpreter/interpreter.h', + '../src/interpreter/interpreter-generator.h', + '../src/interpreter/interpreter-intrinsics.cc', + '../src/interpreter/interpreter-intrinsics.h', + '../src/isolate-inl.h', + '../src/isolate.cc', + '../src/isolate.h', + '../src/json-parser.cc', + '../src/json-parser.h', + '../src/json-stringifier.cc', + '../src/json-stringifier.h', + '../src/keys.h', + '../src/keys.cc', + '../src/label.h', + '../src/layout-descriptor-inl.h', + '../src/layout-descriptor.cc', + '../src/layout-descriptor.h', + '../src/locked-queue-inl.h', + '../src/locked-queue.h', + '../src/log-inl.h', + '../src/log-utils.cc', + '../src/log-utils.h', + '../src/log.cc', + '../src/log.h', + '../src/lookup-cache-inl.h', + '../src/lookup-cache.cc', + '../src/lookup-cache.h', + '../src/lookup.cc', + '../src/lookup.h', + '../src/map-updater.cc', + '../src/map-updater.h', + '../src/macro-assembler-inl.h', + '../src/macro-assembler.h', + '../src/machine-type.cc', + '../src/machine-type.h', + '../src/managed.h', + '../src/messages.cc', + '../src/messages.h', + '../src/msan.h', + '../src/objects-body-descriptors-inl.h', + '../src/objects-body-descriptors.h', + '../src/objects-debug.cc', + '../src/objects-inl.h', + '../src/objects-printer.cc', + '../src/objects.cc', + '../src/objects.h', + '../src/objects/arguments-inl.h', + '../src/objects/arguments.h', + '../src/objects/bigint.cc', + '../src/objects/bigint.h', + '../src/objects/code-inl.h', + '../src/objects/code.h', + '../src/objects/compilation-cache.h', + '../src/objects/compilation-cache-inl.h', + '../src/objects/data-handler.h', + '../src/objects/data-handler-inl.h', + '../src/objects/debug-objects-inl.h', + '../src/objects/debug-objects.cc', + '../src/objects/debug-objects.h', + '../src/objects/descriptor-array.h', + '../src/objects/dictionary.h', + '../src/objects/fixed-array.h', + '../src/objects/fixed-array-inl.h', + '../src/objects/frame-array.h', + '../src/objects/frame-array-inl.h', + '../src/objects/hash-table-inl.h', + '../src/objects/hash-table.h', + '../src/objects/intl-objects.cc', + '../src/objects/intl-objects.h', + '../src/objects/js-array.h', + '../src/objects/js-array-inl.h', + '../src/objects/js-collection.h', + '../src/objects/js-collection-inl.h', + '../src/objects/js-regexp.h', + '../src/objects/js-regexp-inl.h', + '../src/objects/literal-objects.cc', + '../src/objects/literal-objects-inl.h', + '../src/objects/literal-objects.h', + '../src/objects/map-inl.h', + '../src/objects/map.h', + '../src/objects/name-inl.h', + '../src/objects/name.h', + '../src/objects/module-inl.h', + '../src/objects/module.cc', + '../src/objects/module.h', + '../src/objects/object-macros.h', + '../src/objects/object-macros-undef.h', + '../src/objects/property-descriptor-object.h', + '../src/objects/property-descriptor-object-inl.h', + '../src/objects/regexp-match-info.h', + '../src/objects/scope-info.cc', + '../src/objects/scope-info.h', + '../src/objects/script.h', + '../src/objects/script-inl.h', + '../src/objects/shared-function-info-inl.h', + '../src/objects/shared-function-info.h', + '../src/objects/string-inl.h', + '../src/objects/string.h', + '../src/objects/string-table.h', + '../src/objects/template-objects.cc', + '../src/objects/template-objects.h', + '../src/ostreams.cc', + '../src/ostreams.h', + '../src/parsing/background-parsing-task.cc', + '../src/parsing/background-parsing-task.h', + '../src/parsing/duplicate-finder.h', + '../src/parsing/expression-classifier.h', + '../src/parsing/expression-scope-reparenter.cc', + '../src/parsing/expression-scope-reparenter.h', + '../src/parsing/func-name-inferrer.cc', + '../src/parsing/func-name-inferrer.h', + '../src/parsing/parse-info.cc', + '../src/parsing/parse-info.h', + '../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', + '../src/parsing/preparse-data.h', + '../src/parsing/preparsed-scope-data.cc', + '../src/parsing/preparsed-scope-data.h', + '../src/parsing/preparser.cc', + '../src/parsing/preparser.h', + '../src/parsing/rewriter.cc', + '../src/parsing/rewriter.h', + '../src/parsing/scanner-character-streams.cc', + '../src/parsing/scanner-character-streams.h', + '../src/parsing/scanner.cc', + '../src/parsing/scanner.h', + '../src/parsing/token.cc', + '../src/parsing/token.h', + '../src/pending-compilation-error-handler.cc', + '../src/pending-compilation-error-handler.h', + '../src/perf-jit.cc', + '../src/perf-jit.h', + '../src/profiler/allocation-tracker.cc', + '../src/profiler/allocation-tracker.h', + '../src/profiler/circular-queue-inl.h', + '../src/profiler/circular-queue.h', + '../src/profiler/cpu-profiler-inl.h', + '../src/profiler/cpu-profiler.cc', + '../src/profiler/cpu-profiler.h', + '../src/profiler/heap-profiler.cc', + '../src/profiler/heap-profiler.h', + '../src/profiler/heap-snapshot-generator-inl.h', + '../src/profiler/heap-snapshot-generator.cc', + '../src/profiler/heap-snapshot-generator.h', + '../src/profiler/profiler-listener.cc', + '../src/profiler/profiler-listener.h', + '../src/profiler/profile-generator-inl.h', + '../src/profiler/profile-generator.cc', + '../src/profiler/profile-generator.h', + '../src/profiler/sampling-heap-profiler.cc', + '../src/profiler/sampling-heap-profiler.h', + '../src/profiler/strings-storage.cc', + '../src/profiler/strings-storage.h', + '../src/profiler/tick-sample.cc', + '../src/profiler/tick-sample.h', + '../src/profiler/tracing-cpu-profiler.cc', + '../src/profiler/tracing-cpu-profiler.h', + '../src/profiler/unbound-queue-inl.h', + '../src/profiler/unbound-queue.h', + '../src/property-descriptor.cc', + '../src/property-descriptor.h', + '../src/property-details.h', + '../src/property.cc', + '../src/property.h', + '../src/prototype.h', + '../src/regexp/bytecodes-irregexp.h', + '../src/regexp/interpreter-irregexp.cc', + '../src/regexp/interpreter-irregexp.h', + '../src/regexp/jsregexp-inl.h', + '../src/regexp/jsregexp.cc', + '../src/regexp/jsregexp.h', + '../src/regexp/regexp-ast.cc', + '../src/regexp/regexp-ast.h', + '../src/regexp/regexp-macro-assembler-irregexp-inl.h', + '../src/regexp/regexp-macro-assembler-irregexp.cc', + '../src/regexp/regexp-macro-assembler-irregexp.h', + '../src/regexp/regexp-macro-assembler-tracer.cc', + '../src/regexp/regexp-macro-assembler-tracer.h', + '../src/regexp/regexp-macro-assembler.cc', + '../src/regexp/regexp-macro-assembler.h', + '../src/regexp/regexp-parser.cc', + '../src/regexp/regexp-parser.h', + '../src/regexp/regexp-stack.cc', + '../src/regexp/regexp-stack.h', + '../src/regexp/regexp-utils.cc', + '../src/regexp/regexp-utils.h', + '../src/register-configuration.cc', + '../src/register-configuration.h', + '../src/reglist.h', + '../src/runtime-profiler.cc', + '../src/runtime-profiler.h', + '../src/runtime/runtime-array.cc', + '../src/runtime/runtime-atomics.cc', + '../src/runtime/runtime-bigint.cc', + '../src/runtime/runtime-classes.cc', + '../src/runtime/runtime-collections.cc', + '../src/runtime/runtime-compiler.cc', + '../src/runtime/runtime-date.cc', + '../src/runtime/runtime-debug.cc', + '../src/runtime/runtime-forin.cc', + '../src/runtime/runtime-function.cc', + '../src/runtime/runtime-error.cc', + '../src/runtime/runtime-futex.cc', + '../src/runtime/runtime-generator.cc', + '../src/runtime/runtime-intl.cc', + '../src/runtime/runtime-internal.cc', + '../src/runtime/runtime-interpreter.cc', + '../src/runtime/runtime-literals.cc', + '../src/runtime/runtime-liveedit.cc', + '../src/runtime/runtime-maths.cc', + '../src/runtime/runtime-module.cc', + '../src/runtime/runtime-numbers.cc', + '../src/runtime/runtime-object.cc', + '../src/runtime/runtime-operators.cc', + '../src/runtime/runtime-promise.cc', + '../src/runtime/runtime-proxy.cc', + '../src/runtime/runtime-regexp.cc', + '../src/runtime/runtime-scopes.cc', + '../src/runtime/runtime-strings.cc', + '../src/runtime/runtime-symbol.cc', + '../src/runtime/runtime-test.cc', + '../src/runtime/runtime-typedarray.cc', + '../src/runtime/runtime-utils.h', + '../src/runtime/runtime-wasm.cc', + '../src/runtime/runtime.cc', + '../src/runtime/runtime.h', + '../src/safepoint-table.cc', + '../src/safepoint-table.h', + '../src/setup-isolate.h', + '../src/signature.h', + '../src/simulator-base.cc', + '../src/simulator-base.h', + '../src/simulator.h', + '../src/snapshot/builtin-deserializer-allocator.cc', + '../src/snapshot/builtin-deserializer-allocator.h', + '../src/snapshot/builtin-deserializer.cc', + '../src/snapshot/builtin-deserializer.h', + '../src/snapshot/builtin-serializer-allocator.cc', + '../src/snapshot/builtin-serializer-allocator.h', + '../src/snapshot/builtin-serializer.cc', + '../src/snapshot/builtin-serializer.h', + '../src/snapshot/builtin-snapshot-utils.cc', + '../src/snapshot/builtin-snapshot-utils.h', + '../src/snapshot/code-serializer.cc', + '../src/snapshot/code-serializer.h', + '../src/snapshot/default-deserializer-allocator.cc', + '../src/snapshot/default-deserializer-allocator.h', + '../src/snapshot/default-serializer-allocator.cc', + '../src/snapshot/default-serializer-allocator.h', + '../src/snapshot/deserializer.cc', + '../src/snapshot/deserializer.h', + '../src/snapshot/natives-common.cc', + '../src/snapshot/natives.h', + '../src/snapshot/object-deserializer.cc', + '../src/snapshot/object-deserializer.h', + '../src/snapshot/partial-deserializer.cc', + '../src/snapshot/partial-deserializer.h', + '../src/snapshot/partial-serializer.cc', + '../src/snapshot/partial-serializer.h', + '../src/snapshot/serializer.cc', + '../src/snapshot/serializer-common.cc', + '../src/snapshot/serializer-common.h', + '../src/snapshot/serializer.h', + '../src/snapshot/snapshot-common.cc', + '../src/snapshot/snapshot.h', + '../src/snapshot/snapshot-source-sink.cc', + '../src/snapshot/snapshot-source-sink.h', + '../src/snapshot/startup-deserializer.cc', + '../src/snapshot/startup-deserializer.h', + '../src/snapshot/startup-serializer.cc', + '../src/snapshot/startup-serializer.h', + '../src/source-position-table.cc', + '../src/source-position-table.h', + '../src/source-position.cc', + '../src/source-position.h', + '../src/splay-tree.h', + '../src/splay-tree-inl.h', + '../src/startup-data-util.cc', + '../src/startup-data-util.h', + '../src/string-builder.cc', + '../src/string-builder.h', + '../src/string-case.cc', + '../src/string-case.h', + '../src/string-hasher-inl.h', + '../src/string-hasher.h', + '../src/string-search.h', + '../src/string-stream.cc', + '../src/string-stream.h', + '../src/strtod.cc', + '../src/strtod.h', + '../src/ic/stub-cache.cc', + '../src/ic/stub-cache.h', + '../src/third_party/utf8-decoder/utf8-decoder.h', + '../src/tracing/trace-event.cc', + '../src/tracing/trace-event.h', + '../src/tracing/traced-value.cc', + '../src/tracing/traced-value.h', + '../src/tracing/tracing-category-observer.cc', + '../src/tracing/tracing-category-observer.h', + '../src/transitions-inl.h', + '../src/transitions.cc', + '../src/transitions.h', + '../src/trap-handler/handler-outside.cc', + '../src/trap-handler/handler-shared.cc', + '../src/trap-handler/trap-handler.h', + '../src/trap-handler/trap-handler-internal.h', + '../src/type-hints.cc', + '../src/type-hints.h', + '../src/unicode-inl.h', + '../src/unicode.cc', + '../src/unicode.h', + '../src/unicode-cache-inl.h', + '../src/unicode-cache.h', + '../src/unicode-decoder.cc', + '../src/unicode-decoder.h', + '../src/uri.cc', + '../src/uri.h', + '../src/utils-inl.h', + '../src/utils.cc', + '../src/utils.h', + '../src/v8.cc', + '../src/v8.h', + '../src/v8memory.h', + '../src/v8threads.cc', + '../src/v8threads.h', + '../src/value-serializer.cc', + '../src/value-serializer.h', + '../src/vector-slot-pair.cc', + '../src/vector-slot-pair.h', + '../src/vector.h', + '../src/version.cc', + '../src/version.h', + '../src/visitors.cc', + '../src/visitors.h', + '../src/vm-state-inl.h', + '../src/vm-state.h', + '../src/wasm/baseline/liftoff-assembler-defs.h', + '../src/wasm/baseline/liftoff-assembler.cc', + '../src/wasm/baseline/liftoff-assembler.h', + '../src/wasm/baseline/liftoff-compiler.cc', + '../src/wasm/baseline/liftoff-register.h', + '../src/wasm/compilation-manager.cc', + '../src/wasm/compilation-manager.h', + '../src/wasm/decoder.h', + '../src/wasm/function-body-decoder.cc', + '../src/wasm/function-body-decoder.h', + '../src/wasm/function-body-decoder-impl.h', + '../src/wasm/leb-helper.h', + '../src/wasm/local-decl-encoder.cc', + '../src/wasm/local-decl-encoder.h', + '../src/wasm/memory-tracing.cc', + '../src/wasm/memory-tracing.h', + '../src/wasm/module-compiler.cc', + '../src/wasm/module-compiler.h', + '../src/wasm/module-decoder.cc', + '../src/wasm/module-decoder.h', + '../src/wasm/signature-map.cc', + '../src/wasm/signature-map.h', + '../src/wasm/streaming-decoder.cc', + '../src/wasm/streaming-decoder.h', + '../src/wasm/wasm-code-manager.cc', + '../src/wasm/wasm-code-manager.h', + '../src/wasm/wasm-code-specialization.cc', + '../src/wasm/wasm-code-specialization.h', + '../src/wasm/wasm-code-wrapper.cc', + '../src/wasm/wasm-code-wrapper.h', + '../src/wasm/wasm-constants.h', + '../src/wasm/wasm-debug.cc', + '../src/wasm/wasm-engine.cc', + '../src/wasm/wasm-engine.h', + '../src/wasm/wasm-external-refs.cc', + '../src/wasm/wasm-external-refs.h', + '../src/wasm/wasm-js.cc', + '../src/wasm/wasm-js.h', + '../src/wasm/wasm-limits.h', + '../src/wasm/wasm-memory.cc', + '../src/wasm/wasm-memory.h', + '../src/wasm/wasm-module.cc', + '../src/wasm/wasm-module.h', + '../src/wasm/wasm-module-builder.cc', + '../src/wasm/wasm-module-builder.h', + '../src/wasm/wasm-interpreter.cc', + '../src/wasm/wasm-interpreter.h', + '../src/wasm/wasm-objects-inl.h', + '../src/wasm/wasm-objects.cc', + '../src/wasm/wasm-objects.h', + '../src/wasm/wasm-opcodes.cc', + '../src/wasm/wasm-opcodes.h', + '../src/wasm/wasm-result.cc', + '../src/wasm/wasm-result.h', + '../src/wasm/wasm-serialization.cc', + '../src/wasm/wasm-serialization.h', + '../src/wasm/wasm-text.cc', + '../src/wasm/wasm-text.h', + '../src/wasm/wasm-value.h', + '../src/zone/accounting-allocator.cc', + '../src/zone/accounting-allocator.h', + '../src/zone/zone-segment.cc', + '../src/zone/zone-segment.h', + '../src/zone/zone.cc', + '../src/zone/zone.h', + '../src/zone/zone-chunk-list.h', + '../src/zone/zone-segment.cc', + '../src/zone/zone-segment.h', + '../src/zone/zone-allocator.h', + '../src/zone/zone-containers.h', + '../src/zone/zone-handle-set.h', + '../src/zone/zone-list-inl.h', + ], + 'conditions': [ + ['want_separate_host_toolset==1', { + 'toolsets': ['host', 'target'], + }, { + 'toolsets': ['target'], + }], + ['v8_target_arch=="arm"', { + 'sources': [ + '../src/arm/assembler-arm-inl.h', + '../src/arm/assembler-arm.cc', + '../src/arm/assembler-arm.h', + '../src/arm/code-stubs-arm.cc', + '../src/arm/code-stubs-arm.h', + '../src/arm/codegen-arm.cc', + '../src/arm/constants-arm.h', + '../src/arm/constants-arm.cc', + '../src/arm/cpu-arm.cc', + '../src/arm/deoptimizer-arm.cc', + '../src/arm/disasm-arm.cc', + '../src/arm/frame-constants-arm.cc', + '../src/arm/frame-constants-arm.h', + '../src/arm/interface-descriptors-arm.cc', + '../src/arm/interface-descriptors-arm.h', + '../src/arm/macro-assembler-arm.cc', + '../src/arm/macro-assembler-arm.h', + '../src/arm/simulator-arm.cc', + '../src/arm/simulator-arm.h', + '../src/arm/eh-frame-arm.cc', + '../src/compiler/arm/code-generator-arm.cc', + '../src/compiler/arm/instruction-codes-arm.h', + '../src/compiler/arm/instruction-scheduler-arm.cc', + '../src/compiler/arm/instruction-selector-arm.cc', + '../src/compiler/arm/unwinding-info-writer-arm.cc', + '../src/compiler/arm/unwinding-info-writer-arm.h', + '../src/debug/arm/debug-arm.cc', + '../src/regexp/arm/regexp-macro-assembler-arm.cc', + '../src/regexp/arm/regexp-macro-assembler-arm.h', + '../src/wasm/baseline/arm/liftoff-assembler-arm.h', + ], + }], + ['v8_target_arch=="arm64"', { + 'sources': [ + '../src/arm64/assembler-arm64.cc', + '../src/arm64/assembler-arm64.h', + '../src/arm64/assembler-arm64-inl.h', + '../src/arm64/codegen-arm64.cc', + '../src/arm64/code-stubs-arm64.cc', + '../src/arm64/code-stubs-arm64.h', + '../src/arm64/constants-arm64.h', + '../src/arm64/cpu-arm64.cc', + '../src/arm64/decoder-arm64.cc', + '../src/arm64/decoder-arm64.h', + '../src/arm64/decoder-arm64-inl.h', + '../src/arm64/deoptimizer-arm64.cc', + '../src/arm64/disasm-arm64.cc', + '../src/arm64/disasm-arm64.h', + '../src/arm64/frame-constants-arm64.cc', + '../src/arm64/frame-constants-arm64.h', + '../src/arm64/instructions-arm64-constants.cc', + '../src/arm64/instructions-arm64.cc', + '../src/arm64/instructions-arm64.h', + '../src/arm64/instrument-arm64.cc', + '../src/arm64/instrument-arm64.h', + '../src/arm64/interface-descriptors-arm64.cc', + '../src/arm64/interface-descriptors-arm64.h', + '../src/arm64/macro-assembler-arm64.cc', + '../src/arm64/macro-assembler-arm64.h', + '../src/arm64/macro-assembler-arm64-inl.h', + '../src/arm64/simulator-arm64.cc', + '../src/arm64/simulator-arm64.h', + '../src/arm64/simulator-logic-arm64.cc', + '../src/arm64/utils-arm64.cc', + '../src/arm64/utils-arm64.h', + '../src/arm64/eh-frame-arm64.cc', + '../src/compiler/arm64/code-generator-arm64.cc', + '../src/compiler/arm64/instruction-codes-arm64.h', + '../src/compiler/arm64/instruction-scheduler-arm64.cc', + '../src/compiler/arm64/instruction-selector-arm64.cc', + '../src/compiler/arm64/unwinding-info-writer-arm64.cc', + '../src/compiler/arm64/unwinding-info-writer-arm64.h', + '../src/debug/arm64/debug-arm64.cc', + '../src/regexp/arm64/regexp-macro-assembler-arm64.cc', + '../src/regexp/arm64/regexp-macro-assembler-arm64.h', + '../src/wasm/baseline/arm64/liftoff-assembler-arm64.h', + ], + }], + ['v8_target_arch=="ia32"', { + 'sources': [ + '../src/ia32/assembler-ia32-inl.h', + '../src/ia32/assembler-ia32.cc', + '../src/ia32/assembler-ia32.h', + '../src/ia32/code-stubs-ia32.cc', + '../src/ia32/codegen-ia32.cc', + '../src/ia32/cpu-ia32.cc', + '../src/ia32/deoptimizer-ia32.cc', + '../src/ia32/disasm-ia32.cc', + '../src/ia32/frame-constants-ia32.cc', + '../src/ia32/frame-constants-ia32.h', + '../src/ia32/interface-descriptors-ia32.cc', + '../src/ia32/macro-assembler-ia32.cc', + '../src/ia32/macro-assembler-ia32.h', + '../src/ia32/simulator-ia32.cc', + '../src/ia32/simulator-ia32.h', + '../src/ia32/sse-instr.h', + '../src/compiler/ia32/code-generator-ia32.cc', + '../src/compiler/ia32/instruction-codes-ia32.h', + '../src/compiler/ia32/instruction-scheduler-ia32.cc', + '../src/compiler/ia32/instruction-selector-ia32.cc', + '../src/debug/ia32/debug-ia32.cc', + '../src/regexp/ia32/regexp-macro-assembler-ia32.cc', + '../src/regexp/ia32/regexp-macro-assembler-ia32.h', + '../src/wasm/baseline/ia32/liftoff-assembler-ia32.h', + ], + }], + ['v8_target_arch=="mips" or v8_target_arch=="mipsel"', { + 'sources': [ + '../src/mips/assembler-mips.cc', + '../src/mips/assembler-mips.h', + '../src/mips/assembler-mips-inl.h', + '../src/mips/codegen-mips.cc', + '../src/mips/code-stubs-mips.cc', + '../src/mips/code-stubs-mips.h', + '../src/mips/constants-mips.cc', + '../src/mips/constants-mips.h', + '../src/mips/cpu-mips.cc', + '../src/mips/deoptimizer-mips.cc', + '../src/mips/disasm-mips.cc', + '../src/mips/frame-constants-mips.cc', + '../src/mips/frame-constants-mips.h', + '../src/mips/interface-descriptors-mips.cc', + '../src/mips/macro-assembler-mips.cc', + '../src/mips/macro-assembler-mips.h', + '../src/mips/simulator-mips.cc', + '../src/mips/simulator-mips.h', + '../src/compiler/mips/code-generator-mips.cc', + '../src/compiler/mips/instruction-codes-mips.h', + '../src/compiler/mips/instruction-scheduler-mips.cc', + '../src/compiler/mips/instruction-selector-mips.cc', + '../src/debug/mips/debug-mips.cc', + '../src/regexp/mips/regexp-macro-assembler-mips.cc', + '../src/regexp/mips/regexp-macro-assembler-mips.h', + '../src/wasm/baseline/mips/liftoff-assembler-mips.h', + ], + }], + ['v8_target_arch=="mips64" or v8_target_arch=="mips64el"', { + 'sources': [ + '../src/mips64/assembler-mips64.cc', + '../src/mips64/assembler-mips64.h', + '../src/mips64/assembler-mips64-inl.h', + '../src/mips64/codegen-mips64.cc', + '../src/mips64/code-stubs-mips64.cc', + '../src/mips64/code-stubs-mips64.h', + '../src/mips64/constants-mips64.cc', + '../src/mips64/constants-mips64.h', + '../src/mips64/cpu-mips64.cc', + '../src/mips64/deoptimizer-mips64.cc', + '../src/mips64/disasm-mips64.cc', + '../src/mips64/frame-constants-mips64.cc', + '../src/mips64/frame-constants-mips64.h', + '../src/mips64/interface-descriptors-mips64.cc', + '../src/mips64/macro-assembler-mips64.cc', + '../src/mips64/macro-assembler-mips64.h', + '../src/mips64/simulator-mips64.cc', + '../src/mips64/simulator-mips64.h', + '../src/compiler/mips64/code-generator-mips64.cc', + '../src/compiler/mips64/instruction-codes-mips64.h', + '../src/compiler/mips64/instruction-scheduler-mips64.cc', + '../src/compiler/mips64/instruction-selector-mips64.cc', + '../src/debug/mips64/debug-mips64.cc', + '../src/regexp/mips64/regexp-macro-assembler-mips64.cc', + '../src/regexp/mips64/regexp-macro-assembler-mips64.h', + '../src/wasm/baseline/mips64/liftoff-assembler-mips64.h', + ], + }], + ['v8_target_arch=="x64"', { + 'sources': [ + '../src/compiler/x64/code-generator-x64.cc', + '../src/compiler/x64/instruction-codes-x64.h', + '../src/compiler/x64/instruction-scheduler-x64.cc', + '../src/compiler/x64/instruction-selector-x64.cc', + '../src/compiler/x64/unwinding-info-writer-x64.cc', + '../src/compiler/x64/unwinding-info-writer-x64.h', + '../src/x64/assembler-x64-inl.h', + '../src/x64/assembler-x64.cc', + '../src/x64/assembler-x64.h', + '../src/x64/code-stubs-x64.cc', + '../src/x64/codegen-x64.cc', + '../src/x64/cpu-x64.cc', + '../src/x64/deoptimizer-x64.cc', + '../src/x64/disasm-x64.cc', + '../src/x64/eh-frame-x64.cc', + '../src/x64/frame-constants-x64.cc', + '../src/x64/frame-constants-x64.h', + '../src/x64/interface-descriptors-x64.cc', + '../src/x64/macro-assembler-x64.cc', + '../src/x64/macro-assembler-x64.h', + '../src/x64/simulator-x64.cc', + '../src/x64/simulator-x64.h', + '../src/x64/sse-instr.h', + '../src/debug/x64/debug-x64.cc', + '../src/regexp/x64/regexp-macro-assembler-x64.cc', + '../src/regexp/x64/regexp-macro-assembler-x64.h', + '../src/third_party/valgrind/valgrind.h', + '../src/wasm/baseline/x64/liftoff-assembler-x64.h', + ], + }], + ['v8_target_arch=="x64" and OS=="linux"', { + 'sources': ['../src/trap-handler/handler-inside.cc'] + }], + ['v8_target_arch=="ppc" or v8_target_arch=="ppc64"', { + 'sources': [ + '../src/compiler/ppc/code-generator-ppc.cc', + '../src/compiler/ppc/instruction-codes-ppc.h', + '../src/compiler/ppc/instruction-scheduler-ppc.cc', + '../src/compiler/ppc/instruction-selector-ppc.cc', + '../src/debug/ppc/debug-ppc.cc', + '../src/ppc/assembler-ppc-inl.h', + '../src/ppc/assembler-ppc.cc', + '../src/ppc/assembler-ppc.h', + '../src/ppc/code-stubs-ppc.cc', + '../src/ppc/code-stubs-ppc.h', + '../src/ppc/codegen-ppc.cc', + '../src/ppc/constants-ppc.h', + '../src/ppc/constants-ppc.cc', + '../src/ppc/cpu-ppc.cc', + '../src/ppc/deoptimizer-ppc.cc', + '../src/ppc/disasm-ppc.cc', + '../src/ppc/frame-constants-ppc.cc', + '../src/ppc/frame-constants-ppc.h', + '../src/ppc/interface-descriptors-ppc.cc', + '../src/ppc/macro-assembler-ppc.cc', + '../src/ppc/macro-assembler-ppc.h', + '../src/ppc/simulator-ppc.cc', + '../src/ppc/simulator-ppc.h', + '../src/regexp/ppc/regexp-macro-assembler-ppc.cc', + '../src/regexp/ppc/regexp-macro-assembler-ppc.h', + '../src/wasm/baseline/ppc/liftoff-assembler-ppc.h', + ], + }], + ['v8_target_arch=="s390" or v8_target_arch=="s390x"', { + 'sources': [ + '../src/compiler/s390/code-generator-s390.cc', + '../src/compiler/s390/instruction-codes-s390.h', + '../src/compiler/s390/instruction-scheduler-s390.cc', + '../src/compiler/s390/instruction-selector-s390.cc', + '../src/debug/s390/debug-s390.cc', + '../src/regexp/s390/regexp-macro-assembler-s390.cc', + '../src/regexp/s390/regexp-macro-assembler-s390.h', + '../src/s390/assembler-s390.cc', + '../src/s390/assembler-s390.h', + '../src/s390/assembler-s390-inl.h', + '../src/s390/codegen-s390.cc', + '../src/s390/code-stubs-s390.cc', + '../src/s390/code-stubs-s390.h', + '../src/s390/constants-s390.cc', + '../src/s390/constants-s390.h', + '../src/s390/cpu-s390.cc', + '../src/s390/deoptimizer-s390.cc', + '../src/s390/disasm-s390.cc', + '../src/s390/frame-constants-s390.cc', + '../src/s390/frame-constants-s390.h', + '../src/s390/interface-descriptors-s390.cc', + '../src/s390/macro-assembler-s390.cc', + '../src/s390/macro-assembler-s390.h', + '../src/s390/simulator-s390.cc', + '../src/s390/simulator-s390.h', + '../src/wasm/baseline/s390/liftoff-assembler-s390.h', + ], + }], + ['OS=="win"', { + 'variables': { + 'gyp_generators': ' GetExecutionState() const = 0; - virtual Local GetEventData() const = 0; - - /** - * Get the debugger protocol JSON. - */ - virtual Local GetJSON() const = 0; - - /** - * Get the context active when the debug event happened. Note this is not - * the current active context as the JavaScript part of the debugger is - * running in its own context which is entered at this point. - */ - virtual Local GetEventContext() const = 0; - - /** - * Client data passed with the corresponding request if any. This is the - * client_data data value passed into Debug::SendCommand along with the - * request that led to the message or NULL if the message is an event. The - * debugger takes ownership of the data and will delete it even if there is - * no message handler. - */ - virtual ClientData* GetClientData() const = 0; - - virtual Isolate* GetIsolate() const = 0; - - virtual ~Message() {} - }; - - /** - * An event details object passed to the debug event listener. - */ - class EventDetails { - public: - /** - * Event type. - */ - virtual DebugEvent GetEvent() const = 0; - - /** - * Access to execution state and event data of the debug event. Don't store - * these cross callbacks as their content becomes invalid. - */ - virtual Local GetExecutionState() const = 0; - virtual Local GetEventData() const = 0; - - /** - * Get the context active when the debug event happened. Note this is not - * the current active context as the JavaScript part of the debugger is - * running in its own context which is entered at this point. - */ - virtual Local GetEventContext() const = 0; - - /** - * Client data passed with the corresponding callback when it was - * registered. - */ - virtual Local GetCallbackData() const = 0; - - /** - * This is now a dummy that returns nullptr. - */ - virtual ClientData* GetClientData() const = 0; - - virtual Isolate* GetIsolate() const = 0; - - virtual ~EventDetails() {} - }; - - /** - * Debug event callback function. - * - * \param event_details object providing information about the debug event - * - * A EventCallback does not take possession of the event data, - * and must not rely on the data persisting after the handler returns. - */ - typedef void (*EventCallback)(const EventDetails& event_details); - - /** - * This is now a no-op. - */ - typedef void (*MessageHandler)(const Message& message); - - V8_DEPRECATED("No longer supported", static bool SetDebugEventListener( - Isolate* isolate, EventCallback that, - Local data = Local())); - - // Schedule a debugger break to happen when JavaScript code is run - // in the given isolate. - V8_DEPRECATED("No longer supported", - static void DebugBreak(Isolate* isolate)); - - // Remove scheduled debugger break in given isolate if it has not - // happened yet. - V8_DEPRECATED("No longer supported", - static void CancelDebugBreak(Isolate* isolate)); - - // Check if a debugger break is scheduled in the given isolate. - V8_DEPRECATED("No longer supported", - static bool CheckDebugBreak(Isolate* isolate)); - - // This is now a no-op. - V8_DEPRECATED("No longer supported", - static void SetMessageHandler(Isolate* isolate, - MessageHandler handler)); - - // This is now a no-op. - 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 - */ - V8_DEPRECATED("No longer supported", - static MaybeLocal Call( - Local context, v8::Local fun, - Local data = Local())); - - // This is now a no-op. - V8_DEPRECATED("No longer supported", - static void ProcessDebugMessages(Isolate* isolate)); - - /** - * Debugger is running in its own context which is entered while debugger - * messages are being dispatched. This is an explicit getter for this - * debugger context. Note that the content of the debugger context is subject - * to change. The Context exists only when the debugger is active, i.e. at - * least one DebugEventListener or MessageHandler is set. - */ - 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. - */ - V8_DEPRECATED( - "No longer supported", - static MaybeLocal GetDebuggedContext(Isolate* isolate)); - - /** - * Enable/disable LiveEdit functionality for the given Isolate - * (default Isolate if not provided). V8 will abort if LiveEdit is - * unexpectedly used. LiveEdit is enabled by default. - */ - V8_DEPRECATED("No longer supported", - static void SetLiveEditEnabled(Isolate* isolate, bool enable)); - - /** - * Returns array of internal properties specific to the value type. Result has - * the following format: [, ,...,, ]. Result array - * will be allocated in the current context. - */ - V8_DEPRECATED("No longer supported", - static MaybeLocal GetInternalProperties( - Isolate* isolate, Local value)); - - /** - * Defines if the ES2015 tail call elimination feature is enabled or not. - * The change of this flag triggers deoptimization of all functions that - * contain calls at tail position. - */ - V8_DEPRECATED("No longer supported", - static bool IsTailCallEliminationEnabled(Isolate* isolate)); - V8_DEPRECATED("No longer supported", - static void SetTailCallEliminationEnabled(Isolate* isolate, - bool enabled)); -}; - - -} // namespace v8 - - -#undef EXPORT - - -#endif // V8_V8_DEBUG_H_ diff --git a/deps/v8/include/v8-profiler.h b/deps/v8/include/v8-profiler.h index a86402be92400a..50c531559ec663 100644 --- a/deps/v8/include/v8-profiler.h +++ b/deps/v8/include/v8-profiler.h @@ -626,6 +626,68 @@ class V8_EXPORT AllocationProfile { static const int kNoColumnNumberInfo = Message::kNoColumnInfo; }; +/** + * An object graph consisting of embedder objects and V8 objects. + * Edges of the graph are strong references between the objects. + * The embedder can build this graph during heap snapshot generation + * to include the embedder objects in the heap snapshot. + * Usage: + * 1) Define derived class of EmbedderGraph::Node for embedder objects. + * 2) Set the build embedder graph callback on the heap profiler using + * HeapProfiler::SetBuildEmbedderGraphCallback. + * 3) In the callback use graph->AddEdge(node1, node2) to add an edge from + * node1 to node2. + * 4) To represent references from/to V8 object, construct V8 nodes using + * graph->V8Node(value). + */ +class V8_EXPORT EmbedderGraph { + public: + class Node { + public: + Node() = default; + virtual ~Node() = default; + virtual const char* Name() = 0; + virtual size_t SizeInBytes() = 0; + /** + * The corresponding V8 wrapper node if not null. + * During heap snapshot generation the embedder node and the V8 wrapper + * node will be merged into one node to simplify retaining paths. + */ + virtual Node* WrapperNode() { return nullptr; } + virtual bool IsRootNode() { return false; } + /** Must return true for non-V8 nodes. */ + virtual bool IsEmbedderNode() { return true; } + /** + * Optional name prefix. It is used in Chrome for tagging detached nodes. + */ + virtual const char* NamePrefix() { return nullptr; } + + private: + Node(const Node&) = delete; + Node& operator=(const Node&) = delete; + }; + + /** + * Returns a node corresponding to the given V8 value. Ownership is not + * transferred. The result pointer is valid while the graph is alive. + */ + virtual Node* V8Node(const v8::Local& value) = 0; + + /** + * Adds the given node to the graph and takes ownership of the node. + * Returns a raw pointer to the node that is valid while the graph is alive. + */ + virtual Node* AddNode(std::unique_ptr node) = 0; + + /** + * Adds an edge that represents a strong reference from the given node + * |from| to the given node |to|. The nodes must be added to the graph + * before calling this function. + */ + virtual void AddEdge(Node* from, Node* to) = 0; + + virtual ~EmbedderGraph() = default; +}; /** * Interface for controlling heap profiling. Instance of the @@ -665,6 +727,15 @@ class V8_EXPORT HeapProfiler { typedef RetainedObjectInfo* (*WrapperInfoCallback)(uint16_t class_id, Local wrapper); + /** + * Callback function invoked during heap snapshot generation to retrieve + * the embedder object graph. The callback should use graph->AddEdge(..) to + * add references between the objects. + * The callback must not trigger garbage collection in V8. + */ + typedef void (*BuildEmbedderGraphCallback)(v8::Isolate* isolate, + v8::EmbedderGraph* graph); + /** Returns the number of snapshots taken. */ int GetSnapshotCount(); @@ -809,6 +880,7 @@ class V8_EXPORT HeapProfiler { WrapperInfoCallback callback); void SetGetRetainerInfosCallback(GetRetainerInfosCallback callback); + void SetBuildEmbedderGraphCallback(BuildEmbedderGraphCallback callback); /** * Default value of persistent handle class ID. Must not be used to diff --git a/deps/v8/include/v8-util.h b/deps/v8/include/v8-util.h index 15ea225dc1210d..a3069651222ee0 100644 --- a/deps/v8/include/v8-util.h +++ b/deps/v8/include/v8-util.h @@ -196,16 +196,6 @@ class PersistentValueMapBase { return SetReturnValueFromVal(&returnValue, Traits::Get(&impl_, key)); } - /** - * Call Isolate::SetReference with the given parent and the map value. - */ - void SetReference(const K& key, - const Persistent& parent) { - GetIsolate()->SetReference( - reinterpret_cast(parent.val_), - reinterpret_cast(FromVal(Traits::Get(&impl_, key)))); - } - /** * Call V8::RegisterExternallyReferencedObject with the map value for given * key. diff --git a/deps/v8/include/v8-version.h b/deps/v8/include/v8-version.h index 71f3b774a334ab..da78020d07515c 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 6 -#define V8_MINOR_VERSION 5 -#define V8_BUILD_NUMBER 254 -#define V8_PATCH_LEVEL 43 +#define V8_MINOR_VERSION 6 +#define V8_BUILD_NUMBER 346 +#define V8_PATCH_LEVEL 23 // 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 d5b554dc96622d..277cbd442a124c 100644 --- a/deps/v8/include/v8.h +++ b/deps/v8/include/v8.h @@ -145,7 +145,7 @@ class Heap; class HeapObject; class Isolate; class Object; -struct StreamedSource; +struct ScriptStreamingData; template class CustomArguments; class PropertyCallbackArguments; class FunctionCallbackArguments; @@ -553,6 +553,14 @@ template class PersistentBase { // TODO(dcarney): remove this. V8_INLINE void ClearWeak() { ClearWeak(); } + /** + * Annotates the strong handle with the given label, which is then used by the + * heap snapshot generator as a name of the edge from the root to the handle. + * The function does not take ownership of the label and assumes that the + * label is valid as long as the handle is valid. + */ + V8_INLINE void AnnotateStrongRetainer(const char* label); + /** * Allows the embedder to tell the v8 garbage collector that a certain object * is alive. Only allowed when the embedder is asked to trace its heap by @@ -945,7 +953,7 @@ class V8_EXPORT EscapableHandleScope : public HandleScope { */ class V8_EXPORT SealHandleScope { public: - SealHandleScope(Isolate* isolate); + explicit SealHandleScope(Isolate* isolate); ~SealHandleScope(); SealHandleScope(const SealHandleScope&) = delete; @@ -1136,6 +1144,7 @@ class V8_EXPORT Module { public: /** * The different states a module can be in. + * * This corresponds to the states used in ECMAScript except that "evaluated" * is split into kEvaluated and kErrored, indicating success and failure, * respectively. @@ -1186,7 +1195,7 @@ class V8_EXPORT Module { Local referrer); /** - * ModuleDeclarationInstantiation + * Instantiates the module and its dependencies. * * Returns an empty Maybe if an exception occurred during * instantiation. (In the case where the callback throws an exception, that @@ -1196,16 +1205,19 @@ class V8_EXPORT Module { ResolveCallback callback); /** - * ModuleEvaluation + * Evaluates the module and its dependencies. * - * Returns the completion value. - * TODO(neis): Be more precise or say nothing. + * If status is kInstantiated, run the module's code. On success, set status + * to kEvaluated and return the completion value; on failure, set status to + * kErrored and propagate the thrown exception (which is then also available + * via |GetException|). */ V8_WARN_UNUSED_RESULT MaybeLocal Evaluate(Local context); /** * Returns the namespace object of this module. - * The module's status must be kEvaluated. + * + * The module's status must be at least kInstantiated. */ Local GetModuleNamespace(); }; @@ -1219,24 +1231,23 @@ class V8_EXPORT Script { /** * A shorthand for ScriptCompiler::Compile(). */ - static V8_DEPRECATE_SOON( - "Use maybe version", - Local - \ No newline at end of file + diff --git a/deps/v8/tools/heap-stats/details-selection.js b/deps/v8/tools/heap-stats/details-selection.js index 43c000d3f45fd3..c5117d31658f72 100644 --- a/deps/v8/tools/heap-stats/details-selection.js +++ b/deps/v8/tools/heap-stats/details-selection.js @@ -17,8 +17,14 @@ class DetailsSelection extends HTMLElement { 'change', e => this.handleIsolateChange(e)); this.datasetSelect.addEventListener( 'change', e => this.notifySelectionChanged(e)); + this.gcSelect.addEventListener( + 'change', e => this.notifySelectionChanged(e)); + this.$('#csv-export-btn') + .addEventListener('click', e => this.exportCurrentSelection(e)); this.$('#merge-categories') .addEventListener('change', e => this.notifySelectionChanged(e)); + this.$('#category-filter-btn') + .addEventListener('click', e => this.filterCurrentSeclection(e)); } connectedCallback() { @@ -36,19 +42,36 @@ class DetailsSelection extends HTMLElement { return this._data; } + get selectedData() { + console.assert(this.data, 'invalid data'); + console.assert(this.selection, 'invalid selection'); + return this.data[this.selection.isolate] + .gcs[this.selection.gc][this.selection.data_set]; + } + buildCategory(name) { const div = document.createElement('div'); div.id = name; div.classList.add('box'); - const span = document.createElement('span'); - div.appendChild(span); - span.innerHTML = CATEGORY_NAMES.get(name) + ' '; + const ul = document.createElement('ul'); + div.appendChild(ul); + const name_li = document.createElement('li'); + ul.appendChild(name_li); + name_li.innerHTML = CATEGORY_NAMES.get(name); + const percent_li = document.createElement('li'); + ul.appendChild(percent_li); + percent_li.innerHTML = '0%'; + percent_li.id = name + 'PercentContent'; + const all_li = document.createElement('li'); + ul.appendChild(all_li); const all_button = document.createElement('button'); - span.appendChild(all_button); + all_li.appendChild(all_button); all_button.innerHTML = 'All'; all_button.addEventListener('click', e => this.selectCategory(name)); + const none_li = document.createElement('li'); + ul.appendChild(none_li); const none_button = document.createElement('button'); - span.appendChild(none_button); + none_li.appendChild(none_button); none_button.innerHTML = 'None'; none_button.addEventListener('click', e => this.unselectCategory(name)); const innerDiv = document.createElement('div'); @@ -69,17 +92,35 @@ class DetailsSelection extends HTMLElement { return this.$('#isolate-select'); } + get gcSelect() { + return this.$('#gc-select'); + } + dataChanged() { - this.clearUI(); - this.populateSelect('#isolate-select', Object.keys(this.data)); + this.selection = {categories: {}}; + this.resetUI(true); + this.populateIsolateSelect(); this.handleIsolateChange(); + this.$('#dataSelectionSection').style.display = 'block'; } - clearUI() { - this.selection = {categories: {}}; - removeAllChildren(this.isolateSelect); + populateIsolateSelect() { + let entries = Object.entries(this.data); + // Sorty by peak heap memory consumption. + entries.sort((a, b) => b[1].peakMemory - a[1].peakMemory); + this.populateSelect( + '#isolate-select', entries, (key, isolate) => isolate.getLabel()); + } + + resetUI(resetIsolateSelect) { + if (resetIsolateSelect) removeAllChildren(this.isolateSelect); + removeAllChildren(this.datasetSelect); + removeAllChildren(this.gcSelect); this.clearCategories(); + this.$('#csv-export-btn').disabled = 'disabled'; + this.$('#category-filter-btn').disabled = 'disabled'; + this.$('#category-filter').disabled = 'disabled'; } handleIsolateChange(e) { @@ -88,9 +129,15 @@ class DetailsSelection extends HTMLElement { this.selection.isolate = null; return; } - + this.resetUI(false); + this.populateSelect( + '#dataset-select', + this.data[this.selection.isolate].data_sets.entries(), null, 'live'); this.populateSelect( - '#dataset-select', this.data[this.selection.isolate].data_sets, 'live'); + '#gc-select', + Object.keys(this.data[this.selection.isolate].gcs) + .map(v => [v, this.data[this.selection.isolate].gcs[v].time]), + time => time + 'ms'); this.populateCategories(); this.notifySelectionChanged(); } @@ -106,10 +153,53 @@ class DetailsSelection extends HTMLElement { this.selection.category_names = CATEGORY_NAMES; this.selection.data_set = this.datasetSelect.value; this.selection.merge_categories = this.$('#merge-categories').checked; + this.selection.gc = this.gcSelect.value; + this.$('#csv-export-btn').disabled = false; + this.$('#category-filter-btn').disabled = false; + this.$('#category-filter').disabled = false; + this.updatePercentagesInCategory(); this.dispatchEvent(new CustomEvent( 'change', {bubbles: true, composed: true, detail: this.selection})); } + filterCurrentSeclection(e) { + const filter_value = this.$('#category-filter').value * KB; + if (filter_value === 0) return; + + this.selection.category_names.forEach((_, category) => { + for (let checkbox of this.shadowRoot.querySelectorAll( + 'input[name=' + category + 'Checkbox]')) { + checkbox.checked = + this.selectedData.instance_type_data[checkbox.instance_type] + .overall > filter_value; + } + }); + this.notifySelectionChanged(); + } + + updatePercentagesInCategory() { + const overalls = {}; + let overall = 0; + // Reset all categories. + this.selection.category_names.forEach((_, category) => { + this.$(`#${category}PercentContent`).innerHTML = '0%'; + }); + // Only update categories that have selections. + Object.entries(this.selection.categories).forEach(([category, value]) => { + overalls[category] = + Object.values(value).reduce( + (accu, current) => + accu + this.selectedData.instance_type_data[current].overall, + 0) / + KB; + overall += overalls[category]; + }); + Object.entries(overalls).forEach(([category, category_overall]) => { + this.$(`#${category}PercentContent`).innerHTML = + `${(category_overall / overall * 100).toFixed(1)}%`; + }); + } + selectedInCategory(category) { const selected = this.shadowRoot.querySelectorAll( 'input[name=' + category + 'Checkbox]:checked'); @@ -125,17 +215,19 @@ class DetailsSelection extends HTMLElement { return 'unclassified'; } - createOption(text) { + createOption(value, text) { const option = document.createElement('option'); - option.value = text; + option.value = value; option.text = text; return option; } - populateSelect(id, iterable, autoselect = null) { - for (let option_value of iterable) { - const option = this.createOption(option_value); - if (autoselect === option_value) { + populateSelect(id, iterable, labelFn = null, autoselect = null) { + if (labelFn == null) labelFn = e => e; + for (let [key, value] of iterable) { + const label = labelFn(key, value); + const option = this.createOption(key, label); + if (autoselect === key) { option.selected = 'selected'; } this.$(id).appendChild(option); @@ -160,7 +252,6 @@ class DetailsSelection extends HTMLElement { for (let instance_type of this.data[this.selection.isolate] .non_empty_instance_types) { - if (IGNORED_INSTANCE_TYPES.has(instance_type)) continue; const category = this.categoryForType(instance_type); categories[category].push(instance_type); } @@ -198,6 +289,7 @@ class DetailsSelection extends HTMLElement { input.name = category + 'Checkbox'; input.checked = 'checked'; input.id = instance_type + 'Checkbox'; + input.instance_type = instance_type; input.value = instance_type; input.addEventListener('change', e => this.notifySelectionChanged(e)); const label = document.createElement('label'); @@ -206,6 +298,33 @@ class DetailsSelection extends HTMLElement { label.htmlFor = instance_type + 'Checkbox'; return div; } + + exportCurrentSelection(e) { + const data = []; + const selected_data = this.data[this.selection.isolate] + .gcs[this.selection.gc][this.selection.data_set] + .instance_type_data; + Object.values(this.selection.categories).forEach(instance_types => { + instance_types.forEach(instance_type => { + data.push([instance_type, selected_data[instance_type].overall / KB]); + }); + }); + const createInlineContent = arrayOfRows => { + const content = arrayOfRows.reduce( + (accu, rowAsArray) => {return accu + `${rowAsArray.join(',')}\n`}, + ''); + return `data:text/csv;charset=utf-8,${content}`; + }; + const encodedUri = encodeURI(createInlineContent(data)); + const link = document.createElement('a'); + link.setAttribute('href', encodedUri); + link.setAttribute( + 'download', + `heap_objects_data_${this.selection.isolate}_${this.selection.gc}.csv`); + this.shadowRoot.appendChild(link); + link.click(); + this.shadowRoot.removeChild(link); + } } customElements.define('details-selection', DetailsSelection); diff --git a/deps/v8/tools/heap-stats/global-timeline.js b/deps/v8/tools/heap-stats/global-timeline.js index 0533f214322a20..f807d44bae5652 100644 --- a/deps/v8/tools/heap-stats/global-timeline.js +++ b/deps/v8/tools/heap-stats/global-timeline.js @@ -86,7 +86,6 @@ class GlobalTimeline extends HTMLElement { } getInstanceTypeData() { - const categories = Object.keys(this.selection.categories); const instance_types = Object.values(this.selection.categories) .reduce((accu, current) => accu.concat(current), []); diff --git a/deps/v8/tools/heap-stats/histogram-viewer.html b/deps/v8/tools/heap-stats/histogram-viewer.html new file mode 100644 index 00000000000000..93fe9809780ccc --- /dev/null +++ b/deps/v8/tools/heap-stats/histogram-viewer.html @@ -0,0 +1,19 @@ + + + \ No newline at end of file diff --git a/deps/v8/tools/heap-stats/histogram-viewer.js b/deps/v8/tools/heap-stats/histogram-viewer.js new file mode 100644 index 00000000000000..bea1e708005cc5 --- /dev/null +++ b/deps/v8/tools/heap-stats/histogram-viewer.js @@ -0,0 +1,152 @@ +// Copyright 2018 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. + +'use strict'; + +const histogram_viewer_template = + document.currentScript.ownerDocument.querySelector( + '#histogram-viewer-template'); + +class HistogramViewer extends HTMLElement { + constructor() { + super(); + const shadowRoot = this.attachShadow({mode: 'open'}); + shadowRoot.appendChild(histogram_viewer_template.content.cloneNode(true)); + } + + $(id) { + return this.shadowRoot.querySelector(id); + } + + set data(value) { + this._data = value; + this.stateChanged(); + } + + get data() { + return this._data; + } + + set selection(value) { + this._selection = value; + this.stateChanged(); + } + + get selection() { + return this._selection; + } + + isValid() { + return this.data && this.selection; + } + + hide() { + this.$('#container').style.display = 'none'; + } + + show() { + this.$('#container').style.display = 'block'; + } + + stateChanged() { + if (this.isValid()) { + const overall_bytes = (this.selection.merge_categories) ? + this.getPropertyForCategory('overall') : + this.getPropertyForInstanceTypes('overall'); + this.$('#overall').innerHTML = `Overall: ${overall_bytes / KB} KB`; + this.drawChart(); + } else { + this.hide(); + } + } + + get selectedData() { + console.assert(this.data, 'invalid data'); + console.assert(this.selection, 'invalid selection'); + return this.data[this.selection.isolate] + .gcs[this.selection.gc][this.selection.data_set]; + } + + get selectedInstanceTypes() { + console.assert(this.selection, 'invalid selection'); + return Object.values(this.selection.categories) + .reduce((accu, current) => accu.concat(current), []); + } + + getPropertyForCategory(property) { + return Object.values(this.selection.categories) + .reduce( + (outer_accu, instance_types) => outer_accu + + instance_types.reduce( + (inner_accu, instance_type) => inner_accu + + this.selectedData + .instance_type_data[instance_type][property], + 0), + 0); + } + + getPropertyForInstanceTypes(property) { + return this.selectedInstanceTypes.reduce( + (accu, instance_type) => accu + + this.selectedData.instance_type_data[instance_type][property], + 0); + } + + getCategoryData() { + const labels = [ + 'Bucket', + ...Object.keys(this.selection.categories) + .map(k => this.selection.category_names.get(k)) + ]; + const data = this.selectedData.bucket_sizes.map( + (bucket_size, index) => + [`<${bucket_size}`, + ...Object.values(this.selection.categories) + .map( + instance_types => + instance_types + .map( + instance_type => + this.selectedData + .instance_type_data[instance_type] + .histogram[index]) + .reduce((accu, current) => accu + current, 0))]); + // Adjust last histogram bucket label. + data[data.length - 1][0] = 'rest'; + return [labels, ...data]; + } + + getInstanceTypeData() { + const instance_types = this.selectedInstanceTypes; + const labels = ['Bucket', ...instance_types]; + const data = this.selectedData.bucket_sizes.map( + (bucket_size, index) => + [`<${bucket_size}`, + ...instance_types.map( + instance_type => + this.selectedData.instance_type_data[instance_type] + .histogram[index])]); + // Adjust last histogram bucket label. + data[data.length - 1][0] = 'rest'; + return [labels, ...data]; + } + + drawChart() { + const chart_data = (this.selection.merge_categories) ? + this.getCategoryData() : + this.getInstanceTypeData(); + const data = google.visualization.arrayToDataTable(chart_data); + const options = { + legend: {position: 'top', maxLines: '1'}, + chartArea: {width: '85%', height: '85%'}, + bar: {groupWidth: '80%'}, + explorer: {}, + }; + const chart = new google.visualization.BarChart(this.$('#chart')); + this.show(); + chart.draw(data, options); + } +} + +customElements.define('histogram-viewer', HistogramViewer); diff --git a/deps/v8/tools/heap-stats/index.html b/deps/v8/tools/heap-stats/index.html index 3c2e62b6d0b6d0..37625022011f6a 100644 --- a/deps/v8/tools/heap-stats/index.html +++ b/deps/v8/tools/heap-stats/index.html @@ -8,15 +8,20 @@ V8 Heap Statistics - - + + + + - - @@ -63,16 +69,20 @@ + + + + +

V8 Heap Statistics

Visualize object statistics that have been gathered using

    -
  • --trace-gc-object-stats on V8
  • +
  • --trace-gc-object-stats on V8
  • Chrome's tracing infrastructure collecting data for the category - v8.gc_stats. The trace file needs to be unpacked (e.g. using - gunzip). + v8.gc_stats.

@@ -80,9 +90,6 @@

V8 Heap Statistics

requiring CORS.

- - - diff --git a/deps/v8/tools/heap-stats/model.js b/deps/v8/tools/heap-stats/model.js new file mode 100644 index 00000000000000..1afd10a56390f6 --- /dev/null +++ b/deps/v8/tools/heap-stats/model.js @@ -0,0 +1,77 @@ +// Copyright 2018 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. + +'use strict'; + +class Isolate { + constructor(address) { + this.address = address; + this.start = null; + this.end = null; + this.samples = Object.create(null); + this.non_empty_instance_types = new Set(); + this.gcs = Object.create(null); + this.zonetags = []; + this.samples = {zone: {}}; + this.data_sets = new Set(); + this.peakMemory = 0; + } + + finalize() { + Object.values(this.gcs).forEach(gc => this.finalizeGC(gc)); + } + + getLabel() { + let label = `${this.address}: gc=#${Object.keys(this.gcs).length}`; + const peakSizeMB = Math.round(this.peakMemory / 1024 / 1024 * 100) / 100; + label += ` max=${peakSizeMB}MB` + return label; + } + + finalizeGC(gc_data) { + this.data_sets.forEach(key => this.finalizeDataSet(gc_data[key])); + if ('live' in gc_data) { + this.peakMemory = Math.max(this.peakMemory, gc_data['live'].overall); + } + } + + finalizeDataSet(data_set) { + // Create a ranked instance type array that sorts instance types by + // memory size (overall). + data_set.ranked_instance_types = + [...data_set.non_empty_instance_types].sort(function(a, b) { + if (data_set.instance_type_data[a].overall > + data_set.instance_type_data[b].overall) { + return 1; + } else if ( + data_set.instance_type_data[a].overall < + data_set.instance_type_data[b].overall) { + return -1; + } + return 0; + }); + + Object.entries(data_set.instance_type_data).forEach(([name, entry]) => { + this.checkHistogram( + name, entry, data_set.bucket_sizes, 'histogram', ' overall'); + this.checkHistogram( + name, entry, data_set.bucket_sizes, 'over_allocated_histogram', + ' over_allocated'); + }); + } + + // Check that a lower bound for histogram memory does not exceed the + // overall counter. + checkHistogram(type, entry, bucket_sizes, histogram, overallProperty) { + let sum = 0; + for (let i = 1; i < entry[histogram].length; i++) { + sum += entry[histogram][i] * bucket_sizes[i - 1]; + } + const overall = entry[overallProperty]; + if (sum >= overall) { + console.error( + `${type}: sum('${histogram}') > overall (${sum} > ${overall})`); + } + } +} diff --git a/deps/v8/tools/heap-stats/trace-file-reader.html b/deps/v8/tools/heap-stats/trace-file-reader.html index 98c2ef0c606dbe..73de98ab03f70e 100644 --- a/deps/v8/tools/heap-stats/trace-file-reader.html +++ b/deps/v8/tools/heap-stats/trace-file-reader.html @@ -10,17 +10,66 @@ text-align: center; border: solid 1px #000000; border-radius: 5px; + cursor: pointer; +} + +.loading #fileReader { + cursor: wait; } #fileReader > input { display: none; } + +#loader { + display: none; +} + +.loading #loader{ + display: block; + position: fixed; + top: 0px; + left: 0px; + width: 100%; + height: 100%; + background-color: rgba(255, 255, 255, 0.5); +} + +#spinner { + position: absolute; + width: 100px; + height: 100px; + top: 40%; + left: 50%; + margin-left: -50px; + border: 30px solid #000; + border-top: 30px solid #36E; + border-radius: 50%; + animation: spin 1s ease-in-out infinite; +} + +@keyframes spin { + 0% { + transform: rotate(0deg); + }; + 100% { + transform: rotate(360deg); + }; +} -
- - Drag and drop a trace file into this area, or click to choose from disk. - - -
+ +
+
+ + Drag and drop a trace file into this area, or click to choose from disk. + + +
+
+
+
+
- + + + diff --git a/deps/v8/tools/heap-stats/trace-file-reader.js b/deps/v8/tools/heap-stats/trace-file-reader.js index 59825fe514e936..ef563a43cb35ed 100644 --- a/deps/v8/tools/heap-stats/trace-file-reader.js +++ b/deps/v8/tools/heap-stats/trace-file-reader.js @@ -23,6 +23,10 @@ class TraceFileReader extends HTMLElement { return this.shadowRoot.querySelector(id); } + get section() { + return this.$('#fileReaderSection'); + } + updateLabel(text) { this.$('#label').innerText = text; } @@ -50,34 +54,42 @@ class TraceFileReader extends HTMLElement { return; } - const result = new FileReader(); - result.onload = (e) => { - let contents = e.target.result.split('\n'); - const return_data = (e.target.result.includes('V8.GC_Objects_Stats')) ? - this.createModelFromChromeTraceFile(contents) : - this.createModelFromV8TraceFile(contents); - this.updateLabel('Finished loading \'' + file.name + '\'.'); - this.dispatchEvent(new CustomEvent( - 'change', {bubbles: true, composed: true, detail: return_data})); - }; - result.readAsText(file); + this.section.className = 'loading'; + const reader = new FileReader(); + + if (['application/gzip', 'application/x-gzip'].includes(file.type)) { + reader.onload = (e) => { + try { + const textResult = pako.inflate(e.target.result, {to: 'string'}); + this.processRawText(file, textResult); + this.section.className = 'success'; + } catch (err) { + console.error(err); + this.section.className = 'failure'; + } + }; + reader.readAsArrayBuffer(file); + } else { + reader.onload = (e) => this.processRawText(file, e.target.result); + reader.readAsText(file); + } } - createOrUpdateEntryIfNeeded(data, keys, entry) { + processRawText(file, result) { + let contents = result.split('\n'); + const return_data = (result.includes('V8.GC_Objects_Stats')) ? + this.createModelFromChromeTraceFile(contents) : + this.createModelFromV8TraceFile(contents); + this.extendAndSanitizeModel(return_data); + this.updateLabel('Finished loading \'' + file.name + '\'.'); + this.dispatchEvent(new CustomEvent( + 'change', {bubbles: true, composed: true, detail: return_data})); + } + + createOrUpdateEntryIfNeeded(data, entry) { console.assert(entry.isolate, 'entry should have an isolate'); - if (!(entry.isolate in keys)) { - keys[entry.isolate] = new Set(); - } if (!(entry.isolate in data)) { - data[entry.isolate] = { - non_empty_instance_types: new Set(), - gcs: {}, - zonetags: [], - samples: {zone: {}}, - start: null, - end: null, - data_sets: new Set() - }; + data[entry.isolate] = new Isolate(entry.isolate); } const data_object = data[entry.isolate]; if (('id' in entry) && !(entry.id in data_object.gcs)) { @@ -91,7 +103,7 @@ class TraceFileReader extends HTMLElement { } } - createDatasetIfNeeded(data, keys, entry, data_set) { + createDatasetIfNeeded(data, entry, data_set) { if (!(data_set in data[entry.isolate].gcs[entry.id])) { data[entry.isolate].gcs[entry.id][data_set] = { instance_type_data: {}, @@ -102,9 +114,7 @@ class TraceFileReader extends HTMLElement { } } - addInstanceTypeData( - data, keys, isolate, gc_id, data_set, instance_type, entry) { - keys[isolate].add(data_set); + addInstanceTypeData(data, isolate, gc_id, data_set, instance_type, entry) { data[isolate].gcs[gc_id][data_set].instance_type_data[instance_type] = { overall: entry.overall, count: entry.count, @@ -121,117 +131,75 @@ class TraceFileReader extends HTMLElement { } } - extendAndSanitizeModel(data, keys) { + extendAndSanitizeModel(data) { const checkNonNegativeProperty = (obj, property) => { console.assert(obj[property] >= 0, 'negative property', obj, property); }; - for (const isolate of Object.keys(data)) { - for (const gc of Object.keys(data[isolate].gcs)) { - for (const data_set_key of keys[isolate]) { - const data_set = data[isolate].gcs[gc][data_set_key]; - // 1. Create a ranked instance type array that sorts instance - // types by memory size (overall). - data_set.ranked_instance_types = - [...data_set.non_empty_instance_types].sort(function(a, b) { - if (data_set.instance_type_data[a].overall > - data_set.instance_type_data[b].overall) { - return 1; - } else if ( - data_set.instance_type_data[a].overall < - data_set.instance_type_data[b].overall) { - return -1; - } - return 0; - }); - - let known_count = 0; - let known_overall = 0; - let known_histogram = - Array( - data_set.instance_type_data.FIXED_ARRAY_TYPE.histogram.length) - .fill(0); - for (const instance_type in data_set.instance_type_data) { - if (!instance_type.startsWith('*FIXED_ARRAY')) continue; - const subtype = data_set.instance_type_data[instance_type]; - known_count += subtype.count; - known_overall += subtype.count; - for (let i = 0; i < subtype.histogram.length; i++) { - known_histogram[i] += subtype.histogram[i]; - } - } - - const fixed_array_data = data_set.instance_type_data.FIXED_ARRAY_TYPE; - const unknown_entry = { - count: fixed_array_data.count - known_count, - overall: fixed_array_data.overall - known_overall, - histogram: fixed_array_data.histogram.map( - (value, index) => value - known_histogram[index]) - }; - - // Check for non-negative values. - checkNonNegativeProperty(unknown_entry, 'count'); - checkNonNegativeProperty(unknown_entry, 'overall'); - for (let i = 0; i < unknown_entry.histogram.length; i++) { - checkNonNegativeProperty(unknown_entry.histogram, i); - } - - data_set.instance_type_data['*FIXED_ARRAY_UNKNOWN_SUB_TYPE'] = - unknown_entry; - data_set.non_empty_instance_types.add( - '*FIXED_ARRAY_UNKNOWN_SUB_TYPE'); - } - } - } + Object.values(data).forEach(isolate => isolate.finalize()); } createModelFromChromeTraceFile(contents) { - console.log('Processing log as chrome trace file.'); - const data = Object.create(null); // Final data container. - const keys = Object.create(null); // Collecting 'keys' per isolate. + // Trace files support two formats. + // {traceEvents: [ data ]} + const kObjectTraceFile = { + name: 'object', + endToken: ']}', + getDataArray: o => o.traceEvents + }; + // [ data ] + const kArrayTraceFile = { + name: 'array', + endToken: ']', + getDataArray: o => o + }; + const handler = + (contents[0][0] === '{') ? kObjectTraceFile : kArrayTraceFile; + console.log(`Processing log as chrome trace file (${handler.name}).`); // Pop last line in log as it might be broken. contents.pop(); // Remove trailing comma. contents[contents.length - 1] = contents[contents.length - 1].slice(0, -1); // Terminate JSON. - const sanitized_contents = [...contents, ']}'].join(''); + const sanitized_contents = [...contents, handler.endToken].join(''); + + const data = Object.create(null); // Final data container. try { const raw_data = JSON.parse(sanitized_contents); - const objects_stats_data = - raw_data.traceEvents.filter(e => e.name == 'V8.GC_Objects_Stats'); - objects_stats_data.forEach(trace_data => { - const actual_data = trace_data.args; - const data_sets = new Set(Object.keys(actual_data)); - Object.keys(actual_data).forEach(data_set => { - const string_entry = actual_data[data_set]; - try { - const entry = JSON.parse(string_entry); - this.createOrUpdateEntryIfNeeded(data, keys, entry); - this.createDatasetIfNeeded(data, keys, entry, data_set); - const isolate = entry.isolate; - const time = entry.time; - const gc_id = entry.id; - data[isolate].gcs[gc_id].time = time; - data[isolate].gcs[gc_id][data_set].bucket_sizes = - entry.bucket_sizes; - for (let [instance_type, value] of Object.entries( - entry.type_data)) { - // Trace file format uses markers that do not have actual - // properties. - if (!('overall' in value)) continue; - this.addInstanceTypeData( - data, keys, isolate, gc_id, data_set, instance_type, value); - } - } catch (e) { - console.log('Unable to parse data set entry', e); - } - }); - }); + const raw_array_data = handler.getDataArray(raw_data); + raw_array_data.filter(e => e.name === 'V8.GC_Objects_Stats') + .forEach(trace_data => { + const actual_data = trace_data.args; + const data_sets = new Set(Object.keys(actual_data)); + Object.keys(actual_data).forEach(data_set => { + const string_entry = actual_data[data_set]; + try { + const entry = JSON.parse(string_entry); + this.createOrUpdateEntryIfNeeded(data, entry); + this.createDatasetIfNeeded(data, entry, data_set); + const isolate = entry.isolate; + const time = entry.time; + const gc_id = entry.id; + data[isolate].gcs[gc_id].time = time; + data[isolate].gcs[gc_id][data_set].bucket_sizes = + entry.bucket_sizes; + for (let [instance_type, value] of Object.entries( + entry.type_data)) { + // Trace file format uses markers that do not have actual + // properties. + if (!('overall' in value)) continue; + this.addInstanceTypeData( + data, isolate, gc_id, data_set, instance_type, value); + } + } catch (e) { + console.log('Unable to parse data set entry', e); + } + }); + }); } catch (e) { - console.log('Unable to parse chrome trace file.', e); + console.error('Unable to parse chrome trace file.', e); } - this.extendAndSanitizeModel(data, keys); return data; } @@ -249,14 +217,12 @@ class TraceFileReader extends HTMLElement { }); const data = Object.create(null); // Final data container. - const keys = Object.create(null); // Collecting 'keys' per isolate. - for (var entry of contents) { if (entry === null || entry.type === undefined) { continue; } if (entry.type === 'zone') { - this.createOrUpdateEntryIfNeeded(data, keys, entry); + this.createOrUpdateEntryIfNeeded(data, entry); const stacktrace = ('stacktrace' in entry) ? entry.stacktrace : []; data[entry.isolate].samples.zone[entry.time] = { allocated: entry.allocated, @@ -265,26 +231,26 @@ class TraceFileReader extends HTMLElement { }; } else if ( entry.type === 'zonecreation' || entry.type === 'zonedestruction') { - this.createOrUpdateEntryIfNeeded(data, keys, entry); + this.createOrUpdateEntryIfNeeded(data, entry); data[entry.isolate].zonetags.push( Object.assign({opening: entry.type === 'zonecreation'}, entry)); } else if (entry.type === 'gc_descriptor') { - this.createOrUpdateEntryIfNeeded(data, keys, entry); + this.createOrUpdateEntryIfNeeded(data, entry); data[entry.isolate].gcs[entry.id].time = entry.time; if ('zone' in entry) data[entry.isolate].gcs[entry.id].malloced = entry.zone; } else if (entry.type === 'instance_type_data') { if (entry.id in data[entry.isolate].gcs) { - this.createOrUpdateEntryIfNeeded(data, keys, entry); - this.createDatasetIfNeeded(data, keys, entry, entry.key); + this.createOrUpdateEntryIfNeeded(data, entry); + this.createDatasetIfNeeded(data, entry, entry.key); this.addInstanceTypeData( - data, keys, entry.isolate, entry.id, entry.key, + data, entry.isolate, entry.id, entry.key, entry.instance_type_name, entry); } } else if (entry.type === 'bucket_sizes') { if (entry.id in data[entry.isolate].gcs) { - this.createOrUpdateEntryIfNeeded(data, keys, entry); - this.createDatasetIfNeeded(data, keys, entry, entry.key); + this.createOrUpdateEntryIfNeeded(data, entry); + this.createDatasetIfNeeded(data, entry, entry.key); data[entry.isolate].gcs[entry.id][entry.key].bucket_sizes = entry.sizes; } @@ -292,7 +258,6 @@ class TraceFileReader extends HTMLElement { console.log('Unknown entry type: ' + entry.type); } } - this.extendAndSanitizeModel(data, keys); return data; } } diff --git a/deps/v8/tools/isolate_driver.py b/deps/v8/tools/isolate_driver.py index a6bcfbf71f9ea0..32077e236f5be1 100644 --- a/deps/v8/tools/isolate_driver.py +++ b/deps/v8/tools/isolate_driver.py @@ -4,7 +4,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -"""Adaptor script called through build/isolate.gypi. +"""Adaptor script called through gni/isolate.gni. Creates a wrapping .isolate which 'includes' the original one, that can be consumed by tools/swarming_client/isolate.py. Path variables are determined diff --git a/deps/v8/tools/jsfunfuzz/download_jsfunfuzz.py b/deps/v8/tools/jsfunfuzz/download_jsfunfuzz.py deleted file mode 100644 index 2925213ced53a6..00000000000000 --- a/deps/v8/tools/jsfunfuzz/download_jsfunfuzz.py +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env python -# Copyright 2016 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. - -import os -import re -import subprocess - -FUZZ_PATH = os.path.dirname(os.path.abspath(__file__)) -SHA1_PATH = os.path.join(FUZZ_PATH, 'jsfunfuzz.tar.gz.sha1') - -if re.search(r'\bjsfunfuzz=1', os.environ.get('GYP_DEFINES', '')): - subprocess.check_call([ - 'download_from_google_storage', - '-b', 'chrome-v8-jsfunfuzz', - '-u', '--no_resume', - '-s', SHA1_PATH, - '--platform=linux*' - ]) diff --git a/deps/v8/tools/jsfunfuzz/jsfunfuzz.gyp b/deps/v8/tools/jsfunfuzz/jsfunfuzz.gyp deleted file mode 100644 index 8938e44538b3d5..00000000000000 --- a/deps/v8/tools/jsfunfuzz/jsfunfuzz.gyp +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright 2016 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. - -{ - 'conditions': [ - ['test_isolation_mode != "noop"', { - 'targets': [ - { - 'target_name': 'jsfunfuzz_run', - 'type': 'none', - 'dependencies': [ - '../../src/d8.gyp:d8_run', - ], - 'includes': [ - '../../gypfiles/features.gypi', - '../../gypfiles/isolate.gypi', - ], - 'sources': [ - 'jsfunfuzz.isolate', - ], - }, - ], - }], - ], -} diff --git a/deps/v8/tools/mb/mb.py b/deps/v8/tools/mb/mb.py index 9a6600225b893e..b97ce455c2513f 100755 --- a/deps/v8/tools/mb/mb.py +++ b/deps/v8/tools/mb/mb.py @@ -4,16 +4,12 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -"""MB - the Meta-Build wrapper around GYP and GN +"""MB - the Meta-Build wrapper around GN. -MB is a wrapper script for GYP and GN that can be used to generate build files +MB is a wrapper script for GN that can be used to generate build files for sets of canned configurations and analyze them. """ -# TODO(thomasanderson): Remove this comment. It is added to -# workaround https://crbug.com/736215 for CL -# https://codereview.chromium.org/2974603002/ - from __future__ import print_function import argparse @@ -22,6 +18,7 @@ import json import os import pipes +import platform import pprint import re import shutil @@ -95,21 +92,17 @@ def AddCommonOptions(subp): help='path to config file ' '(default is %(default)s)') subp.add_argument('-i', '--isolate-map-file', metavar='PATH', - default=self.default_isolate_map, help='path to isolate map file ' - '(default is %(default)s)') + '(default is %(default)s)', + default=[], + action='append', + dest='isolate_map_files') subp.add_argument('-g', '--goma-dir', help='path to goma directory') - subp.add_argument('--gyp-script', metavar='PATH', - default=self.PathJoin('build', 'gyp_chromium'), - help='path to gyp script relative to project root ' - '(default is %(default)s)') subp.add_argument('--android-version-code', - help='Sets GN arg android_default_version_code and ' - 'GYP_DEFINE app_manifest_version_code') + help='Sets GN arg android_default_version_code') subp.add_argument('--android-version-name', - help='Sets GN arg android_default_version_name and ' - 'GYP_DEFINE app_manifest_version_name') + help='Sets GN arg android_default_version_name') subp.add_argument('-n', '--dryrun', action='store_true', help='Do a dry run (i.e., do nothing, just print ' 'the commands that will run)') @@ -190,7 +183,6 @@ def AddCommonOptions(subp): ' --test-launcher-retry-limit=0' '\n' ) - AddCommonOptions(subp) subp.add_argument('-j', '--jobs', dest='jobs', type=int, help='Number of jobs to pass to ninja') @@ -202,6 +194,14 @@ def AddCommonOptions(subp): ' This can be either a regular path or a ' 'GN-style source-relative path like ' '//out/Default.')) + subp.add_argument('-s', '--swarmed', action='store_true', + help='Run under swarming with the default dimensions') + subp.add_argument('-d', '--dimension', default=[], action='append', nargs=2, + dest='dimensions', metavar='FOO bar', + help='dimension to filter on') + subp.add_argument('--no-default-dimensions', action='store_false', + dest='default_dimensions', default=True, + help='Do not automatically add dimensions to the task') subp.add_argument('target', nargs=1, help='ninja target to build and run') subp.add_argument('extra_args', nargs='*', @@ -217,26 +217,6 @@ def AddCommonOptions(subp): help='path to config file (default is %(default)s)') subp.set_defaults(func=self.CmdValidate) - subp = subps.add_parser('audit', - help='Audit the config file to track progress') - subp.add_argument('-f', '--config-file', metavar='PATH', - default=self.default_config, - help='path to config file (default is %(default)s)') - subp.add_argument('-i', '--internal', action='store_true', - help='check internal masters also') - subp.add_argument('-m', '--master', action='append', - help='master to audit (default is all non-internal ' - 'masters in file)') - subp.add_argument('-u', '--url-template', action='store', - default='https://build.chromium.org/p/' - '{master}/json/builders', - help='URL scheme for JSON APIs to buildbot ' - '(default: %(default)s) ') - subp.add_argument('-c', '--check-compile', action='store_true', - help='check whether tbd and master-only bots actually' - ' do compiles') - subp.set_defaults(func=self.CmdAudit) - subp = subps.add_parser('gerrit-buildbucket-config', help='Print buildbucket.config for gerrit ' '(see MB user guide)') @@ -276,11 +256,7 @@ def DumpContentsOfFilePassedTo(arg_name, path): def CmdAnalyze(self): vals = self.Lookup() - self.ClobberIfNeeded(vals) - if vals['type'] == 'gn': - return self.RunGNAnalyze(vals) - else: - return self.RunGYPAnalyze(vals) + return self.RunGNAnalyze(vals) def CmdExport(self): self.ReadConfigFile() @@ -312,11 +288,7 @@ def CmdExport(self): def CmdGen(self): vals = self.Lookup() - self.ClobberIfNeeded(vals) - if vals['type'] == 'gn': - return self.RunGNGen(vals) - else: - return self.RunGYPGen(vals) + return self.RunGNGen(vals) def CmdHelp(self): if self.args.subcommand: @@ -328,21 +300,14 @@ def CmdIsolate(self): vals = self.GetConfig() if not vals: return 1 - - if vals['type'] == 'gn': - return self.RunGNIsolate() - else: - return self.Build('%s_run' % self.args.target[0]) + return self.RunGNIsolate() def CmdLookup(self): vals = self.Lookup() - if vals['type'] == 'gn': - cmd = self.GNCmd('gen', '_path_') - gn_args = self.GNArgs(vals) - self.Print('\nWriting """\\\n%s""" to _path_/args.gn.\n' % gn_args) - env = None - else: - cmd, env = self.GYPCmd('_path_', vals) + cmd = self.GNCmd('gen', '_path_') + gn_args = self.GNArgs(vals) + self.Print('\nWriting """\\\n%s""" to _path_/args.gn.\n' % gn_args) + env = None self.PrintCmd(cmd, env) return 0 @@ -355,32 +320,86 @@ def CmdRun(self): build_dir = self.args.path[0] target = self.args.target[0] - if vals['type'] == 'gn': - if self.args.build: - ret = self.Build(target) - if ret: - return ret - ret = self.RunGNIsolate() + if self.args.build: + ret = self.Build(target) if ret: return ret + ret = self.RunGNIsolate() + if ret: + return ret + + if self.args.swarmed: + return self._RunUnderSwarming(build_dir, target) else: - ret = self.Build('%s_run' % target) - if ret: - return ret + return self._RunLocallyIsolated(build_dir, target) + + def _RunUnderSwarming(self, build_dir, target): + # TODO(dpranke): Look up the information for the target in + # the //testing/buildbot.json file, if possible, so that we + # can determine the isolate target, command line, and additional + # swarming parameters, if possible. + # + # TODO(dpranke): Also, add support for sharding and merging results. + dimensions = [] + for k, v in self._DefaultDimensions() + self.args.dimensions: + dimensions += ['-d', k, v] + cmd = [ + self.executable, + self.PathJoin('tools', 'swarming_client', 'isolate.py'), + 'archive', + '-s', + self.ToSrcRelPath('%s/%s.isolated' % (build_dir, target)), + '-I', 'isolateserver.appspot.com', + ] + ret, out, _ = self.Run(cmd, force_verbose=False) + if ret: + return ret + + isolated_hash = out.splitlines()[0].split()[0] + cmd = [ + self.executable, + self.PathJoin('tools', 'swarming_client', 'swarming.py'), + 'run', + '-s', isolated_hash, + '-I', 'isolateserver.appspot.com', + '-S', 'chromium-swarm.appspot.com', + ] + dimensions + if self.args.extra_args: + cmd += ['--'] + self.args.extra_args + ret, _, _ = self.Run(cmd, force_verbose=True, buffer_output=False) + return ret + + def _RunLocallyIsolated(self, build_dir, target): cmd = [ self.executable, self.PathJoin('tools', 'swarming_client', 'isolate.py'), 'run', '-s', self.ToSrcRelPath('%s/%s.isolated' % (build_dir, target)), - ] + ] if self.args.extra_args: - cmd += ['--'] + self.args.extra_args + cmd += ['--'] + self.args.extra_args + ret, _, _ = self.Run(cmd, force_verbose=True, buffer_output=False) + return ret - ret, _, _ = self.Run(cmd, force_verbose=False, buffer_output=False) + def _DefaultDimensions(self): + if not self.args.default_dimensions: + return [] + + # This code is naive and just picks reasonable defaults per platform. + if self.platform == 'darwin': + os_dim = ('os', 'Mac-10.12') + elif self.platform.startswith('linux'): + os_dim = ('os', 'Ubuntu-14.04') + elif self.platform == 'win32': + os_dim = ('os', 'Windows-10-14393') + else: + raise MBErr('unrecognized platform string "%s"' % self.platform) - return ret + return [('pool', 'Chrome'), + ('cpu', 'x86-64'), + os_dim] def CmdBuildbucket(self): self.ReadConfigFile() @@ -462,154 +481,26 @@ def CmdValidate(self, print_ok=True): self.Print('mb config file %s looks ok.' % self.args.config_file) return 0 - def CmdAudit(self): - """Track the progress of the GYP->GN migration on the bots.""" - - # First, make sure the config file is okay, but don't print anything - # if it is (it will throw an error if it isn't). - self.CmdValidate(print_ok=False) - - stats = OrderedDict() - STAT_MASTER_ONLY = 'Master only' - STAT_CONFIG_ONLY = 'Config only' - STAT_TBD = 'Still TBD' - STAT_GYP = 'Still GYP' - STAT_DONE = 'Done (on GN)' - stats[STAT_MASTER_ONLY] = 0 - stats[STAT_CONFIG_ONLY] = 0 - stats[STAT_TBD] = 0 - stats[STAT_GYP] = 0 - stats[STAT_DONE] = 0 - - def PrintBuilders(heading, builders, notes): - stats.setdefault(heading, 0) - stats[heading] += len(builders) - if builders: - self.Print(' %s:' % heading) - for builder in sorted(builders): - self.Print(' %s%s' % (builder, notes[builder])) - - self.ReadConfigFile() - - masters = self.args.master or self.masters - for master in sorted(masters): - url = self.args.url_template.replace('{master}', master) - - self.Print('Auditing %s' % master) - - MASTERS_TO_SKIP = ( - 'client.skia', - 'client.v8.fyi', - 'tryserver.v8', - ) - if master in MASTERS_TO_SKIP: - # Skip these bots because converting them is the responsibility of - # those teams and out of scope for the Chromium migration to GN. - self.Print(' Skipped (out of scope)') - self.Print('') - continue - - INTERNAL_MASTERS = ('official.desktop', 'official.desktop.continuous', - 'internal.client.kitchensync') - if master in INTERNAL_MASTERS and not self.args.internal: - # Skip these because the servers aren't accessible by default ... - self.Print(' Skipped (internal)') - self.Print('') - continue - - try: - # Fetch the /builders contents from the buildbot master. The - # keys of the dict are the builder names themselves. - json_contents = self.Fetch(url) - d = json.loads(json_contents) - except Exception as e: - self.Print(str(e)) - return 1 - - config_builders = set(self.masters[master]) - master_builders = set(d.keys()) - both = master_builders & config_builders - master_only = master_builders - config_builders - config_only = config_builders - master_builders - tbd = set() - gyp = set() - done = set() - notes = {builder: '' for builder in config_builders | master_builders} - - for builder in both: - config = self.masters[master][builder] - if config == 'tbd': - tbd.add(builder) - elif isinstance(config, dict): - vals = self.FlattenConfig(config.values()[0]) - if vals['type'] == 'gyp': - gyp.add(builder) - else: - done.add(builder) - elif config.startswith('//'): - done.add(builder) - else: - vals = self.FlattenConfig(config) - if vals['type'] == 'gyp': - gyp.add(builder) - else: - done.add(builder) - - if self.args.check_compile and (tbd or master_only): - either = tbd | master_only - for builder in either: - notes[builder] = ' (' + self.CheckCompile(master, builder) +')' - - if master_only or config_only or tbd or gyp: - PrintBuilders(STAT_MASTER_ONLY, master_only, notes) - PrintBuilders(STAT_CONFIG_ONLY, config_only, notes) - PrintBuilders(STAT_TBD, tbd, notes) - PrintBuilders(STAT_GYP, gyp, notes) - else: - self.Print(' All GN!') - - stats[STAT_DONE] += len(done) - - self.Print('') - - fmt = '{:<27} {:>4}' - self.Print(fmt.format('Totals', str(sum(int(v) for v in stats.values())))) - self.Print(fmt.format('-' * 27, '----')) - for stat, count in stats.items(): - self.Print(fmt.format(stat, str(count))) - - return 0 - def GetConfig(self): build_dir = self.args.path[0] vals = self.DefaultVals() if self.args.builder or self.args.master or self.args.config: vals = self.Lookup() - if vals['type'] == 'gn': - # Re-run gn gen in order to ensure the config is consistent with the - # build dir. - self.RunGNGen(vals) + # Re-run gn gen in order to ensure the config is consistent with the + # build dir. + self.RunGNGen(vals) return vals - mb_type_path = self.PathJoin(self.ToAbsPath(build_dir), 'mb_type') - if not self.Exists(mb_type_path): - toolchain_path = self.PathJoin(self.ToAbsPath(build_dir), - 'toolchain.ninja') - if not self.Exists(toolchain_path): - self.Print('Must either specify a path to an existing GN build dir ' - 'or pass in a -m/-b pair or a -c flag to specify the ' - 'configuration') - return {} - else: - mb_type = 'gn' - else: - mb_type = self.ReadFile(mb_type_path).strip() - - if mb_type == 'gn': - vals['gn_args'] = self.GNArgsFromDir(build_dir) - vals['type'] = mb_type + toolchain_path = self.PathJoin(self.ToAbsPath(build_dir), + 'toolchain.ninja') + if not self.Exists(toolchain_path): + self.Print('Must either specify a path to an existing GN build dir ' + 'or pass in a -m/-b pair or a -c flag to specify the ' + 'configuration') + return {} + vals['gn_args'] = self.GNArgsFromDir(build_dir) return vals def GNArgsFromDir(self, build_dir): @@ -641,14 +532,6 @@ def Lookup(self): raise MBErr('Config "%s" not found in %s' % (config, self.args.config_file)) vals = self.FlattenConfig(config) - - # Do some basic sanity checking on the config so that we - # don't have to do this in every caller. - if 'type' not in vals: - vals['type'] = 'gn' - assert vals['type'] in ('gn', 'gyp'), ( - 'Unknown meta-build type "%s"' % vals['gn_args']) - return vals def ReadIOSBotConfig(self): @@ -660,17 +543,10 @@ def ReadIOSBotConfig(self): return {} contents = json.loads(self.ReadFile(path)) - gyp_vals = contents.get('GYP_DEFINES', {}) - if isinstance(gyp_vals, dict): - gyp_defines = ' '.join('%s=%s' % (k, v) for k, v in gyp_vals.items()) - else: - gyp_defines = ' '.join(gyp_vals) gn_args = ' '.join(contents.get('gn_args', [])) vals = self.DefaultVals() vals['gn_args'] = gn_args - vals['gyp_defines'] = gyp_defines - vals['type'] = contents.get('mb_type', 'gn') return vals def ReadConfigFile(self): @@ -689,14 +565,26 @@ def ReadConfigFile(self): self.mixins = contents['mixins'] def ReadIsolateMap(self): - if not self.Exists(self.args.isolate_map_file): - raise MBErr('isolate map file not found at %s' % - self.args.isolate_map_file) - try: - return ast.literal_eval(self.ReadFile(self.args.isolate_map_file)) - except SyntaxError as e: - raise MBErr('Failed to parse isolate map file "%s": %s' % - (self.args.isolate_map_file, e)) + if not self.args.isolate_map_files: + self.args.isolate_map_files = [self.default_isolate_map] + + for f in self.args.isolate_map_files: + if not self.Exists(f): + raise MBErr('isolate map file not found at %s' % f) + isolate_maps = {} + for isolate_map in self.args.isolate_map_files: + try: + isolate_map = ast.literal_eval(self.ReadFile(isolate_map)) + duplicates = set(isolate_map).intersection(isolate_maps) + if duplicates: + raise MBErr( + 'Duplicate targets in isolate map files: %s.' % + ', '.join(duplicates)) + isolate_maps.update(isolate_map) + except SyntaxError as e: + raise MBErr( + 'Failed to parse isolate map file "%s": %s' % (isolate_map, e)) + return isolate_maps def ConfigFromArgs(self): if self.args.config: @@ -747,9 +635,6 @@ def DefaultVals(self): 'args_file': '', 'cros_passthrough': False, 'gn_args': '', - 'gyp_defines': '', - 'gyp_crosscompile': False, - 'type': 'gn', } def FlattenMixins(self, mixins, vals, visited): @@ -773,50 +658,11 @@ def FlattenMixins(self, mixins, vals, visited): vals['gn_args'] += ' ' + mixin_vals['gn_args'] else: vals['gn_args'] = mixin_vals['gn_args'] - if 'gyp_crosscompile' in mixin_vals: - vals['gyp_crosscompile'] = mixin_vals['gyp_crosscompile'] - if 'gyp_defines' in mixin_vals: - if vals['gyp_defines']: - vals['gyp_defines'] += ' ' + mixin_vals['gyp_defines'] - else: - vals['gyp_defines'] = mixin_vals['gyp_defines'] - if 'type' in mixin_vals: - vals['type'] = mixin_vals['type'] if 'mixins' in mixin_vals: self.FlattenMixins(mixin_vals['mixins'], vals, visited) return vals - def ClobberIfNeeded(self, vals): - path = self.args.path[0] - build_dir = self.ToAbsPath(path) - mb_type_path = self.PathJoin(build_dir, 'mb_type') - needs_clobber = False - new_mb_type = vals['type'] - if self.Exists(build_dir): - if self.Exists(mb_type_path): - old_mb_type = self.ReadFile(mb_type_path) - if old_mb_type != new_mb_type: - self.Print("Build type mismatch: was %s, will be %s, clobbering %s" % - (old_mb_type, new_mb_type, path)) - needs_clobber = True - else: - # There is no 'mb_type' file in the build directory, so this probably - # means that the prior build(s) were not done through mb, and we - # have no idea if this was a GYP build or a GN build. Clobber it - # to be safe. - self.Print("%s/mb_type missing, clobbering to be safe" % path) - needs_clobber = True - - if self.args.dryrun: - return - - if needs_clobber: - self.RemoveDirectory(build_dir) - - self.MaybeMakeDirectory(build_dir) - self.WriteFile(mb_type_path, new_mb_type) - def RunGNGen(self, vals, compute_grit_inputs_for_analyze=False): build_dir = self.args.path[0] @@ -861,6 +707,7 @@ def RunGNGen(self, vals, compute_grit_inputs_for_analyze=False): return ret android = 'target_os="android"' in vals['gn_args'] + fuchsia = 'target_os="fuchsia"' in vals['gn_args'] for target in swarming_targets: if android: # Android targets may be either android_apk or executable. The former @@ -870,6 +717,11 @@ def RunGNGen(self, vals, compute_grit_inputs_for_analyze=False): runtime_deps_targets = [ target + '.runtime_deps', 'obj/%s.stamp.runtime_deps' % label.replace(':', '/')] + elif fuchsia: + # Only emit a runtime deps file for the group() target on Fuchsia. + label = isolate_map[target]['label'] + runtime_deps_targets = [ + 'obj/%s.stamp.runtime_deps' % label.replace(':', '/')] elif (isolate_map[target]['type'] == 'script' or isolate_map[target].get('label_type') == 'group'): # For script targets, the build target is usually a group, @@ -1023,38 +875,6 @@ def GNArgs(self, vals): gn_args = ('import("%s")\n' % vals['args_file']) + gn_args return gn_args - def RunGYPGen(self, vals): - path = self.args.path[0] - - output_dir = self.ParseGYPConfigPath(path) - cmd, env = self.GYPCmd(output_dir, vals) - ret, _, _ = self.Run(cmd, env=env) - return ret - - def RunGYPAnalyze(self, vals): - output_dir = self.ParseGYPConfigPath(self.args.path[0]) - if self.args.verbose: - inp = self.ReadInputJSON(['files', 'test_targets', - 'additional_compile_targets']) - self.Print() - self.Print('analyze input:') - self.PrintJSON(inp) - self.Print() - - cmd, env = self.GYPCmd(output_dir, vals) - cmd.extend(['-f', 'analyzer', - '-G', 'config_path=%s' % self.args.input_path[0], - '-G', 'analyzer_output_path=%s' % self.args.output_path[0]]) - ret, _, _ = self.Run(cmd, env=env) - if not ret and self.args.verbose: - outp = json.loads(self.ReadFile(self.args.output_path[0])) - self.Print() - self.Print('analyze output:') - self.PrintJSON(outp) - self.Print() - - return ret - def ToAbsPath(self, build_path, *comps): return self.PathJoin(self.chromium_src_dir, self.ToSrcRelPath(build_path), @@ -1066,86 +886,6 @@ def ToSrcRelPath(self, path): return path[2:].replace('/', self.sep) return self.RelPath(path, self.chromium_src_dir) - def ParseGYPConfigPath(self, path): - rpath = self.ToSrcRelPath(path) - output_dir, _, _ = rpath.rpartition(self.sep) - return output_dir - - def GYPCmd(self, output_dir, vals): - if vals['cros_passthrough']: - if not 'GYP_DEFINES' in os.environ: - raise MBErr('MB is expecting GYP_DEFINES to be in the environment') - gyp_defines = os.environ['GYP_DEFINES'] - if not 'chromeos=1' in gyp_defines: - raise MBErr('GYP_DEFINES is missing chromeos=1: (GYP_DEFINES=%s)' % - gyp_defines) - else: - gyp_defines = vals['gyp_defines'] - - goma_dir = self.args.goma_dir - - # GYP uses shlex.split() to split the gyp defines into separate arguments, - # so we can support backslashes and and spaces in arguments by quoting - # them, even on Windows, where this normally wouldn't work. - if goma_dir and ('\\' in goma_dir or ' ' in goma_dir): - goma_dir = "'%s'" % goma_dir - - if goma_dir: - gyp_defines += ' gomadir=%s' % goma_dir - - android_version_code = self.args.android_version_code - if android_version_code: - gyp_defines += ' app_manifest_version_code=%s' % android_version_code - - android_version_name = self.args.android_version_name - if android_version_name: - gyp_defines += ' app_manifest_version_name=%s' % android_version_name - - cmd = [ - self.executable, - self.args.gyp_script, - '-G', - 'output_dir=' + output_dir, - ] - - # Ensure that we have an environment that only contains - # the exact values of the GYP variables we need. - env = os.environ.copy() - - # This is a terrible hack to work around the fact that - # //tools/clang/scripts/update.py is invoked by GYP and GN but - # currently relies on an environment variable to figure out - # what revision to embed in the command line #defines. - # For GN, we've made this work via a gn arg that will cause update.py - # to get an additional command line arg, but getting that to work - # via GYP_DEFINES has proven difficult, so we rewrite the GYP_DEFINES - # to get rid of the arg and add the old var in, instead. - # See crbug.com/582737 for more on this. This can hopefully all - # go away with GYP. - m = re.search('llvm_force_head_revision=1\s*', gyp_defines) - if m: - env['LLVM_FORCE_HEAD_REVISION'] = '1' - gyp_defines = gyp_defines.replace(m.group(0), '') - - # This is another terrible hack to work around the fact that - # GYP sets the link concurrency to use via the GYP_LINK_CONCURRENCY - # environment variable, and not via a proper GYP_DEFINE. See - # crbug.com/611491 for more on this. - m = re.search('gyp_link_concurrency=(\d+)(\s*)', gyp_defines) - if m: - env['GYP_LINK_CONCURRENCY'] = m.group(1) - gyp_defines = gyp_defines.replace(m.group(0), '') - - env['GYP_GENERATORS'] = 'ninja' - if 'GYP_CHROMIUM_NO_ACTION' in env: - del env['GYP_CHROMIUM_NO_ACTION'] - if 'GYP_CROSSCOMPILE' in env: - del env['GYP_CROSSCOMPILE'] - env['GYP_DEFINES'] = gyp_defines - if vals['gyp_crosscompile']: - env['GYP_CROSSCOMPILE'] = '1' - return cmd, env - def RunGNAnalyze(self, vals): # Analyze runs before 'gn gen' now, so we need to run gn gen # in order to ensure that we have a build directory. @@ -1347,9 +1087,6 @@ def print_env(var): if env and var in env: self.Print('%s%s=%s' % (env_prefix, var, env_quoter(env[var]))) - print_env('GYP_CROSSCOMPILE') - print_env('GYP_DEFINES') - print_env('GYP_LINK_CONCURRENCY') print_env('LLVM_FORCE_HEAD_REVISION') if cmd[0] == self.executable: @@ -1486,7 +1223,6 @@ def QuoteForSet(arg): def QuoteForCmd(arg): # First, escape the arg so that CommandLineToArgvW will parse it properly. - # From //tools/gyp/pylib/gyp/msvs_emulation.py:23. if arg == '' or ' ' in arg or '"' in arg: quote_re = re.compile(r'(\\*)"') arg = '"%s"' % (quote_re.sub(lambda mo: 2 * mo.group(1) + '\\"', arg)) diff --git a/deps/v8/tools/mb/mb_unittest.py b/deps/v8/tools/mb/mb_unittest.py index 15763750da5fa9..0413457eab2999 100755 --- a/deps/v8/tools/mb/mb_unittest.py +++ b/deps/v8/tools/mb/mb_unittest.py @@ -65,8 +65,6 @@ def WriteFile(self, path, contents, force_verbose=False): self.files[path] = contents def Call(self, cmd, env=None, buffer_output=True): - if env: - self.cross_compile = env.get('GYP_CROSSCOMPILE') self.calls.append(cmd) if self.cmds: return self.cmds.pop(0) @@ -112,13 +110,10 @@ def close(self): 'masters': { 'chromium': {}, 'fake_master': { - 'fake_builder': 'gyp_rel_bot', - 'fake_gn_builder': 'gn_rel_bot', - 'fake_gyp_crosscompile_builder': 'gyp_crosscompile', - 'fake_gn_debug_builder': 'gn_debug_goma', - 'fake_gyp_builder': 'gyp_debug', - 'fake_gn_args_bot': '//build/args/bots/fake_master/fake_gn_args_bot.gn', - 'fake_multi_phase': { 'phase_1': 'gn_phase_1', 'phase_2': 'gn_phase_2'}, + 'fake_builder': 'rel_bot', + 'fake_debug_builder': 'debug_goma', + 'fake_args_bot': '//build/args/bots/fake_master/fake_args_bot.gn', + 'fake_multi_phase': { 'phase_1': 'phase_1', 'phase_2': 'phase_2'}, 'fake_args_file': 'args_file_goma', 'fake_args_file_twice': 'args_file_twice', }, @@ -126,38 +121,26 @@ def close(self): 'configs': { 'args_file_goma': ['args_file', 'goma'], 'args_file_twice': ['args_file', 'args_file'], - 'gyp_rel_bot': ['gyp', 'rel', 'goma'], - 'gn_debug_goma': ['gn', 'debug', 'goma'], - 'gyp_debug': ['gyp', 'debug', 'fake_feature1'], - 'gn_rel_bot': ['gn', 'rel', 'goma'], - 'gyp_crosscompile': ['gyp', 'crosscompile'], - 'gn_phase_1': ['gn', 'phase_1'], - 'gn_phase_2': ['gn', 'phase_2'], + 'rel_bot': ['rel', 'goma', 'fake_feature1'], + 'debug_goma': ['debug', 'goma'], + 'phase_1': ['phase_1'], + 'phase_2': ['phase_2'], }, 'mixins': { - 'crosscompile': { - 'gyp_crosscompile': True, - }, 'fake_feature1': { 'gn_args': 'enable_doom_melon=true', - 'gyp_defines': 'doom_melon=1', }, - 'gyp': {'type': 'gyp'}, - 'gn': {'type': 'gn'}, 'goma': { 'gn_args': 'use_goma=true', - 'gyp_defines': 'goma=1', }, 'args_file': { 'args_file': '//build/args/fake.gn', }, 'phase_1': { 'gn_args': 'phase=1', - 'gyp_args': 'phase=1', }, 'phase_2': { 'gn_args': 'phase=2', - 'gyp_args': 'phase=2', }, 'rel': { 'gn_args': 'is_debug=false', @@ -169,28 +152,6 @@ def close(self): } """ -GYP_HACKS_CONFIG = """\ -{ - 'masters': { - 'chromium': {}, - 'fake_master': { - 'fake_builder': 'fake_config', - }, - }, - 'configs': { - 'fake_config': ['fake_mixin'], - }, - 'mixins': { - 'fake_mixin': { - 'type': 'gyp', - 'gn_args': '', - 'gyp_defines': - ('foo=bar llvm_force_head_revision=1 ' - 'gyp_link_concurrency=1 baz=1'), - }, - }, -} -""" TRYSERVER_CONFIG = """\ { @@ -229,7 +190,7 @@ def fake_mbw(self, files=None, win32=False): }, }''') mbw.files.setdefault( - mbw.ToAbsPath('//build/args/bots/fake_master/fake_gn_args_bot.gn'), + mbw.ToAbsPath('//build/args/bots/fake_master/fake_args_bot.gn'), 'is_debug = false\n') if files: for path, contents in files.items(): @@ -249,37 +210,6 @@ def check(self, args, mbw=None, files=None, out=None, err=None, ret=None): self.assertEqual(mbw.err, err) return mbw - def test_clobber(self): - files = { - '/fake_src/out/Debug': None, - '/fake_src/out/Debug/mb_type': None, - } - mbw = self.fake_mbw(files) - - # The first time we run this, the build dir doesn't exist, so no clobber. - self.check(['gen', '-c', 'gn_debug_goma', '//out/Debug'], mbw=mbw, ret=0) - self.assertEqual(mbw.rmdirs, []) - self.assertEqual(mbw.files['/fake_src/out/Debug/mb_type'], 'gn') - - # The second time we run this, the build dir exists and matches, so no - # clobber. - self.check(['gen', '-c', 'gn_debug_goma', '//out/Debug'], mbw=mbw, ret=0) - self.assertEqual(mbw.rmdirs, []) - self.assertEqual(mbw.files['/fake_src/out/Debug/mb_type'], 'gn') - - # Now we switch build types; this should result in a clobber. - self.check(['gen', '-c', 'gyp_debug', '//out/Debug'], mbw=mbw, ret=0) - self.assertEqual(mbw.rmdirs, ['/fake_src/out/Debug']) - self.assertEqual(mbw.files['/fake_src/out/Debug/mb_type'], 'gyp') - - # Now we delete mb_type; this checks the case where the build dir - # exists but wasn't populated by mb; this should also result in a clobber. - del mbw.files['/fake_src/out/Debug/mb_type'] - self.check(['gen', '-c', 'gyp_debug', '//out/Debug'], mbw=mbw, ret=0) - self.assertEqual(mbw.rmdirs, - ['/fake_src/out/Debug', '/fake_src/out/Debug']) - self.assertEqual(mbw.files['/fake_src/out/Debug/mb_type'], 'gyp') - def test_analyze(self): files = {'/tmp/in.json': '''{\ "files": ["foo/foo_unittest.cc"], @@ -295,7 +225,7 @@ def test_analyze(self): mbw = self.fake_mbw(files) mbw.Call = lambda cmd, env=None, buffer_output=True: (0, '', '') - self.check(['analyze', '-c', 'gn_debug_goma', '//out/Default', + self.check(['analyze', '-c', 'debug_goma', '//out/Default', '/tmp/in.json', '/tmp/out.json'], mbw=mbw, ret=0) out = json.loads(mbw.files['/tmp/out.json']) self.assertEqual(out, { @@ -319,7 +249,7 @@ def test_analyze_optimizes_compile_for_all(self): mbw = self.fake_mbw(files) mbw.Call = lambda cmd, env=None, buffer_output=True: (0, '', '') - self.check(['analyze', '-c', 'gn_debug_goma', '//out/Default', + self.check(['analyze', '-c', 'debug_goma', '//out/Default', '/tmp/in.json', '/tmp/out.json'], mbw=mbw, ret=0) out = json.loads(mbw.files['/tmp/out.json']) @@ -342,7 +272,7 @@ def test_analyze_handles_other_toolchains(self): mbw = self.fake_mbw(files) mbw.Call = lambda cmd, env=None, buffer_output=True: (0, '', '') - self.check(['analyze', '-c', 'gn_debug_goma', '//out/Default', + self.check(['analyze', '-c', 'debug_goma', '//out/Default', '/tmp/in.json', '/tmp/out.json'], mbw=mbw, ret=0) out = json.loads(mbw.files['/tmp/out.json']) @@ -369,7 +299,7 @@ def test_analyze_handles_way_too_many_results(self): mbw = self.fake_mbw(files) mbw.Call = lambda cmd, env=None, buffer_output=True: (0, '', '') - self.check(['analyze', '-c', 'gn_debug_goma', '//out/Default', + self.check(['analyze', '-c', 'debug_goma', '//out/Default', '/tmp/in.json', '/tmp/out.json'], mbw=mbw, ret=0) out = json.loads(mbw.files['/tmp/out.json']) @@ -379,9 +309,9 @@ def test_analyze_handles_way_too_many_results(self): # test_targets and additional_compile_targets. self.assertEqual(['all', 'foo_unittests'], out['compile_targets']) - def test_gn_gen(self): + def test_gen(self): mbw = self.fake_mbw() - self.check(['gen', '-c', 'gn_debug_goma', '//out/Default', '-g', '/goma'], + self.check(['gen', '-c', 'debug_goma', '//out/Default', '-g', '/goma'], mbw=mbw, ret=0) self.assertMultiLineEqual(mbw.files['/fake_src/out/Default/args.gn'], ('goma_dir = "/goma"\n' @@ -394,7 +324,7 @@ def test_gn_gen(self): mbw.out) mbw = self.fake_mbw(win32=True) - self.check(['gen', '-c', 'gn_debug_goma', '-g', 'c:\\goma', '//out/Debug'], + self.check(['gen', '-c', 'debug_goma', '-g', 'c:\\goma', '//out/Debug'], mbw=mbw, ret=0) self.assertMultiLineEqual(mbw.files['c:\\fake_src\\out\\Debug\\args.gn'], ('goma_dir = "c:\\\\goma"\n' @@ -404,14 +334,14 @@ def test_gn_gen(self): '--check\n', mbw.out) mbw = self.fake_mbw() - self.check(['gen', '-m', 'fake_master', '-b', 'fake_gn_args_bot', + self.check(['gen', '-m', 'fake_master', '-b', 'fake_args_bot', '//out/Debug'], mbw=mbw, ret=0) self.assertEqual( mbw.files['/fake_src/out/Debug/args.gn'], - 'import("//build/args/bots/fake_master/fake_gn_args_bot.gn")\n') + 'import("//build/args/bots/fake_master/fake_args_bot.gn")\n') - def test_gn_gen_args_file_mixins(self): + def test_gen_args_file_mixins(self): mbw = self.fake_mbw() self.check(['gen', '-m', 'fake_master', '-b', 'fake_args_file', '//out/Debug'], mbw=mbw, ret=0) @@ -425,14 +355,14 @@ def test_gn_gen_args_file_mixins(self): self.check(['gen', '-m', 'fake_master', '-b', 'fake_args_file_twice', '//out/Debug'], mbw=mbw, ret=1) - def test_gn_gen_fails(self): + def test_gen_fails(self): mbw = self.fake_mbw() mbw.Call = lambda cmd, env=None, buffer_output=True: (1, '', '') - self.check(['gen', '-c', 'gn_debug_goma', '//out/Default'], mbw=mbw, ret=1) + self.check(['gen', '-c', 'debug_goma', '//out/Default'], mbw=mbw, ret=1) # TODO(machenbach): Comment back in after swarming file parameter is used. """ - def test_gn_gen_swarming(self): + def test_gen_swarming(self): files = { '/tmp/swarming_targets': 'base_unittests\n', '/fake_src/testing/buildbot/gn_isolate_map.pyl': ( @@ -448,7 +378,7 @@ def test_gn_gen_swarming(self): } mbw = self.fake_mbw(files) self.check(['gen', - '-c', 'gn_debug_goma', + '-c', 'debug_goma', '--swarming-targets-file', '/tmp/swarming_targets', '//out/Default'], mbw=mbw, ret=0) self.assertIn('/fake_src/out/Default/base_unittests.isolate', @@ -456,7 +386,7 @@ def test_gn_gen_swarming(self): self.assertIn('/fake_src/out/Default/base_unittests.isolated.gen.json', mbw.files) - def test_gn_gen_swarming_script(self): + def test_gen_swarming_script(self): files = { '/tmp/swarming_targets': 'cc_perftests\n', '/fake_src/testing/buildbot/gn_isolate_map.pyl': ( @@ -473,7 +403,7 @@ def test_gn_gen_swarming_script(self): } mbw = self.fake_mbw(files=files, win32=True) self.check(['gen', - '-c', 'gn_debug_goma', + '-c', 'debug_goma', '--swarming-targets-file', '/tmp/swarming_targets', '--isolate-map-file', '/fake_src/testing/buildbot/gn_isolate_map.pyl', @@ -482,9 +412,77 @@ def test_gn_gen_swarming_script(self): mbw.files) self.assertIn('c:\\fake_src\\out\\Default\\cc_perftests.isolated.gen.json', mbw.files) - """ # pylint: disable=pointless-string-statement - def test_gn_isolate(self): + + def test_multiple_isolate_maps(self): + files = { + '/tmp/swarming_targets': 'cc_perftests\n', + '/fake_src/testing/buildbot/gn_isolate_map.pyl': ( + "{'cc_perftests': {" + " 'label': '//cc:cc_perftests'," + " 'type': 'raw'," + " 'args': []," + "}}\n" + ), + '/fake_src/testing/buildbot/gn_isolate_map2.pyl': ( + "{'cc_perftests2': {" + " 'label': '//cc:cc_perftests'," + " 'type': 'raw'," + " 'args': []," + "}}\n" + ), + 'c:\\fake_src\out\Default\cc_perftests.exe.runtime_deps': ( + "cc_perftests\n" + ), + } + mbw = self.fake_mbw(files=files, win32=True) + self.check(['gen', + '-c', 'debug_goma', + '--swarming-targets-file', '/tmp/swarming_targets', + '--isolate-map-file', + '/fake_src/testing/buildbot/gn_isolate_map.pyl', + '--isolate-map-file', + '/fake_src/testing/buildbot/gn_isolate_map2.pyl', + '//out/Default'], mbw=mbw, ret=0) + self.assertIn('c:\\fake_src\\out\\Default\\cc_perftests.isolate', + mbw.files) + self.assertIn('c:\\fake_src\\out\\Default\\cc_perftests.isolated.gen.json', + mbw.files) + + + def test_duplicate_isolate_maps(self): + files = { + '/tmp/swarming_targets': 'cc_perftests\n', + '/fake_src/testing/buildbot/gn_isolate_map.pyl': ( + "{'cc_perftests': {" + " 'label': '//cc:cc_perftests'," + " 'type': 'raw'," + " 'args': []," + "}}\n" + ), + '/fake_src/testing/buildbot/gn_isolate_map2.pyl': ( + "{'cc_perftests': {" + " 'label': '//cc:cc_perftests'," + " 'type': 'raw'," + " 'args': []," + "}}\n" + ), + 'c:\\fake_src\out\Default\cc_perftests.exe.runtime_deps': ( + "cc_perftests\n" + ), + } + mbw = self.fake_mbw(files=files, win32=True) + # Check that passing duplicate targets into mb fails. + self.check(['gen', + '-c', 'debug_goma', + '--swarming-targets-file', '/tmp/swarming_targets', + '--isolate-map-file', + '/fake_src/testing/buildbot/gn_isolate_map.pyl', + '--isolate-map-file', + '/fake_src/testing/buildbot/gn_isolate_map2.pyl', + '//out/Default'], mbw=mbw, ret=1) + + def test_isolate(self): files = { '/fake_src/out/Default/toolchain.ninja': "", '/fake_src/testing/buildbot/gn_isolate_map.pyl': ( @@ -498,7 +496,7 @@ def test_gn_isolate(self): "base_unittests\n" ), } - self.check(['isolate', '-c', 'gn_debug_goma', '//out/Default', + self.check(['isolate', '-c', 'debug_goma', '//out/Default', 'base_unittests'], files=files, ret=0) # test running isolate on an existing build_dir @@ -506,11 +504,10 @@ def test_gn_isolate(self): self.check(['isolate', '//out/Default', 'base_unittests'], files=files, ret=0) - files['/fake_src/out/Default/mb_type'] = 'gn\n' self.check(['isolate', '//out/Default', 'base_unittests'], files=files, ret=0) - def test_gn_run(self): + def test_run(self): files = { '/fake_src/testing/buildbot/gn_isolate_map.pyl': ( "{'base_unittests': {" @@ -523,55 +520,51 @@ def test_gn_run(self): "base_unittests\n" ), } - self.check(['run', '-c', 'gn_debug_goma', '//out/Default', + self.check(['run', '-c', 'debug_goma', '//out/Default', 'base_unittests'], files=files, ret=0) - def test_gn_lookup(self): - self.check(['lookup', '-c', 'gn_debug_goma'], ret=0) + def test_run_swarmed(self): + files = { + '/fake_src/testing/buildbot/gn_isolate_map.pyl': ( + "{'base_unittests': {" + " 'label': '//base:base_unittests'," + " 'type': 'raw'," + " 'args': []," + "}}\n" + ), + '/fake_src/out/Default/base_unittests.runtime_deps': ( + "base_unittests\n" + ), + } + + def run_stub(cmd, **_kwargs): + if 'isolate.py' in cmd[1]: + return 0, 'fake_hash base_unittests', '' + else: + return 0, '', '' + + mbw = self.fake_mbw(files=files) + mbw.Run = run_stub + self.check(['run', '-s', '-c', 'debug_goma', '//out/Default', + 'base_unittests'], mbw=mbw, ret=0) + self.check(['run', '-s', '-c', 'debug_goma', '-d', 'os', 'Win7', + '//out/Default', 'base_unittests'], mbw=mbw, ret=0) + """ # pylint: disable=pointless-string-statement - def test_gn_lookup_goma_dir_expansion(self): - self.check(['lookup', '-c', 'gn_rel_bot', '-g', '/foo'], ret=0, + def test_lookup(self): + self.check(['lookup', '-c', 'debug_goma'], ret=0) + + def test_lookup_goma_dir_expansion(self): + self.check(['lookup', '-c', 'rel_bot', '-g', '/foo'], ret=0, out=('\n' 'Writing """\\\n' + 'enable_doom_melon = true\n' 'goma_dir = "/foo"\n' 'is_debug = false\n' 'use_goma = true\n' '""" to _path_/args.gn.\n\n' '/fake_src/buildtools/linux64/gn gen _path_\n')) - def test_gyp_analyze(self): - mbw = self.check(['analyze', '-c', 'gyp_rel_bot', '//out/Release', - '/tmp/in.json', '/tmp/out.json'], ret=0) - self.assertIn('analyzer', mbw.calls[0]) - - def test_gyp_crosscompile(self): - mbw = self.fake_mbw() - self.check(['gen', '-c', 'gyp_crosscompile', '//out/Release'], - mbw=mbw, ret=0) - self.assertTrue(mbw.cross_compile) - - def test_gyp_gen(self): - self.check(['gen', '-c', 'gyp_rel_bot', '-g', '/goma', '//out/Release'], - ret=0, - out=("GYP_DEFINES='goma=1 gomadir=/goma'\n" - "python build/gyp_chromium -G output_dir=out\n")) - - mbw = self.fake_mbw(win32=True) - self.check(['gen', '-c', 'gyp_rel_bot', '-g', 'c:\\goma', '//out/Release'], - mbw=mbw, ret=0, - out=("set GYP_DEFINES=goma=1 gomadir='c:\\goma'\n" - "python build\\gyp_chromium -G output_dir=out\n")) - - def test_gyp_gen_fails(self): - mbw = self.fake_mbw() - mbw.Call = lambda cmd, env=None, buffer_output=True: (1, '', '') - self.check(['gen', '-c', 'gyp_rel_bot', '//out/Release'], mbw=mbw, ret=1) - - def test_gyp_lookup_goma_dir_expansion(self): - self.check(['lookup', '-c', 'gyp_rel_bot', '-g', '/foo'], ret=0, - out=("GYP_DEFINES='goma=1 gomadir=/foo'\n" - "python build/gyp_chromium -G output_dir=_path_\n")) - def test_help(self): orig_stdout = sys.stdout try: @@ -589,7 +582,7 @@ def test_multiple_phases(self): self.assertIn('Must specify a build --phase', mbw.out) # Check that passing a --phase to a single-phase builder fails. - mbw = self.check(['lookup', '-m', 'fake_master', '-b', 'fake_gn_builder', + mbw = self.check(['lookup', '-m', 'fake_master', '-b', 'fake_builder', '--phase', 'phase_1'], ret=1) self.assertIn('Must not specify a build --phase', mbw.out) @@ -611,16 +604,6 @@ def test_validate(self): mbw = self.fake_mbw() self.check(['validate'], mbw=mbw, ret=0) - def test_gyp_env_hacks(self): - mbw = self.fake_mbw() - mbw.files[mbw.default_config] = GYP_HACKS_CONFIG - self.check(['lookup', '-c', 'fake_config'], mbw=mbw, - ret=0, - out=("GYP_DEFINES='foo=bar baz=1'\n" - "GYP_LINK_CONCURRENCY=1\n" - "LLVM_FORCE_HEAD_REVISION=1\n" - "python build/gyp_chromium -G output_dir=_path_\n")) - def test_buildbucket(self): mbw = self.fake_mbw() mbw.files[mbw.default_config] = TRYSERVER_CONFIG diff --git a/deps/v8/tools/mingw-generate-makefiles.sh b/deps/v8/tools/mingw-generate-makefiles.sh deleted file mode 100755 index 67715fc15b0a47..00000000000000 --- a/deps/v8/tools/mingw-generate-makefiles.sh +++ /dev/null @@ -1,97 +0,0 @@ -#!/bin/sh -# Copyright 2013 the V8 project authors. All rights reserved. -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following -# disclaimer in the documentation and/or other materials provided -# with the distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -# Monkey-patch GYP. -cat > tools/gyp/gyp.mingw << EOF -#!/usr/bin/env python - -# Copyright (c) 2009 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import sys - -# TODO(mark): sys.path manipulation is some temporary testing stuff. -try: - import gyp -except ImportError, e: - import os.path - sys.path.append(os.path.join(os.path.dirname(sys.argv[0]), 'pylib')) - import gyp - -def MonkeyBuildFileTargets(target_list, build_file): - """From a target_list, returns the subset from the specified build_file. - """ - build_file = build_file.replace('/', '\\\\') - return [p for p in target_list if gyp.common.BuildFile(p) == build_file] -gyp.common.BuildFileTargets = MonkeyBuildFileTargets - -import gyp.generator.make -import os -def Monkey_ITIP(self): - """Returns the location of the final output for an installable target.""" - sep = os.path.sep - # Xcode puts shared_library results into PRODUCT_DIR, and some gyp files - # rely on this. Emulate this behavior for mac. - if (self.type == 'shared_library' and - (self.flavor != 'mac' or self.toolset != 'target')): - # Install all shared libs into a common directory (per toolset) for - # convenient access with LD_LIBRARY_PATH. - return '\$(builddir)%slib.%s%s%s' % (sep, self.toolset, sep, self.alias) - return '\$(builddir)' + sep + self.alias -gyp.generator.make.MakefileWriter._InstallableTargetInstallPath = Monkey_ITIP - -if __name__ == '__main__': - sys.exit(gyp.main(sys.argv[1:])) -EOF - -# Delete old generated Makefiles. -find out -name '*.mk' -or -name 'Makefile*' -exec rm {} \; - -# Generate fresh Makefiles. -mv tools/gyp/gyp tools/gyp/gyp.original -mv tools/gyp/gyp.mingw tools/gyp/gyp -make out/Makefile.ia32 -mv tools/gyp/gyp tools/gyp/gyp.mingw -mv tools/gyp/gyp.original tools/gyp/gyp - -# Patch generated Makefiles: replace most backslashes with forward slashes, -# fix library names in linker flags. -FILES=$(find out -name '*.mk' -or -name 'Makefile*') -for F in $FILES ; do - echo "Patching $F..." - cp $F $F.orig - cat $F.orig \ - | sed -e 's|\([)a-zA-Z0-9]\)\\\([a-zA-Z]\)|\1/\2|g' \ - -e 's|\([)a-zA-Z0-9]\)\\\\\([a-zA-Z]\)|\1/\2|g' \ - -e 's|'%s/n'|'%s\\\\n'|g' \ - -e 's|-lwinmm\.lib|-lwinmm|g' \ - -e 's|-lws2_32\.lib|-lws2_32|g' \ - > $F - rm $F.orig -done diff --git a/deps/v8/tools/mips_toolchain.tar.gz.sha1 b/deps/v8/tools/mips_toolchain.tar.gz.sha1 new file mode 100644 index 00000000000000..8d4572336a8cbd --- /dev/null +++ b/deps/v8/tools/mips_toolchain.tar.gz.sha1 @@ -0,0 +1 @@ +d51b5d903340262d8d13ecd51054c16a901b3cf3 \ No newline at end of file diff --git a/deps/v8/tools/node/build_gn.py b/deps/v8/tools/node/build_gn.py index 8ab2a635ea2075..e95c3491e74802 100755 --- a/deps/v8/tools/node/build_gn.py +++ b/deps/v8/tools/node/build_gn.py @@ -17,6 +17,7 @@ v8_enable_disassembler=0 """ +import argparse import os import subprocess import sys @@ -31,52 +32,71 @@ "use_sysroot = false", ] -BUILD_SUBDIR = "gn" +BUILD_TARGET = "v8_monolith" -# TODO: make this cross-platform. -GN_SUBDIR = ["buildtools", "linux64", "gn"] +def FindGn(options): + if options.host_os == "linux": + os_path = "linux64" + elif options.host_os == "mac": + os_path = "mac" + elif options.host_os == "win": + os_path = "win" + else: + raise "Operating system not supported by GN" + return os.path.join(options.v8_path, "buildtools", os_path, "gn") -def Build(v8_path, build_path, depot_tools, is_debug, build_flags): +def GenerateBuildFiles(options): print "Setting GN args." - lines = [] - lines.extend(GN_ARGS) - for flag in build_flags: + gn = FindGn(options) + gn_args = [] + gn_args.extend(GN_ARGS) + for flag in options.flag: flag = flag.replace("=1", "=true") flag = flag.replace("=0", "=false") flag = flag.replace("target_cpu=ia32", "target_cpu=\"x86\"") - lines.append(flag) - lines.append("is_debug = %s" % ("true" if is_debug else "false")) - with open(os.path.join(build_path, "args.gn"), "w") as args_file: - args_file.write("\n".join(lines)) - gn = os.path.join(v8_path, *GN_SUBDIR) - subprocess.check_call([gn, "gen", "-C", build_path], cwd=v8_path) - ninja = os.path.join(depot_tools, "ninja") + gn_args.append(flag) + if options.mode == "DEBUG": + gn_args.append("is_debug = true") + else: + gn_args.append("is_debug = false") + + if not os.path.isdir(options.build_path): + os.makedirs(options.build_path) + with open(os.path.join(options.build_path, "args.gn"), "w") as args_file: + args_file.write("\n".join(gn_args)) + subprocess.check_call([gn, "gen", "-C", options.build_path], + cwd=options.v8_path) + +def Build(options): print "Building." - subprocess.check_call([ninja, "-v", "-C", build_path, "v8_monolith"], - cwd=v8_path) + depot_tools = node_common.EnsureDepotTools(options.v8_path, False) + ninja = os.path.join(depot_tools, "ninja") + subprocess.check_call([ninja, "-v", "-C", options.build_path, BUILD_TARGET], + cwd=options.v8_path) + +def ParseOptions(args): + parser = argparse.ArgumentParser( + description="Build %s with GN" % BUILD_TARGET) + parser.add_argument("--mode", help="Build mode (Release/Debug)") + parser.add_argument("--v8_path", help="Path to V8") + parser.add_argument("--build_path", help="Path to build result") + parser.add_argument("--flag", help="Translate GYP flag to GN", + action="append") + parser.add_argument("--host_os", help="Current operating system") + options = parser.parse_args(args) -def Main(v8_path, build_path, is_debug, build_flags): - # Verify paths. - v8_path = os.path.abspath(v8_path) - assert os.path.isdir(v8_path) - build_path = os.path.abspath(build_path) - build_path = os.path.join(build_path, BUILD_SUBDIR) - if not os.path.isdir(build_path): - os.makedirs(build_path) + assert options.host_os + assert options.mode == "Debug" or options.mode == "Release" - # Check that we have depot tools. - depot_tools = node_common.EnsureDepotTools(v8_path, False) + assert options.v8_path + options.v8_path = os.path.abspath(options.v8_path) + assert os.path.isdir(options.v8_path) - # Build with GN. - Build(v8_path, build_path, depot_tools, is_debug, build_flags) + assert options.build_path + options.build_path = os.path.abspath(options.build_path) + return options if __name__ == "__main__": - # TODO: use argparse to parse arguments. - build_mode = sys.argv[1] - v8_path = sys.argv[2] - build_path = sys.argv[3] - assert build_mode == "Debug" or build_mode == "Release" - is_debug = build_mode == "Debug" - # TODO: introduce "--" flag for pass-through flags. - build_flags = sys.argv[4:] - Main(v8_path, build_path, is_debug, build_flags) + options = ParseOptions(sys.argv[1:]) + GenerateBuildFiles(options) + Build(options) diff --git a/deps/v8/tools/node/fetch_deps.py b/deps/v8/tools/node/fetch_deps.py index a3e6d749177668..09a4e6cb97c8aa 100755 --- a/deps/v8/tools/node/fetch_deps.py +++ b/deps/v8/tools/node/fetch_deps.py @@ -32,7 +32,6 @@ "v8/test/mozilla/data" : None, "v8/test/test262/data" : None, "v8/test/test262/harness" : None, - "v8/test/wasm-js" : None, "v8/third_party/android_tools" : None, "v8/third_party/catapult" : None, "v8/third_party/colorama/src" : None, @@ -41,9 +40,6 @@ "v8/tools/luci-go" : None, "v8/tools/swarming_client" : None, }, - "custom_vars": { - "build_for_node" : True, - }, }, ] @@ -56,6 +52,8 @@ def EnsureGit(v8_path): return False print "Initializing temporary git repository in v8." subprocess.check_call(["git", "init"], cwd=v8_path) + subprocess.check_call(["git", "config", "user.name", "\"Ada Lovelace\""], cwd=v8_path) + subprocess.check_call(["git", "config", "user.email", "\"ada@lovela.ce\""], cwd=v8_path) subprocess.check_call(["git", "commit", "--allow-empty", "-m", "init"], cwd=v8_path) return True diff --git a/deps/v8/tools/node/update_node.py b/deps/v8/tools/node/update_node.py index ebd953a90359bf..5d7e4daff4eabf 100755 --- a/deps/v8/tools/node/update_node.py +++ b/deps/v8/tools/node/update_node.py @@ -54,6 +54,9 @@ "!/third_party/jinja2", "!/third_party/markupsafe" ] +# Node.js owns deps/v8/gypfiles in their downstream repository. +FILES_TO_KEEP = [ "gypfiles" ] + def RunGclient(path): assert os.path.isdir(path) print ">> Running gclient sync" @@ -73,7 +76,7 @@ def CommitPatch(options): cwd=options.v8_path, ) -def UpdateTarget(repository, options): +def UpdateTarget(repository, options, files_to_keep): source = os.path.join(options.v8_path, *repository) target = os.path.join(options.node_path, TARGET_SUBDIR, *repository) print ">> Updating target directory %s" % target @@ -83,16 +86,24 @@ def UpdateTarget(repository, options): # Remove possible remnants of previous incomplete runs. node_common.UninitGit(target) - git_commands = [ - ["git", "init"], # initialize target repo - ["git", "remote", "add", "origin", source], # point to the source repo - ["git", "fetch", "origin", "HEAD"], # sync to the current branch - ["git", "reset", "--hard", "FETCH_HEAD"], # reset to the current branch - ["git", "clean", "-fd"], # delete removed files - ] + git_args = [] + git_args.append(["init"]) # initialize target repo + + if files_to_keep: + git_args.append(["add"] + files_to_keep) # add and commit + git_args.append(["commit", "-m", "keep files"]) # files we want to keep + + git_args.append(["remote", "add", "source", source]) # point to source repo + git_args.append(["fetch", "source", "HEAD"]) # sync to current branch + git_args.append(["checkout", "-f", "FETCH_HEAD"]) # switch to that branch + git_args.append(["clean", "-fd"]) # delete removed files + + if files_to_keep: + git_args.append(["cherry-pick", "master"]) # restore kept files + try: - for command in git_commands: - subprocess.check_call(command, cwd=target) + for args in git_args: + subprocess.check_call(["git"] + args, cwd=target) except: raise finally: @@ -155,11 +166,11 @@ def Main(args): if options.with_patch: CommitPatch(options) # Update main V8 repository. - UpdateTarget([""], options) + UpdateTarget([""], options, FILES_TO_KEEP) # Patch .gitignore before updating sub-repositories. UpdateGitIgnore(options) for repo in SUB_REPOSITORIES: - UpdateTarget(repo, options) + UpdateTarget(repo, options, None) if options.commit: CreateCommit(options) diff --git a/deps/v8/tools/parser-shell.cc b/deps/v8/tools/parser-shell.cc index 1a492239969c1a..bcee2b82582f1b 100644 --- a/deps/v8/tools/parser-shell.cc +++ b/deps/v8/tools/parser-shell.cc @@ -39,7 +39,6 @@ #include "src/objects-inl.h" #include "src/parsing/parse-info.h" #include "src/parsing/parsing.h" -#include "src/parsing/preparse-data-format.h" #include "src/parsing/preparse-data.h" #include "src/parsing/preparser.h" #include "src/parsing/scanner-character-streams.h" @@ -59,9 +58,9 @@ class StringResource8 : public v8::String::ExternalOneByteStringResource { int length_; }; -std::pair RunBaselineParser( - const char* fname, Encoding encoding, int repeat, v8::Isolate* isolate, - v8::Local context) { +v8::base::TimeDelta RunBaselineParser(const char* fname, Encoding encoding, + int repeat, v8::Isolate* isolate, + v8::Local context) { int length = 0; const byte* source = ReadFileAndRepeat(fname, &length, repeat); v8::Local source_handle; @@ -87,42 +86,21 @@ std::pair RunBaselineParser( break; } } - v8::base::TimeDelta parse_time1, parse_time2; + v8::base::TimeDelta parse_time1; Handle