From 90efff6000ea24641417cd0c700b60281cd2d453 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Tue, 6 Sep 2016 22:49:51 +0200 Subject: [PATCH] deps: update V8 to 5.4.500.27 Pick up latest commit from the 5.4-lkgr branch. deps: edit V8 gitignore to allow trace event copy deps: update V8 trace event to 315bf1e2d45be7d53346c31cfcc37424a32c30c8 deps: edit V8 gitignore to allow gtest_prod.h copy deps: update V8 gtest to 6f8a66431cb592dad629028a50b3dd418a408c87 PR-URL: https://github.com/nodejs/node/pull/8317 Reviewed-By: Ben Noordhuis Reviewed-By: Ali Ijaz Sheikh --- deps/v8/.gitignore | 27 +- deps/v8/.gn | 51 + deps/v8/AUTHORS | 8 +- deps/v8/BUILD.gn | 1015 ++- deps/v8/ChangeLog | 4959 +++++++++-- deps/v8/DEPS | 67 +- .../fdlibm/LICENSE => LICENSE.fdlibm} | 0 deps/v8/Makefile | 98 +- deps/v8/Makefile.android | 6 +- deps/v8/Makefile.nacl | 97 - deps/v8/OWNERS | 4 + deps/v8/PRESUBMIT.py | 19 +- deps/v8/WATCHLISTS | 8 +- .../trace_event/common/trace_event_common.h | 34 +- deps/v8/build/has_valgrind.py | 21 - deps/v8/build_overrides/build.gni | 18 + deps/v8/build_overrides/gtest.gni | 15 + deps/v8/build_overrides/v8.gni | 26 + deps/v8/gni/isolate.gni | 175 + deps/v8/gni/v8.gni | 108 + deps/v8/{build => gypfiles}/OWNERS | 0 deps/v8/{build => gypfiles}/README.txt | 0 deps/v8/{build => gypfiles}/all.gyp | 14 +- .../config/win/msvs_dependencies.isolate | 0 .../{build => gypfiles}/coverage_wrapper.py | 0 .../detect_v8_host_arch.py | 0 .../download_gold_plugin.py | 0 deps/v8/{build => gypfiles}/features.gypi | 0 deps/v8/{build => gypfiles}/get_landmines.py | 1 + .../v8/{build => gypfiles}/gyp_environment.py | 6 + deps/v8/{build => gypfiles}/gyp_v8 | 8 +- deps/v8/{build => gypfiles}/gyp_v8.py | 0 deps/v8/{build => gypfiles}/isolate.gypi | 6 +- deps/v8/{build => gypfiles}/landmine_utils.py | 0 deps/v8/{build => gypfiles}/landmines.py | 2 +- deps/v8/{build => gypfiles}/mac/asan.gyp | 0 deps/v8/gypfiles/set_clang_warning_flags.gypi | 59 + deps/v8/{build => gypfiles}/shim_headers.gypi | 0 deps/v8/{build => gypfiles}/standalone.gypi | 250 +- deps/v8/{build => gypfiles}/toolchain.gypi | 99 +- deps/v8/{build => gypfiles}/vs_toolchain.py | 235 +- deps/v8/include/libplatform/DEPS | 5 + deps/v8/include/libplatform/libplatform.h | 9 + deps/v8/include/libplatform/v8-tracing.h | 253 + deps/v8/include/v8-debug.h | 27 +- deps/v8/include/v8-experimental.h | 4 + deps/v8/include/v8-platform.h | 6 +- deps/v8/include/v8-profiler.h | 99 +- deps/v8/include/v8-util.h | 25 +- deps/v8/include/v8-version.h | 6 +- deps/v8/include/v8.h | 887 +- deps/v8/include/v8config.h | 4 - deps/v8/infra/config/cq.cfg | 58 +- deps/v8/infra/mb/PRESUBMIT.py | 35 + deps/v8/infra/mb/mb_config.pyl | 670 ++ deps/v8/samples/hello-world.cc | 18 +- deps/v8/samples/process.cc | 17 +- deps/v8/samples/samples.gyp | 14 +- deps/v8/samples/shell.cc | 18 +- deps/v8/snapshot_toolchain.gni | 81 +- deps/v8/src/DEPS | 8 +- deps/v8/src/accessors.cc | 420 +- deps/v8/src/accessors.h | 23 +- deps/v8/src/address-map.cc | 4 +- deps/v8/src/address-map.h | 181 +- deps/v8/src/allocation-site-scopes.cc | 3 + deps/v8/src/allocation-site-scopes.h | 2 - deps/v8/src/allocation.cc | 11 - deps/v8/src/allocation.h | 6 +- deps/v8/src/api-arguments-inl.h | 116 + deps/v8/src/api-arguments.cc | 12 +- deps/v8/src/api-arguments.h | 105 +- deps/v8/src/api-experimental.cc | 10 + deps/v8/src/api-natives.cc | 559 +- deps/v8/src/api-natives.h | 4 + deps/v8/src/api.cc | 2122 ++--- deps/v8/src/api.h | 96 +- deps/v8/src/arguments.h | 42 +- deps/v8/src/arm/assembler-arm-inl.h | 37 +- deps/v8/src/arm/assembler-arm.cc | 326 +- deps/v8/src/arm/assembler-arm.h | 89 +- deps/v8/src/arm/code-stubs-arm.cc | 795 +- deps/v8/src/arm/codegen-arm.cc | 165 +- deps/v8/src/arm/codegen-arm.h | 17 - deps/v8/src/arm/deoptimizer-arm.cc | 61 +- deps/v8/src/arm/disasm-arm.cc | 106 +- deps/v8/src/arm/eh-frame-arm.cc | 64 + deps/v8/src/arm/interface-descriptors-arm.cc | 110 +- deps/v8/src/arm/macro-assembler-arm.cc | 433 +- deps/v8/src/arm/macro-assembler-arm.h | 62 +- deps/v8/src/arm/simulator-arm.cc | 300 +- deps/v8/src/arm/simulator-arm.h | 16 +- deps/v8/src/arm64/assembler-arm64-inl.h | 37 +- deps/v8/src/arm64/assembler-arm64.cc | 161 +- deps/v8/src/arm64/assembler-arm64.h | 65 +- deps/v8/src/arm64/code-stubs-arm64.cc | 812 +- deps/v8/src/arm64/codegen-arm64.cc | 206 +- deps/v8/src/arm64/codegen-arm64.h | 17 - deps/v8/src/arm64/constants-arm64.h | 189 +- deps/v8/src/arm64/cpu-arm64.cc | 18 +- deps/v8/src/arm64/decoder-arm64-inl.h | 11 +- deps/v8/src/arm64/decoder-arm64.h | 87 +- deps/v8/src/arm64/deoptimizer-arm64.cc | 3 +- deps/v8/src/arm64/disasm-arm64.cc | 36 +- deps/v8/src/arm64/eh-frame-arm64.cc | 69 + deps/v8/src/arm64/instrument-arm64.cc | 25 + .../src/arm64/interface-descriptors-arm64.cc | 111 +- deps/v8/src/arm64/macro-assembler-arm64-inl.h | 16 + deps/v8/src/arm64/macro-assembler-arm64.cc | 267 +- deps/v8/src/arm64/macro-assembler-arm64.h | 76 +- deps/v8/src/arm64/simulator-arm64.cc | 102 +- deps/v8/src/arm64/simulator-arm64.h | 15 +- deps/v8/src/asmjs/OWNERS | 10 + deps/v8/src/asmjs/asm-js.cc | 275 + deps/v8/src/asmjs/asm-js.h | 33 + deps/v8/src/asmjs/asm-typer.cc | 2773 ++++++ deps/v8/src/asmjs/asm-typer.h | 337 + deps/v8/src/asmjs/asm-types.cc | 354 + deps/v8/src/asmjs/asm-types.h | 347 + .../src/{wasm => asmjs}/asm-wasm-builder.cc | 1135 ++- .../v8/src/{wasm => asmjs}/asm-wasm-builder.h | 11 +- deps/v8/src/assembler.cc | 633 +- deps/v8/src/assembler.h | 249 +- deps/v8/src/ast/OWNERS | 2 +- deps/v8/src/ast/ast-expression-rewriter.cc | 14 - deps/v8/src/ast/ast-expression-rewriter.h | 18 +- deps/v8/src/ast/ast-expression-visitor.cc | 411 - deps/v8/src/ast/ast-expression-visitor.h | 48 - deps/v8/src/ast/ast-literal-reindexer.cc | 15 +- deps/v8/src/ast/ast-literal-reindexer.h | 13 +- deps/v8/src/ast/ast-numbering.cc | 118 +- deps/v8/src/ast/ast-numbering.h | 20 +- deps/v8/src/ast/ast-traversal-visitor.h | 504 ++ deps/v8/src/ast/ast-type-bounds.h | 40 + deps/v8/src/ast/ast-value-factory.cc | 123 +- deps/v8/src/ast/ast-value-factory.h | 156 +- deps/v8/src/ast/ast.cc | 327 +- deps/v8/src/ast/ast.h | 1724 ++-- deps/v8/src/ast/context-slot-cache.cc | 91 + deps/v8/src/ast/context-slot-cache.h | 113 + deps/v8/src/ast/modules.cc | 154 +- deps/v8/src/ast/modules.h | 173 +- deps/v8/src/ast/prettyprinter.cc | 769 +- deps/v8/src/ast/prettyprinter.h | 89 +- deps/v8/src/ast/scopeinfo.cc | 154 +- deps/v8/src/ast/scopeinfo.h | 157 - deps/v8/src/ast/scopes.cc | 1482 ++-- deps/v8/src/ast/scopes.h | 898 +- deps/v8/src/ast/variables.cc | 11 +- deps/v8/src/ast/variables.h | 43 +- deps/v8/src/background-parsing-task.cc | 48 +- deps/v8/src/background-parsing-task.h | 17 +- deps/v8/src/bailout-reason.h | 37 +- deps/v8/src/base.isolate | 32 +- deps/v8/src/base/accounting-allocator.cc | 13 +- deps/v8/src/base/accounting-allocator.h | 10 +- deps/v8/src/{ => base}/atomic-utils.h | 17 +- deps/v8/src/base/atomicops.h | 8 +- .../src/base/atomicops_internals_mips64_gcc.h | 50 +- .../src/base/atomicops_internals_portable.h | 138 - deps/v8/src/base/bits.cc | 46 + deps/v8/src/base/bits.h | 38 +- deps/v8/src/base/build_config.h | 15 - deps/v8/src/base/compiler-specific.h | 11 + deps/v8/src/base/cpu.cc | 20 +- deps/v8/src/base/cpu.h | 4 + deps/v8/src/base/debug/stack_trace.cc | 40 + deps/v8/src/base/debug/stack_trace.h | 96 + deps/v8/src/base/debug/stack_trace_android.cc | 91 + deps/v8/src/base/debug/stack_trace_posix.cc | 460 + deps/v8/src/base/debug/stack_trace_win.cc | 248 + deps/v8/src/base/file-utils.cc | 36 + deps/v8/src/base/file-utils.h | 18 + deps/v8/src/base/format-macros.h | 97 + deps/v8/src/base/free_deleter.h | 28 + deps/v8/src/{ => base}/hashmap.h | 103 +- deps/v8/src/base/ieee754.cc | 2746 ++++++ deps/v8/src/base/ieee754.h | 80 + deps/v8/src/base/logging.cc | 74 +- deps/v8/src/base/logging.h | 8 +- deps/v8/src/base/macros.h | 91 +- .../src/base/platform/condition-variable.cc | 13 + deps/v8/src/base/platform/platform-aix.cc | 18 +- deps/v8/src/base/platform/platform-cygwin.cc | 6 +- deps/v8/src/base/platform/platform-freebsd.cc | 10 +- deps/v8/src/base/platform/platform-linux.cc | 48 +- deps/v8/src/base/platform/platform-macos.cc | 16 +- deps/v8/src/base/platform/platform-openbsd.cc | 10 +- deps/v8/src/base/platform/platform-posix.cc | 27 +- deps/v8/src/base/platform/platform-qnx.cc | 6 +- deps/v8/src/base/platform/platform-solaris.cc | 7 +- deps/v8/src/base/platform/platform-win32.cc | 7 +- deps/v8/src/base/platform/platform.h | 59 +- deps/v8/src/base/platform/semaphore.cc | 22 +- deps/v8/src/base/platform/semaphore.h | 11 +- deps/v8/src/base/platform/time.cc | 228 +- deps/v8/src/base/platform/time.h | 318 +- deps/v8/src/base/smart-pointers.h | 124 - deps/v8/src/base/sys-info.cc | 5 +- .../src/base/utils/random-number-generator.cc | 4 +- deps/v8/src/base/win32-headers.h | 6 +- deps/v8/src/bignum.cc | 7 - deps/v8/src/bootstrapper.cc | 1392 ++- deps/v8/src/bootstrapper.h | 9 +- deps/v8/src/builtins.cc | 4955 ----------- deps/v8/src/builtins.h | 671 -- .../v8/src/{ => builtins}/arm/builtins-arm.cc | 1029 ++- .../{ => builtins}/arm64/builtins-arm64.cc | 1122 ++- deps/v8/src/builtins/builtins-api.cc | 291 + deps/v8/src/builtins/builtins-array.cc | 2119 +++++ deps/v8/src/builtins/builtins-arraybuffer.cc | 88 + deps/v8/src/builtins/builtins-boolean.cc | 62 + deps/v8/src/builtins/builtins-call.cc | 151 + deps/v8/src/builtins/builtins-callsite.cc | 203 + deps/v8/src/builtins/builtins-conversion.cc | 357 + deps/v8/src/builtins/builtins-dataview.cc | 133 + deps/v8/src/builtins/builtins-date.cc | 1002 +++ deps/v8/src/builtins/builtins-debug.cc | 27 + deps/v8/src/builtins/builtins-error.cc | 135 + deps/v8/src/builtins/builtins-function.cc | 297 + deps/v8/src/builtins/builtins-generator.cc | 116 + deps/v8/src/builtins/builtins-global.cc | 103 + deps/v8/src/builtins/builtins-handler.cc | 148 + deps/v8/src/builtins/builtins-internal.cc | 145 + deps/v8/src/builtins/builtins-interpreter.cc | 54 + deps/v8/src/builtins/builtins-json.cc | 41 + deps/v8/src/builtins/builtins-math.cc | 561 ++ deps/v8/src/builtins/builtins-number.cc | 235 + deps/v8/src/builtins/builtins-object.cc | 914 ++ deps/v8/src/builtins/builtins-proxy.cc | 30 + deps/v8/src/builtins/builtins-reflect.cc | 274 + .../builtins/builtins-sharedarraybuffer.cc | 266 + deps/v8/src/builtins/builtins-string.cc | 526 ++ deps/v8/src/builtins/builtins-symbol.cc | 76 + deps/v8/src/builtins/builtins-typedarray.cc | 101 + deps/v8/src/builtins/builtins-utils.h | 137 + deps/v8/src/builtins/builtins.cc | 296 + deps/v8/src/builtins/builtins.h | 677 ++ .../src/{ => builtins}/ia32/builtins-ia32.cc | 1051 ++- deps/v8/src/builtins/mips/OWNERS | 6 + .../src/{ => builtins}/mips/builtins-mips.cc | 1074 ++- deps/v8/src/builtins/mips64/OWNERS | 6 + .../{ => builtins}/mips64/builtins-mips64.cc | 1059 ++- deps/v8/src/builtins/ppc/OWNERS | 6 + .../v8/src/{ => builtins}/ppc/builtins-ppc.cc | 1012 ++- deps/v8/src/builtins/s390/OWNERS | 6 + .../src/{ => builtins}/s390/builtins-s390.cc | 959 +- .../v8/src/{ => builtins}/x64/builtins-x64.cc | 997 ++- deps/v8/src/builtins/x87/OWNERS | 1 + .../v8/src/{ => builtins}/x87/builtins-x87.cc | 1049 ++- deps/v8/src/cancelable-task.cc | 63 +- deps/v8/src/cancelable-task.h | 11 +- deps/v8/src/code-events.h | 183 + deps/v8/src/code-factory.cc | 412 +- deps/v8/src/code-factory.h | 67 +- deps/v8/src/code-stub-assembler.cc | 4023 +++++++++ deps/v8/src/code-stub-assembler.h | 609 ++ deps/v8/src/code-stubs-hydrogen.cc | 1352 +-- deps/v8/src/code-stubs.cc | 3797 ++++++-- deps/v8/src/code-stubs.h | 1404 +-- deps/v8/src/codegen.cc | 60 +- deps/v8/src/codegen.h | 9 +- deps/v8/src/compilation-cache.cc | 12 +- deps/v8/src/compilation-cache.h | 2 +- deps/v8/src/compilation-statistics.cc | 60 +- deps/v8/src/compilation-statistics.h | 10 +- .../compiler-dispatcher-job.cc | 185 + .../compiler-dispatcher-job.h | 85 + .../optimizing-compile-dispatcher.cc | 64 +- .../optimizing-compile-dispatcher.h | 21 +- deps/v8/src/compiler.cc | 1717 ++-- deps/v8/src/compiler.h | 296 +- deps/v8/src/compiler/OWNERS | 1 + deps/v8/src/compiler/access-builder.cc | 540 +- deps/v8/src/compiler/access-builder.h | 83 +- deps/v8/src/compiler/access-info.cc | 287 +- deps/v8/src/compiler/access-info.h | 62 +- deps/v8/src/compiler/all-nodes.cc | 38 +- deps/v8/src/compiler/all-nodes.h | 18 +- .../v8/src/compiler/arm/code-generator-arm.cc | 900 +- .../src/compiler/arm/instruction-codes-arm.h | 9 + .../compiler/arm/instruction-scheduler-arm.cc | 9 + .../compiler/arm/instruction-selector-arm.cc | 609 +- .../compiler/arm/unwinding-info-writer-arm.cc | 108 + .../compiler/arm/unwinding-info-writer-arm.h | 72 + .../compiler/arm64/code-generator-arm64.cc | 539 +- .../compiler/arm64/instruction-codes-arm64.h | 11 +- .../arm64/instruction-scheduler-arm64.cc | 171 +- .../arm64/instruction-selector-arm64.cc | 819 +- .../arm64/unwinding-info-writer-arm64.cc | 109 + .../arm64/unwinding-info-writer-arm64.h | 72 + deps/v8/src/compiler/ast-graph-builder.cc | 1018 ++- deps/v8/src/compiler/ast-graph-builder.h | 48 +- .../compiler/ast-loop-assignment-analyzer.cc | 13 +- .../compiler/ast-loop-assignment-analyzer.h | 12 +- deps/v8/src/compiler/branch-elimination.cc | 26 +- .../v8/src/compiler/bytecode-graph-builder.cc | 518 +- deps/v8/src/compiler/bytecode-graph-builder.h | 41 +- .../v8/src/compiler/bytecode-loop-analysis.cc | 100 + deps/v8/src/compiler/bytecode-loop-analysis.h | 67 + deps/v8/src/compiler/c-linkage.cc | 26 +- deps/v8/src/compiler/change-lowering.cc | 713 -- deps/v8/src/compiler/change-lowering.h | 84 - .../v8/src/compiler/checkpoint-elimination.cc | 53 + deps/v8/src/compiler/checkpoint-elimination.h | 30 + deps/v8/src/compiler/coalesced-live-ranges.cc | 143 - deps/v8/src/compiler/coalesced-live-ranges.h | 158 - deps/v8/src/compiler/code-assembler.cc | 1081 +++ deps/v8/src/compiler/code-assembler.h | 487 ++ deps/v8/src/compiler/code-generator-impl.h | 36 +- deps/v8/src/compiler/code-generator.cc | 280 +- deps/v8/src/compiler/code-generator.h | 103 +- deps/v8/src/compiler/code-stub-assembler.cc | 1353 --- deps/v8/src/compiler/code-stub-assembler.h | 475 - deps/v8/src/compiler/common-node-cache.cc | 4 +- deps/v8/src/compiler/common-node-cache.h | 12 + .../src/compiler/common-operator-reducer.cc | 87 +- .../v8/src/compiler/common-operator-reducer.h | 1 - deps/v8/src/compiler/common-operator.cc | 437 +- deps/v8/src/compiler/common-operator.h | 100 +- deps/v8/src/compiler/control-builders.cc | 12 + deps/v8/src/compiler/control-builders.h | 8 +- .../v8/src/compiler/control-flow-optimizer.cc | 136 - deps/v8/src/compiler/dead-code-elimination.cc | 26 + deps/v8/src/compiler/dead-code-elimination.h | 3 + .../src/compiler/effect-control-linearizer.cc | 3295 +++++++ .../src/compiler/effect-control-linearizer.h | 203 + .../src/compiler/escape-analysis-reducer.cc | 49 +- .../v8/src/compiler/escape-analysis-reducer.h | 17 +- deps/v8/src/compiler/escape-analysis.cc | 332 +- deps/v8/src/compiler/escape-analysis.h | 124 +- deps/v8/src/compiler/frame-states.cc | 6 + deps/v8/src/compiler/frame-states.h | 4 +- deps/v8/src/compiler/frame.cc | 4 +- deps/v8/src/compiler/frame.h | 41 +- deps/v8/src/compiler/gap-resolver.cc | 5 +- deps/v8/src/compiler/graph-reducer.cc | 10 +- deps/v8/src/compiler/graph-reducer.h | 3 +- deps/v8/src/compiler/graph-replay.cc | 4 +- deps/v8/src/compiler/graph-trimmer.cc | 2 +- deps/v8/src/compiler/graph-visualizer.cc | 133 +- deps/v8/src/compiler/graph-visualizer.h | 6 +- deps/v8/src/compiler/graph.h | 23 +- deps/v8/src/compiler/greedy-allocator.cc | 629 -- deps/v8/src/compiler/greedy-allocator.h | 199 - .../src/compiler/ia32/code-generator-ia32.cc | 649 +- .../compiler/ia32/instruction-codes-ia32.h | 14 +- .../ia32/instruction-scheduler-ia32.cc | 14 +- .../ia32/instruction-selector-ia32.cc | 307 +- deps/v8/src/compiler/instruction-codes.h | 39 +- deps/v8/src/compiler/instruction-scheduler.cc | 109 +- deps/v8/src/compiler/instruction-scheduler.h | 21 +- .../src/compiler/instruction-selector-impl.h | 118 +- deps/v8/src/compiler/instruction-selector.cc | 447 +- deps/v8/src/compiler/instruction-selector.h | 46 +- deps/v8/src/compiler/instruction.cc | 202 +- deps/v8/src/compiler/instruction.h | 190 +- deps/v8/src/compiler/int64-lowering.cc | 198 +- deps/v8/src/compiler/int64-lowering.h | 7 + deps/v8/src/compiler/js-builtin-reducer.cc | 983 ++- deps/v8/src/compiler/js-builtin-reducer.h | 64 +- deps/v8/src/compiler/js-call-reducer.cc | 59 +- deps/v8/src/compiler/js-call-reducer.h | 3 +- .../src/compiler/js-context-specialization.cc | 2 +- deps/v8/src/compiler/js-create-lowering.cc | 230 +- deps/v8/src/compiler/js-create-lowering.h | 3 + deps/v8/src/compiler/js-generic-lowering.cc | 370 +- deps/v8/src/compiler/js-generic-lowering.h | 5 +- .../js-global-object-specialization.cc | 43 +- deps/v8/src/compiler/js-graph.cc | 122 +- deps/v8/src/compiler/js-graph.h | 39 +- deps/v8/src/compiler/js-inlining-heuristic.cc | 17 +- deps/v8/src/compiler/js-inlining.cc | 277 +- deps/v8/src/compiler/js-inlining.h | 10 +- deps/v8/src/compiler/js-intrinsic-lowering.cc | 198 +- deps/v8/src/compiler/js-intrinsic-lowering.h | 13 +- .../js-native-context-specialization.cc | 1801 ++-- .../js-native-context-specialization.h | 83 +- deps/v8/src/compiler/js-operator.cc | 362 +- deps/v8/src/compiler/js-operator.h | 51 +- deps/v8/src/compiler/js-typed-lowering.cc | 1596 ++-- deps/v8/src/compiler/js-typed-lowering.h | 21 +- deps/v8/src/compiler/linkage.cc | 305 +- deps/v8/src/compiler/linkage.h | 120 +- deps/v8/src/compiler/load-elimination.cc | 736 +- deps/v8/src/compiler/load-elimination.h | 171 +- deps/v8/src/compiler/loop-analysis.cc | 121 +- deps/v8/src/compiler/loop-analysis.h | 21 +- deps/v8/src/compiler/loop-peeling.cc | 223 +- deps/v8/src/compiler/loop-peeling.h | 5 + .../src/compiler/loop-variable-optimizer.cc | 406 + .../v8/src/compiler/loop-variable-optimizer.h | 117 + .../src/compiler/machine-operator-reducer.cc | 436 +- .../src/compiler/machine-operator-reducer.h | 14 +- deps/v8/src/compiler/machine-operator.cc | 745 +- deps/v8/src/compiler/machine-operator.h | 453 +- deps/v8/src/compiler/memory-optimizer.cc | 503 ++ deps/v8/src/compiler/memory-optimizer.h | 149 + .../src/compiler/mips/code-generator-mips.cc | 603 +- .../compiler/mips/instruction-codes-mips.h | 24 +- .../mips/instruction-selector-mips.cc | 445 +- .../compiler/mips64/code-generator-mips64.cc | 562 +- .../mips64/instruction-codes-mips64.h | 29 +- .../mips64/instruction-selector-mips64.cc | 502 +- deps/v8/src/compiler/move-optimizer.cc | 20 +- deps/v8/src/compiler/node-cache.cc | 3 + deps/v8/src/compiler/node-cache.h | 8 + deps/v8/src/compiler/node-marker.h | 19 +- deps/v8/src/compiler/node-matchers.h | 197 +- deps/v8/src/compiler/node-properties.cc | 41 +- deps/v8/src/compiler/node-properties.h | 12 +- deps/v8/src/compiler/node.cc | 22 +- deps/v8/src/compiler/node.h | 1 + deps/v8/src/compiler/opcodes.h | 518 +- deps/v8/src/compiler/operation-typer.cc | 968 +++ deps/v8/src/compiler/operation-typer.h | 92 + deps/v8/src/compiler/operator-properties.cc | 87 +- deps/v8/src/compiler/operator-properties.h | 7 +- deps/v8/src/compiler/operator.cc | 16 +- deps/v8/src/compiler/operator.h | 57 +- deps/v8/src/compiler/osr.cc | 20 +- deps/v8/src/compiler/pipeline-statistics.cc | 12 +- deps/v8/src/compiler/pipeline-statistics.h | 13 +- deps/v8/src/compiler/pipeline.cc | 1155 ++- deps/v8/src/compiler/pipeline.h | 41 +- deps/v8/src/compiler/ppc/OWNERS | 1 + .../v8/src/compiler/ppc/code-generator-ppc.cc | 667 +- .../src/compiler/ppc/instruction-codes-ppc.h | 3 + .../compiler/ppc/instruction-scheduler-ppc.cc | 3 + .../compiler/ppc/instruction-selector-ppc.cc | 240 +- deps/v8/src/compiler/raw-machine-assembler.cc | 74 +- deps/v8/src/compiler/raw-machine-assembler.h | 140 +- .../v8/src/compiler/redundancy-elimination.cc | 239 + deps/v8/src/compiler/redundancy-elimination.h | 77 + .../compiler/register-allocator-verifier.cc | 765 +- .../compiler/register-allocator-verifier.h | 195 +- deps/v8/src/compiler/register-allocator.cc | 425 +- deps/v8/src/compiler/register-allocator.h | 65 +- deps/v8/src/compiler/representation-change.cc | 443 +- deps/v8/src/compiler/representation-change.h | 141 +- deps/v8/src/compiler/s390/OWNERS | 1 + .../src/compiler/s390/code-generator-s390.cc | 1061 ++- .../compiler/s390/instruction-codes-s390.h | 46 +- .../s390/instruction-scheduler-s390.cc | 40 +- .../s390/instruction-selector-s390.cc | 664 +- deps/v8/src/compiler/schedule.cc | 111 +- deps/v8/src/compiler/schedule.h | 6 +- deps/v8/src/compiler/scheduler.cc | 8 + deps/v8/src/compiler/simplified-lowering.cc | 2751 ++++-- deps/v8/src/compiler/simplified-lowering.h | 25 +- .../compiler/simplified-operator-reducer.cc | 151 +- .../compiler/simplified-operator-reducer.h | 12 +- deps/v8/src/compiler/simplified-operator.cc | 645 +- deps/v8/src/compiler/simplified-operator.h | 201 +- deps/v8/src/compiler/source-position.cc | 7 +- deps/v8/src/compiler/source-position.h | 11 +- .../src/compiler/store-store-elimination.cc | 570 ++ .../v8/src/compiler/store-store-elimination.h | 25 + .../v8/src/compiler/tail-call-optimization.cc | 4 +- deps/v8/src/compiler/type-hint-analyzer.cc | 86 +- deps/v8/src/compiler/type-hint-analyzer.h | 14 +- deps/v8/src/compiler/type-hints.cc | 38 +- deps/v8/src/compiler/type-hints.h | 61 +- deps/v8/src/compiler/typer.cc | 1251 ++- deps/v8/src/compiler/typer.h | 31 +- deps/v8/src/compiler/unwinding-info-writer.h | 55 + .../src/compiler/value-numbering-reducer.cc | 34 +- .../v8/src/compiler/value-numbering-reducer.h | 8 +- deps/v8/src/compiler/verifier.cc | 439 +- deps/v8/src/compiler/verifier.h | 4 +- deps/v8/src/compiler/wasm-compiler.cc | 2540 +++--- deps/v8/src/compiler/wasm-compiler.h | 230 +- deps/v8/src/compiler/wasm-linkage.cc | 166 +- .../v8/src/compiler/x64/code-generator-x64.cc | 787 +- .../src/compiler/x64/instruction-codes-x64.h | 18 +- .../compiler/x64/instruction-scheduler-x64.cc | 18 +- .../compiler/x64/instruction-selector-x64.cc | 456 +- .../compiler/x64/unwinding-info-writer-x64.cc | 102 + .../compiler/x64/unwinding-info-writer-x64.h | 79 + .../v8/src/compiler/x87/code-generator-x87.cc | 776 +- .../src/compiler/x87/instruction-codes-x87.h | 12 +- .../compiler/x87/instruction-selector-x87.cc | 272 +- deps/v8/src/context-measure.cc | 6 +- deps/v8/src/context-measure.h | 2 +- deps/v8/src/contexts-inl.h | 7 +- deps/v8/src/contexts.cc | 115 +- deps/v8/src/contexts.h | 228 +- deps/v8/src/conversions-inl.h | 17 +- deps/v8/src/conversions.h | 17 +- deps/v8/src/counters-inl.h | 24 + deps/v8/src/counters.cc | 110 +- deps/v8/src/counters.h | 435 +- deps/v8/src/crankshaft/arm/lithium-arm.cc | 102 +- deps/v8/src/crankshaft/arm/lithium-arm.h | 110 +- .../src/crankshaft/arm/lithium-codegen-arm.cc | 452 +- .../src/crankshaft/arm/lithium-codegen-arm.h | 10 +- deps/v8/src/crankshaft/arm64/lithium-arm64.cc | 104 +- deps/v8/src/crankshaft/arm64/lithium-arm64.h | 106 +- .../crankshaft/arm64/lithium-codegen-arm64.cc | 470 +- .../crankshaft/arm64/lithium-codegen-arm64.h | 32 +- .../arm64/lithium-gap-resolver-arm64.h | 6 +- deps/v8/src/crankshaft/hydrogen-gvn.cc | 9 +- deps/v8/src/crankshaft/hydrogen-gvn.h | 1 - .../src/crankshaft/hydrogen-instructions.cc | 262 +- .../v8/src/crankshaft/hydrogen-instructions.h | 372 +- deps/v8/src/crankshaft/hydrogen-osr.h | 3 +- .../src/crankshaft/hydrogen-range-analysis.h | 3 +- deps/v8/src/crankshaft/hydrogen-types.cc | 22 +- deps/v8/src/crankshaft/hydrogen.cc | 1646 ++-- deps/v8/src/crankshaft/hydrogen.h | 219 +- .../crankshaft/ia32/lithium-codegen-ia32.cc | 515 +- .../crankshaft/ia32/lithium-codegen-ia32.h | 10 +- .../ia32/lithium-gap-resolver-ia32.cc | 9 +- deps/v8/src/crankshaft/ia32/lithium-ia32.cc | 108 +- deps/v8/src/crankshaft/ia32/lithium-ia32.h | 104 +- deps/v8/src/crankshaft/lithium-allocator.cc | 26 +- deps/v8/src/crankshaft/lithium-allocator.h | 3 +- deps/v8/src/crankshaft/lithium-codegen.cc | 23 +- deps/v8/src/crankshaft/lithium-codegen.h | 18 +- deps/v8/src/crankshaft/lithium.cc | 28 +- .../crankshaft/mips/lithium-codegen-mips.cc | 503 +- .../crankshaft/mips/lithium-codegen-mips.h | 16 +- deps/v8/src/crankshaft/mips/lithium-mips.cc | 102 +- deps/v8/src/crankshaft/mips/lithium-mips.h | 109 +- .../mips64/lithium-codegen-mips64.cc | 524 +- .../mips64/lithium-codegen-mips64.h | 16 +- .../src/crankshaft/mips64/lithium-mips64.cc | 102 +- .../v8/src/crankshaft/mips64/lithium-mips64.h | 109 +- deps/v8/src/crankshaft/ppc/OWNERS | 1 + .../src/crankshaft/ppc/lithium-codegen-ppc.cc | 490 +- .../src/crankshaft/ppc/lithium-codegen-ppc.h | 10 +- deps/v8/src/crankshaft/ppc/lithium-ppc.cc | 133 +- deps/v8/src/crankshaft/ppc/lithium-ppc.h | 149 +- deps/v8/src/crankshaft/s390/OWNERS | 1 + .../crankshaft/s390/lithium-codegen-s390.cc | 466 +- .../crankshaft/s390/lithium-codegen-s390.h | 13 +- deps/v8/src/crankshaft/s390/lithium-s390.cc | 105 +- deps/v8/src/crankshaft/s390/lithium-s390.h | 103 +- deps/v8/src/crankshaft/typing.cc | 59 +- deps/v8/src/crankshaft/typing.h | 22 +- .../src/crankshaft/x64/lithium-codegen-x64.cc | 482 +- .../src/crankshaft/x64/lithium-codegen-x64.h | 11 +- .../x64/lithium-gap-resolver-x64.cc | 16 +- deps/v8/src/crankshaft/x64/lithium-x64.cc | 119 +- deps/v8/src/crankshaft/x64/lithium-x64.h | 101 +- .../src/crankshaft/x87/lithium-codegen-x87.cc | 583 +- .../src/crankshaft/x87/lithium-codegen-x87.h | 10 +- .../x87/lithium-gap-resolver-x87.cc | 9 +- deps/v8/src/crankshaft/x87/lithium-x87.cc | 135 +- deps/v8/src/crankshaft/x87/lithium-x87.h | 105 +- deps/v8/src/d8-posix.cc | 28 +- deps/v8/src/d8.cc | 284 +- deps/v8/src/d8.gyp | 14 +- deps/v8/src/d8.h | 25 +- deps/v8/src/dateparser-inl.h | 17 +- deps/v8/src/dateparser.h | 2 +- deps/v8/src/debug/OWNERS | 1 + deps/v8/src/debug/arm/debug-arm.cc | 2 +- deps/v8/src/debug/arm64/debug-arm64.cc | 2 +- deps/v8/src/debug/debug-evaluate.cc | 28 +- deps/v8/src/debug/debug-frames.cc | 107 +- deps/v8/src/debug/debug-frames.h | 21 +- deps/v8/src/debug/debug-scopes.cc | 420 +- deps/v8/src/debug/debug-scopes.h | 37 +- deps/v8/src/debug/debug.cc | 984 +-- deps/v8/src/debug/debug.h | 292 +- deps/v8/src/debug/debug.js | 241 +- deps/v8/src/debug/ia32/debug-ia32.cc | 2 +- deps/v8/src/debug/liveedit.cc | 549 +- deps/v8/src/debug/liveedit.h | 62 +- deps/v8/src/debug/liveedit.js | 14 +- deps/v8/src/debug/mips/debug-mips.cc | 2 +- deps/v8/src/debug/mips64/debug-mips64.cc | 2 +- deps/v8/src/debug/mirrors.js | 152 +- deps/v8/src/debug/ppc/OWNERS | 1 + deps/v8/src/debug/ppc/debug-ppc.cc | 2 +- deps/v8/src/debug/s390/OWNERS | 1 + deps/v8/src/debug/s390/debug-s390.cc | 2 +- deps/v8/src/debug/x64/debug-x64.cc | 2 +- deps/v8/src/debug/x87/debug-x87.cc | 2 +- deps/v8/src/deoptimize-reason.cc | 38 + deps/v8/src/deoptimize-reason.h | 98 + deps/v8/src/deoptimizer.cc | 319 +- deps/v8/src/deoptimizer.h | 142 +- deps/v8/src/disassembler.cc | 55 +- deps/v8/src/eh-frame.cc | 629 ++ deps/v8/src/eh-frame.h | 297 + deps/v8/src/elements.cc | 1418 ++- deps/v8/src/elements.h | 36 +- deps/v8/src/execution.cc | 86 +- .../ignition-statistics-extension.cc | 37 + .../ignition-statistics-extension.h | 31 + .../v8/src/extensions/statistics-extension.cc | 28 +- deps/v8/src/external-reference-table.cc | 270 +- deps/v8/src/external-reference-table.h | 10 + deps/v8/src/factory.cc | 399 +- deps/v8/src/factory.h | 79 +- deps/v8/src/fast-accessor-assembler.cc | 118 +- deps/v8/src/fast-accessor-assembler.h | 27 +- deps/v8/src/field-index-inl.h | 36 +- deps/v8/src/field-index.h | 7 + deps/v8/src/field-type.cc | 6 +- deps/v8/src/flag-definitions.h | 168 +- deps/v8/src/flags.cc | 4 + deps/v8/src/frames-inl.h | 82 +- deps/v8/src/frames.cc | 375 +- deps/v8/src/frames.h | 244 +- .../src/full-codegen/arm/full-codegen-arm.cc | 833 +- .../full-codegen/arm64/full-codegen-arm64.cc | 826 +- deps/v8/src/full-codegen/full-codegen.cc | 433 +- deps/v8/src/full-codegen/full-codegen.h | 103 +- .../full-codegen/ia32/full-codegen-ia32.cc | 814 +- .../full-codegen/mips/full-codegen-mips.cc | 890 +- .../mips64/full-codegen-mips64.cc | 873 +- deps/v8/src/full-codegen/ppc/OWNERS | 1 + .../src/full-codegen/ppc/full-codegen-ppc.cc | 825 +- deps/v8/src/full-codegen/s390/OWNERS | 1 + .../full-codegen/s390/full-codegen-s390.cc | 823 +- .../src/full-codegen/x64/full-codegen-x64.cc | 813 +- .../src/full-codegen/x87/full-codegen-x87.cc | 814 +- deps/v8/src/futex-emulation.cc | 52 +- deps/v8/src/futex-emulation.h | 23 +- deps/v8/src/gdb-jit.cc | 18 +- deps/v8/src/global-handles.cc | 123 +- deps/v8/src/global-handles.h | 35 +- deps/v8/src/globals.h | 222 +- deps/v8/src/handles.h | 12 +- deps/v8/src/heap-symbols.h | 42 +- deps/v8/src/heap/array-buffer-tracker-inl.h | 68 + deps/v8/src/heap/array-buffer-tracker.cc | 214 +- deps/v8/src/heap/array-buffer-tracker.h | 108 +- deps/v8/src/heap/code-stats.cc | 220 + deps/v8/src/heap/code-stats.h | 42 + deps/v8/src/heap/gc-idle-time-handler.cc | 3 +- deps/v8/src/heap/gc-tracer.cc | 464 +- deps/v8/src/heap/gc-tracer.h | 242 +- deps/v8/src/heap/heap-inl.h | 106 +- deps/v8/src/heap/heap.cc | 1148 +-- deps/v8/src/heap/heap.h | 444 +- deps/v8/src/heap/incremental-marking-job.cc | 8 +- deps/v8/src/heap/incremental-marking.cc | 258 +- deps/v8/src/heap/incremental-marking.h | 41 +- deps/v8/src/heap/mark-compact-inl.h | 94 +- deps/v8/src/heap/mark-compact.cc | 1657 ++-- deps/v8/src/heap/mark-compact.h | 373 +- deps/v8/src/heap/marking.h | 385 + deps/v8/src/heap/object-stats.cc | 540 +- deps/v8/src/heap/object-stats.h | 87 +- deps/v8/src/heap/objects-visiting-inl.h | 77 +- deps/v8/src/heap/objects-visiting.cc | 11 +- deps/v8/src/heap/objects-visiting.h | 41 +- deps/v8/src/heap/page-parallel-job.h | 4 +- deps/v8/src/heap/remembered-set.cc | 34 +- deps/v8/src/heap/remembered-set.h | 292 +- deps/v8/src/heap/scavenger-inl.h | 29 +- deps/v8/src/heap/scavenger.cc | 77 +- deps/v8/src/heap/scavenger.h | 6 +- deps/v8/src/heap/slot-set.h | 56 +- deps/v8/src/heap/spaces-inl.h | 225 +- deps/v8/src/heap/spaces.cc | 1165 +-- deps/v8/src/heap/spaces.h | 1088 ++- deps/v8/src/i18n.cc | 48 +- deps/v8/src/i18n.h | 12 +- deps/v8/src/ia32/assembler-ia32-inl.h | 40 +- deps/v8/src/ia32/assembler-ia32.cc | 133 +- deps/v8/src/ia32/assembler-ia32.h | 49 +- deps/v8/src/ia32/code-stubs-ia32.cc | 840 +- deps/v8/src/ia32/code-stubs-ia32.h | 4 +- deps/v8/src/ia32/codegen-ia32.cc | 109 +- deps/v8/src/ia32/codegen-ia32.h | 14 - deps/v8/src/ia32/deoptimizer-ia32.cc | 4 +- deps/v8/src/ia32/disasm-ia32.cc | 79 +- .../v8/src/ia32/interface-descriptors-ia32.cc | 109 +- deps/v8/src/ia32/macro-assembler-ia32.cc | 240 +- deps/v8/src/ia32/macro-assembler-ia32.h | 64 +- deps/v8/src/ic/access-compiler.cc | 4 +- deps/v8/src/ic/access-compiler.h | 1 - deps/v8/src/ic/arm/access-compiler-arm.cc | 8 +- deps/v8/src/ic/arm/handler-compiler-arm.cc | 163 +- deps/v8/src/ic/arm/ic-arm.cc | 55 +- deps/v8/src/ic/arm/stub-cache-arm.cc | 73 +- deps/v8/src/ic/arm64/access-compiler-arm64.cc | 8 +- .../v8/src/ic/arm64/handler-compiler-arm64.cc | 163 +- deps/v8/src/ic/arm64/ic-arm64.cc | 55 +- deps/v8/src/ic/arm64/stub-cache-arm64.cc | 62 +- deps/v8/src/ic/call-optimization.cc | 17 +- deps/v8/src/ic/handler-compiler.cc | 173 +- deps/v8/src/ic/handler-compiler.h | 32 +- deps/v8/src/ic/handler-configuration.h | 45 + deps/v8/src/ic/ia32/access-compiler-ia32.cc | 8 +- deps/v8/src/ic/ia32/handler-compiler-ia32.cc | 168 +- deps/v8/src/ic/ia32/ic-ia32.cc | 44 +- deps/v8/src/ic/ia32/stub-cache-ia32.cc | 53 +- deps/v8/src/ic/ic-compiler.cc | 199 +- deps/v8/src/ic/ic-compiler.h | 64 +- deps/v8/src/ic/ic-inl.h | 32 +- deps/v8/src/ic/ic-state.cc | 15 +- deps/v8/src/ic/ic-state.h | 41 +- deps/v8/src/ic/ic.cc | 1774 ++-- deps/v8/src/ic/ic.h | 267 +- deps/v8/src/ic/mips/access-compiler-mips.cc | 8 +- deps/v8/src/ic/mips/handler-compiler-mips.cc | 172 +- deps/v8/src/ic/mips/ic-mips.cc | 55 +- deps/v8/src/ic/mips/stub-cache-mips.cc | 65 +- .../src/ic/mips64/access-compiler-mips64.cc | 8 +- .../src/ic/mips64/handler-compiler-mips64.cc | 172 +- deps/v8/src/ic/mips64/ic-mips64.cc | 55 +- deps/v8/src/ic/mips64/stub-cache-mips64.cc | 70 +- deps/v8/src/ic/ppc/OWNERS | 1 + deps/v8/src/ic/ppc/access-compiler-ppc.cc | 8 +- deps/v8/src/ic/ppc/handler-compiler-ppc.cc | 162 +- deps/v8/src/ic/ppc/ic-ppc.cc | 56 +- deps/v8/src/ic/ppc/stub-cache-ppc.cc | 54 +- deps/v8/src/ic/s390/OWNERS | 1 + deps/v8/src/ic/s390/access-compiler-s390.cc | 8 +- deps/v8/src/ic/s390/handler-compiler-s390.cc | 160 +- deps/v8/src/ic/s390/ic-s390.cc | 54 +- deps/v8/src/ic/s390/stub-cache-s390.cc | 50 +- deps/v8/src/ic/stub-cache.cc | 62 +- deps/v8/src/ic/stub-cache.h | 57 +- deps/v8/src/ic/x64/access-compiler-x64.cc | 8 +- deps/v8/src/ic/x64/handler-compiler-x64.cc | 170 +- deps/v8/src/ic/x64/ic-x64.cc | 45 +- deps/v8/src/ic/x64/stub-cache-x64.cc | 47 +- deps/v8/src/ic/x87/access-compiler-x87.cc | 8 +- deps/v8/src/ic/x87/handler-compiler-x87.cc | 168 +- deps/v8/src/ic/x87/ic-x87.cc | 44 +- deps/v8/src/ic/x87/stub-cache-x87.cc | 53 +- deps/v8/src/icu_util.cc | 29 + deps/v8/src/icu_util.h | 5 + deps/v8/src/inspector/BUILD.gn | 101 + deps/v8/src/inspector/inspector.gyp | 113 + deps/v8/src/inspector/js_protocol.json | 1011 +++ deps/v8/src/interface-descriptors.cc | 435 +- deps/v8/src/interface-descriptors.h | 562 +- deps/v8/src/interpreter/OWNERS | 1 + .../src/interpreter/bytecode-array-builder.cc | 1250 +-- .../src/interpreter/bytecode-array-builder.h | 231 +- .../interpreter/bytecode-array-iterator.cc | 59 +- .../src/interpreter/bytecode-array-iterator.h | 5 +- .../src/interpreter/bytecode-array-writer.cc | 392 + .../src/interpreter/bytecode-array-writer.h | 88 + .../bytecode-dead-code-optimizer.cc | 77 + .../bytecode-dead-code-optimizer.h | 41 + deps/v8/src/interpreter/bytecode-decoder.cc | 157 + deps/v8/src/interpreter/bytecode-decoder.h | 43 + deps/v8/src/interpreter/bytecode-flags.cc | 42 + deps/v8/src/interpreter/bytecode-flags.h | 42 + deps/v8/src/interpreter/bytecode-generator.cc | 1198 ++- deps/v8/src/interpreter/bytecode-generator.h | 82 +- deps/v8/src/interpreter/bytecode-label.cc | 34 + deps/v8/src/interpreter/bytecode-label.h | 87 + .../bytecode-peephole-optimizer.cc | 345 + .../interpreter/bytecode-peephole-optimizer.h | 62 + .../src/interpreter/bytecode-peephole-table.h | 72 + deps/v8/src/interpreter/bytecode-pipeline.cc | 134 + deps/v8/src/interpreter/bytecode-pipeline.h | 228 + .../bytecode-register-allocator.cc | 16 +- .../interpreter/bytecode-register-allocator.h | 13 +- .../bytecode-register-optimizer.cc | 627 ++ .../interpreter/bytecode-register-optimizer.h | 155 + deps/v8/src/interpreter/bytecode-register.cc | 149 + deps/v8/src/interpreter/bytecode-register.h | 105 + deps/v8/src/interpreter/bytecode-traits.h | 183 +- deps/v8/src/interpreter/bytecodes.cc | 469 +- deps/v8/src/interpreter/bytecodes.h | 581 +- .../src/interpreter/constant-array-builder.cc | 124 +- .../src/interpreter/constant-array-builder.h | 29 +- .../src/interpreter/control-flow-builders.cc | 128 +- .../src/interpreter/control-flow-builders.h | 104 +- .../src/interpreter/handler-table-builder.cc | 19 +- .../src/interpreter/handler-table-builder.h | 11 +- .../src/interpreter/interpreter-assembler.cc | 653 +- .../src/interpreter/interpreter-assembler.h | 130 +- .../src/interpreter/interpreter-intrinsics.cc | 343 +- .../src/interpreter/interpreter-intrinsics.h | 59 +- deps/v8/src/interpreter/interpreter.cc | 1572 +++- deps/v8/src/interpreter/interpreter.h | 118 +- deps/v8/src/interpreter/mkpeephole.cc | 383 + .../src/interpreter/source-position-table.h | 100 - deps/v8/src/isolate-inl.h | 65 +- deps/v8/src/isolate.cc | 1024 ++- deps/v8/src/isolate.h | 291 +- deps/v8/src/js/array-iterator.js | 21 +- deps/v8/src/js/array.js | 497 +- deps/v8/src/js/arraybuffer.js | 31 +- deps/v8/src/js/collection-iterator.js | 19 +- deps/v8/src/js/collection.js | 64 +- deps/v8/src/js/generator.js | 119 - deps/v8/src/js/harmony-async-await.js | 51 + deps/v8/src/js/harmony-atomics.js | 72 +- deps/v8/src/js/harmony-object-observe.js | 17 - deps/v8/src/js/harmony-regexp-exec.js | 37 - deps/v8/src/js/harmony-sharedarraybuffer.js | 31 - deps/v8/src/js/harmony-simd.js | 50 +- deps/v8/src/js/harmony-species.js | 60 - deps/v8/src/js/harmony-string-padding.js | 8 +- deps/v8/src/js/harmony-unicode-regexps.js | 40 - deps/v8/src/js/i18n.js | 579 +- deps/v8/src/js/icu-case-mapping.js | 24 + deps/v8/src/js/intl-extra.js | 22 + deps/v8/src/js/json.js | 297 - deps/v8/src/js/macros.py | 76 +- deps/v8/src/js/math.js | 176 +- deps/v8/src/js/messages.js | 973 +-- deps/v8/src/js/object-observe.js | 717 -- deps/v8/src/js/prologue.js | 43 +- deps/v8/src/js/promise-extra.js | 26 - deps/v8/src/js/promise.js | 405 +- deps/v8/src/js/regexp.js | 162 +- deps/v8/src/js/runtime.js | 74 +- deps/v8/src/js/spread.js | 7 +- deps/v8/src/js/string-iterator.js | 7 +- deps/v8/src/js/string.js | 168 +- deps/v8/src/js/symbol.js | 69 +- deps/v8/src/js/typedarray.js | 343 +- deps/v8/src/js/uri.js | 379 - deps/v8/src/js/v8natives.js | 834 +- deps/v8/src/js/weak-collection.js | 30 +- deps/v8/src/json-parser.cc | 812 ++ deps/v8/src/json-parser.h | 754 +- deps/v8/src/json-stringifier.cc | 722 ++ deps/v8/src/json-stringifier.h | 620 +- deps/v8/src/keys.cc | 909 +- deps/v8/src/keys.h | 137 +- deps/v8/src/libplatform/default-platform.cc | 39 +- deps/v8/src/libplatform/default-platform.h | 10 +- deps/v8/src/libplatform/task-queue.cc | 12 + deps/v8/src/libplatform/task-queue.h | 7 +- .../src/libplatform/tracing/trace-buffer.cc | 109 + .../v8/src/libplatform/tracing/trace-buffer.h | 48 + .../src/libplatform/tracing/trace-config.cc | 42 + .../src/libplatform/tracing/trace-object.cc | 130 + .../src/libplatform/tracing/trace-writer.cc | 163 + .../v8/src/libplatform/tracing/trace-writer.h | 32 + .../libplatform/tracing/tracing-controller.cc | 177 + deps/v8/src/libsampler/DEPS | 6 + deps/v8/src/libsampler/sampler.cc | 663 ++ deps/v8/src/libsampler/sampler.h | 103 + deps/v8/src/locked-queue-inl.h | 4 +- deps/v8/src/log-inl.h | 34 +- deps/v8/src/log-utils.cc | 6 +- deps/v8/src/log-utils.h | 5 +- deps/v8/src/log.cc | 487 +- deps/v8/src/log.h | 252 +- deps/v8/src/lookup.cc | 218 +- deps/v8/src/lookup.h | 42 +- deps/v8/src/machine-type.cc | 31 +- deps/v8/src/machine-type.h | 42 +- deps/v8/src/macro-assembler.h | 15 +- deps/v8/src/messages.cc | 905 +- deps/v8/src/messages.h | 140 +- deps/v8/src/mips/assembler-mips-inl.h | 46 +- deps/v8/src/mips/assembler-mips.cc | 94 +- deps/v8/src/mips/assembler-mips.h | 60 +- deps/v8/src/mips/code-stubs-mips.cc | 788 +- deps/v8/src/mips/codegen-mips.cc | 173 +- deps/v8/src/mips/codegen-mips.h | 19 - deps/v8/src/mips/constants-mips.h | 21 +- deps/v8/src/mips/deoptimizer-mips.cc | 3 +- deps/v8/src/mips/disasm-mips.cc | 36 +- .../v8/src/mips/interface-descriptors-mips.cc | 105 +- deps/v8/src/mips/macro-assembler-mips.cc | 976 ++- deps/v8/src/mips/macro-assembler-mips.h | 99 +- deps/v8/src/mips/simulator-mips.cc | 199 +- deps/v8/src/mips/simulator-mips.h | 16 +- deps/v8/src/mips64/assembler-mips64-inl.h | 46 +- deps/v8/src/mips64/assembler-mips64.cc | 109 +- deps/v8/src/mips64/assembler-mips64.h | 62 +- deps/v8/src/mips64/code-stubs-mips64.cc | 794 +- deps/v8/src/mips64/codegen-mips64.cc | 151 +- deps/v8/src/mips64/codegen-mips64.h | 19 - deps/v8/src/mips64/constants-mips64.h | 45 +- deps/v8/src/mips64/deoptimizer-mips64.cc | 3 +- deps/v8/src/mips64/disasm-mips64.cc | 83 +- .../mips64/interface-descriptors-mips64.cc | 105 +- deps/v8/src/mips64/macro-assembler-mips64.cc | 792 +- deps/v8/src/mips64/macro-assembler-mips64.h | 83 +- deps/v8/src/mips64/simulator-mips64.cc | 593 +- deps/v8/src/mips64/simulator-mips64.h | 16 +- deps/v8/src/objects-body-descriptors-inl.h | 7 + deps/v8/src/objects-debug.cc | 177 +- deps/v8/src/objects-inl.h | 916 +- deps/v8/src/objects-printer.cc | 355 +- deps/v8/src/objects.cc | 5287 +++++------ deps/v8/src/objects.h | 1845 ++-- deps/v8/src/ostreams.cc | 16 +- deps/v8/src/ostreams.h | 9 + deps/v8/src/parsing/OWNERS | 2 +- deps/v8/src/parsing/expression-classifier.h | 409 +- deps/v8/src/parsing/func-name-inferrer.cc | 5 + deps/v8/src/parsing/func-name-inferrer.h | 4 + .../parsing/parameter-initializer-rewriter.cc | 81 +- .../parsing/parameter-initializer-rewriter.h | 19 +- deps/v8/src/parsing/parse-info.cc | 113 + deps/v8/src/parsing/parse-info.h | 245 + deps/v8/src/parsing/parser-base.h | 1961 +++-- deps/v8/src/parsing/parser.cc | 4622 +++++----- deps/v8/src/parsing/parser.h | 769 +- deps/v8/src/parsing/pattern-rewriter.cc | 352 +- deps/v8/src/parsing/preparse-data.cc | 4 +- deps/v8/src/parsing/preparse-data.h | 2 +- deps/v8/src/parsing/preparser.cc | 542 +- deps/v8/src/parsing/preparser.h | 531 +- deps/v8/src/parsing/rewriter.cc | 89 +- deps/v8/src/parsing/rewriter.h | 12 +- .../src/parsing/scanner-character-streams.cc | 253 +- .../src/parsing/scanner-character-streams.h | 57 +- deps/v8/src/parsing/scanner.cc | 183 +- deps/v8/src/parsing/scanner.h | 425 +- deps/v8/src/parsing/token.cc | 10 + deps/v8/src/parsing/token.h | 18 +- deps/v8/src/perf-jit.cc | 75 +- deps/v8/src/perf-jit.h | 4 + deps/v8/src/ppc/OWNERS | 1 + deps/v8/src/ppc/assembler-ppc-inl.h | 37 +- deps/v8/src/ppc/assembler-ppc.cc | 59 +- deps/v8/src/ppc/assembler-ppc.h | 28 +- deps/v8/src/ppc/code-stubs-ppc.cc | 775 +- deps/v8/src/ppc/codegen-ppc.cc | 159 +- deps/v8/src/ppc/codegen-ppc.h | 13 - deps/v8/src/ppc/constants-ppc.h | 3 + deps/v8/src/ppc/deoptimizer-ppc.cc | 3 +- deps/v8/src/ppc/disasm-ppc.cc | 9 +- deps/v8/src/ppc/interface-descriptors-ppc.cc | 108 +- deps/v8/src/ppc/macro-assembler-ppc.cc | 454 +- deps/v8/src/ppc/macro-assembler-ppc.h | 63 +- deps/v8/src/ppc/simulator-ppc.cc | 92 +- deps/v8/src/ppc/simulator-ppc.h | 16 +- deps/v8/src/profiler/allocation-tracker.cc | 25 +- deps/v8/src/profiler/allocation-tracker.h | 7 +- deps/v8/src/profiler/cpu-profiler-inl.h | 13 +- deps/v8/src/profiler/cpu-profiler.cc | 369 +- deps/v8/src/profiler/cpu-profiler.h | 88 +- deps/v8/src/profiler/heap-profiler.cc | 24 +- deps/v8/src/profiler/heap-profiler.h | 22 +- .../src/profiler/heap-snapshot-generator.cc | 338 +- .../v8/src/profiler/heap-snapshot-generator.h | 29 +- deps/v8/src/profiler/profile-generator-inl.h | 4 +- deps/v8/src/profiler/profile-generator.cc | 283 +- deps/v8/src/profiler/profile-generator.h | 160 +- deps/v8/src/profiler/profiler-listener.cc | 335 + deps/v8/src/profiler/profiler-listener.h | 97 + deps/v8/src/profiler/sampler.cc | 898 -- deps/v8/src/profiler/sampler.h | 139 - .../v8/src/profiler/sampling-heap-profiler.cc | 109 +- deps/v8/src/profiler/sampling-heap-profiler.h | 50 +- deps/v8/src/profiler/strings-storage.cc | 22 +- deps/v8/src/profiler/strings-storage.h | 12 +- deps/v8/src/profiler/tick-sample.cc | 272 + deps/v8/src/profiler/tick-sample.h | 27 + deps/v8/src/property-descriptor.cc | 4 +- deps/v8/src/property-details.h | 28 +- deps/v8/src/prototype.h | 21 +- .../regexp/arm/regexp-macro-assembler-arm.cc | 6 - .../regexp/arm/regexp-macro-assembler-arm.h | 1 - .../arm64/regexp-macro-assembler-arm64.cc | 7 - .../arm64/regexp-macro-assembler-arm64.h | 1 - .../ia32/regexp-macro-assembler-ia32.cc | 1 - deps/v8/src/regexp/jsregexp.cc | 54 +- deps/v8/src/regexp/jsregexp.h | 29 +- deps/v8/src/regexp/ppc/OWNERS | 1 + .../regexp/ppc/regexp-macro-assembler-ppc.cc | 45 +- .../regexp/ppc/regexp-macro-assembler-ppc.h | 1 - deps/v8/src/regexp/regexp-ast.h | 20 +- deps/v8/src/regexp/regexp-macro-assembler.cc | 13 +- deps/v8/src/regexp/regexp-macro-assembler.h | 4 +- deps/v8/src/regexp/regexp-parser.cc | 401 +- deps/v8/src/regexp/regexp-parser.h | 38 +- deps/v8/src/regexp/s390/OWNERS | 1 + .../s390/regexp-macro-assembler-s390.cc | 54 +- .../regexp/s390/regexp-macro-assembler-s390.h | 1 - .../regexp/x64/regexp-macro-assembler-x64.cc | 1 - .../regexp/x87/regexp-macro-assembler-x87.cc | 1 - deps/v8/src/register-configuration.cc | 232 +- deps/v8/src/register-configuration.h | 90 +- deps/v8/src/runtime-profiler.cc | 172 +- deps/v8/src/runtime-profiler.h | 21 +- deps/v8/src/runtime/runtime-array.cc | 341 +- deps/v8/src/runtime/runtime-atomics.cc | 172 +- deps/v8/src/runtime/runtime-classes.cc | 68 +- deps/v8/src/runtime/runtime-collections.cc | 56 +- deps/v8/src/runtime/runtime-compiler.cc | 157 +- deps/v8/src/runtime/runtime-debug.cc | 837 +- deps/v8/src/runtime/runtime-error.cc | 24 + deps/v8/src/runtime/runtime-forin.cc | 44 +- deps/v8/src/runtime/runtime-function.cc | 67 +- deps/v8/src/runtime/runtime-futex.cc | 58 +- deps/v8/src/runtime/runtime-generator.cc | 146 +- deps/v8/src/runtime/runtime-i18n.cc | 540 +- deps/v8/src/runtime/runtime-internal.cc | 346 +- deps/v8/src/runtime/runtime-interpreter.cc | 27 +- deps/v8/src/runtime/runtime-json.cc | 58 - deps/v8/src/runtime/runtime-literals.cc | 37 +- deps/v8/src/runtime/runtime-liveedit.cc | 56 +- deps/v8/src/runtime/runtime-maths.cc | 137 - deps/v8/src/runtime/runtime-numbers.cc | 100 +- deps/v8/src/runtime/runtime-object.cc | 489 +- deps/v8/src/runtime/runtime-observe.cc | 160 - deps/v8/src/runtime/runtime-operators.cc | 65 +- deps/v8/src/runtime/runtime-proxy.cc | 26 +- deps/v8/src/runtime/runtime-regexp.cc | 48 +- deps/v8/src/runtime/runtime-scopes.cc | 557 +- deps/v8/src/runtime/runtime-simd.cc | 166 +- deps/v8/src/runtime/runtime-strings.cc | 234 +- deps/v8/src/runtime/runtime-symbol.cc | 8 +- deps/v8/src/runtime/runtime-test.cc | 357 +- deps/v8/src/runtime/runtime-typedarray.cc | 96 +- deps/v8/src/runtime/runtime-uri.cc | 293 - deps/v8/src/runtime/runtime-utils.h | 115 +- deps/v8/src/runtime/runtime-wasm.cc | 120 + deps/v8/src/runtime/runtime.h | 461 +- deps/v8/src/s390/OWNERS | 1 + deps/v8/src/s390/assembler-s390-inl.h | 36 +- deps/v8/src/s390/assembler-s390.cc | 104 +- deps/v8/src/s390/assembler-s390.h | 48 +- deps/v8/src/s390/code-stubs-s390.cc | 765 +- deps/v8/src/s390/codegen-s390.cc | 153 +- deps/v8/src/s390/codegen-s390.h | 14 - deps/v8/src/s390/constants-s390.cc | 261 + deps/v8/src/s390/constants-s390.h | 38 +- deps/v8/src/s390/deoptimizer-s390.cc | 3 +- deps/v8/src/s390/disasm-s390.cc | 70 +- .../v8/src/s390/interface-descriptors-s390.cc | 97 +- deps/v8/src/s390/macro-assembler-s390.cc | 472 +- deps/v8/src/s390/macro-assembler-s390.h | 123 +- deps/v8/src/s390/simulator-s390.cc | 7725 ++++++++++++++++- deps/v8/src/s390/simulator-s390.h | 754 +- deps/v8/src/signature.h | 6 +- deps/v8/src/snapshot/code-serializer.cc | 251 +- deps/v8/src/snapshot/code-serializer.h | 102 +- deps/v8/src/snapshot/deserializer.cc | 74 +- deps/v8/src/snapshot/deserializer.h | 23 +- deps/v8/src/snapshot/mksnapshot.cc | 2 +- deps/v8/src/snapshot/natives-common.cc | 19 - deps/v8/src/snapshot/natives.h | 1 - deps/v8/src/snapshot/partial-serializer.cc | 55 +- deps/v8/src/snapshot/partial-serializer.h | 32 +- deps/v8/src/snapshot/serializer-common.cc | 18 +- deps/v8/src/snapshot/serializer-common.h | 117 +- deps/v8/src/snapshot/serializer.cc | 272 +- deps/v8/src/snapshot/serializer.h | 63 +- deps/v8/src/snapshot/snapshot-common.cc | 253 +- deps/v8/src/snapshot/snapshot-source-sink.h | 2 +- deps/v8/src/snapshot/snapshot.h | 125 +- deps/v8/src/snapshot/startup-serializer.cc | 38 +- deps/v8/src/snapshot/startup-serializer.h | 37 +- .../source-position-table.cc | 151 +- deps/v8/src/source-position-table.h | 90 + deps/v8/src/source-position.h | 5 +- deps/v8/src/startup-data-util.cc | 27 +- deps/v8/src/string-builder.h | 10 + deps/v8/src/string-stream.cc | 26 +- deps/v8/src/string-stream.h | 5 +- deps/v8/src/third_party/fdlibm/README.v8 | 18 - deps/v8/src/third_party/fdlibm/fdlibm.cc | 228 - deps/v8/src/third_party/fdlibm/fdlibm.h | 27 - deps/v8/src/third_party/fdlibm/fdlibm.js | 1117 --- deps/v8/src/third_party/vtune/v8vtune.gyp | 4 +- deps/v8/src/third_party/vtune/vtune-jit.cc | 27 +- deps/v8/src/tracing/trace-event.cc | 121 + deps/v8/src/tracing/trace-event.h | 180 +- deps/v8/src/transitions-inl.h | 3 +- deps/v8/src/type-cache.h | 25 +- deps/v8/src/type-feedback-vector-inl.h | 69 +- deps/v8/src/type-feedback-vector.cc | 286 +- deps/v8/src/type-feedback-vector.h | 176 +- deps/v8/src/type-info.cc | 52 +- deps/v8/src/type-info.h | 15 +- deps/v8/src/types.cc | 22 +- deps/v8/src/types.h | 77 +- deps/v8/src/typing-asm.cc | 1622 ---- deps/v8/src/typing-asm.h | 185 - deps/v8/src/typing-reset.cc | 25 - deps/v8/src/typing-reset.h | 26 - deps/v8/src/unicode-inl.h | 6 + deps/v8/src/unicode.cc | 14 + deps/v8/src/unicode.h | 5 + deps/v8/src/uri.cc | 505 ++ deps/v8/src/uri.h | 54 + deps/v8/src/utils.cc | 7 +- deps/v8/src/utils.h | 116 +- deps/v8/src/v8.cc | 7 +- deps/v8/src/v8.gyp | 2419 ++++++ deps/v8/src/v8memory.h | 7 + deps/v8/src/value-serializer.cc | 967 +++ deps/v8/src/value-serializer.h | 181 + deps/v8/src/vector.h | 7 + deps/v8/src/vm-state-inl.h | 8 - deps/v8/src/vm-state.h | 1 - deps/v8/src/wasm/OWNERS | 6 +- deps/v8/src/wasm/ast-decoder.cc | 2134 ++--- deps/v8/src/wasm/ast-decoder.h | 219 +- deps/v8/src/wasm/decoder.h | 100 +- deps/v8/src/wasm/encoder.cc | 709 +- deps/v8/src/wasm/encoder.h | 215 +- deps/v8/src/wasm/leb-helper.h | 134 + deps/v8/src/wasm/module-decoder.cc | 604 +- deps/v8/src/wasm/module-decoder.h | 7 + deps/v8/src/wasm/switch-logic.cc | 63 + deps/v8/src/wasm/switch-logic.h | 31 + deps/v8/src/wasm/wasm-debug.cc | 234 + deps/v8/src/wasm/wasm-debug.h | 46 + deps/v8/src/wasm/wasm-external-refs.cc | 216 + deps/v8/src/wasm/wasm-external-refs.h | 192 +- deps/v8/src/wasm/wasm-function-name-table.cc | 71 + deps/v8/src/wasm/wasm-function-name-table.h | 33 + deps/v8/src/wasm/wasm-interpreter.cc | 1813 ++++ deps/v8/src/wasm/wasm-interpreter.h | 209 + deps/v8/src/wasm/wasm-js.cc | 361 +- deps/v8/src/wasm/wasm-js.h | 2 +- deps/v8/src/wasm/wasm-macro-gen.h | 476 +- deps/v8/src/wasm/wasm-module.cc | 1810 +++- deps/v8/src/wasm/wasm-module.h | 288 +- deps/v8/src/wasm/wasm-opcodes.cc | 131 +- deps/v8/src/wasm/wasm-opcodes.h | 360 +- deps/v8/src/wasm/wasm-result.cc | 19 +- deps/v8/src/wasm/wasm-result.h | 40 +- deps/v8/src/x64/assembler-x64-inl.h | 48 +- deps/v8/src/x64/assembler-x64.cc | 490 +- deps/v8/src/x64/assembler-x64.h | 186 +- deps/v8/src/x64/code-stubs-x64.cc | 782 +- deps/v8/src/x64/code-stubs-x64.h | 4 +- deps/v8/src/x64/codegen-x64.cc | 94 +- deps/v8/src/x64/codegen-x64.h | 15 - deps/v8/src/x64/deoptimizer-x64.cc | 3 +- deps/v8/src/x64/disasm-x64.cc | 176 +- deps/v8/src/x64/eh-frame-x64.cc | 63 + deps/v8/src/x64/interface-descriptors-x64.cc | 116 +- deps/v8/src/x64/macro-assembler-x64.cc | 328 +- deps/v8/src/x64/macro-assembler-x64.h | 88 +- deps/v8/src/x87/assembler-x87-inl.h | 41 +- deps/v8/src/x87/assembler-x87.cc | 118 +- deps/v8/src/x87/assembler-x87.h | 48 +- deps/v8/src/x87/code-stubs-x87.cc | 717 +- deps/v8/src/x87/code-stubs-x87.h | 4 +- deps/v8/src/x87/codegen-x87.cc | 18 +- deps/v8/src/x87/codegen-x87.h | 1 - deps/v8/src/x87/deoptimizer-x87.cc | 4 +- deps/v8/src/x87/disasm-x87.cc | 91 +- deps/v8/src/x87/interface-descriptors-x87.cc | 109 +- deps/v8/src/x87/macro-assembler-x87.cc | 238 +- deps/v8/src/x87/macro-assembler-x87.h | 61 +- deps/v8/src/zone.h | 5 +- deps/v8/test/BUILD.gn | 194 + deps/v8/test/benchmarks/benchmarks.gyp | 4 +- deps/v8/test/bot_default.gyp | 4 +- deps/v8/test/cctest/BUILD.gn | 173 + deps/v8/test/cctest/OWNERS | 4 - deps/v8/test/cctest/asmjs/OWNERS | 10 + deps/v8/test/cctest/asmjs/test-asm-typer.cc | 2003 +++++ deps/v8/test/cctest/cctest.cc | 2 +- deps/v8/test/cctest/cctest.gyp | 523 +- deps/v8/test/cctest/cctest.status | 372 +- deps/v8/test/cctest/compiler/call-tester.h | 2 + .../cctest/compiler/code-assembler-tester.h | 61 + deps/v8/test/cctest/compiler/codegen-tester.h | 8 +- .../v8/test/cctest/compiler/function-tester.h | 95 +- .../cctest/compiler/graph-builder-tester.h | 16 +- .../cctest/compiler/test-branch-combine.cc | 448 + .../cctest/compiler/test-changes-lowering.cc | 290 - ...ub-assembler.cc => test-code-assembler.cc} | 352 +- .../test/cctest/compiler/test-gap-resolver.cc | 108 +- .../test-js-context-specialization.cc | 87 +- .../cctest/compiler/test-js-typed-lowering.cc | 204 +- deps/v8/test/cctest/compiler/test-linkage.cc | 20 +- .../compiler/test-loop-assignment-analysis.cc | 8 +- .../compiler/test-machine-operator-reducer.cc | 189 +- .../cctest/compiler/test-multiple-return.cc | 18 +- deps/v8/test/cctest/compiler/test-node.cc | 74 + deps/v8/test/cctest/compiler/test-operator.cc | 6 +- deps/v8/test/cctest/compiler/test-osr.cc | 6 +- deps/v8/test/cctest/compiler/test-pipeline.cc | 44 - .../compiler/test-representation-change.cc | 271 +- .../test-run-bytecode-graph-builder.cc | 36 +- .../test-run-calls-to-external-references.cc | 532 +- .../test/cctest/compiler/test-run-inlining.cc | 381 +- .../cctest/compiler/test-run-intrinsics.cc | 81 - .../test/cctest/compiler/test-run-jscalls.cc | 6 +- .../v8/test/cctest/compiler/test-run-jsops.cc | 1 - .../cctest/compiler/test-run-load-store.cc | 1190 +++ .../test/cctest/compiler/test-run-machops.cc | 815 +- .../cctest/compiler/test-run-native-calls.cc | 175 +- .../v8/test/cctest/compiler/test-run-stubs.cc | 2 +- .../compiler/test-run-unwinding-info.cc | 58 + .../cctest/compiler/test-run-wasm-machops.cc | 170 + .../compiler/test-simplified-lowering.cc | 491 +- deps/v8/test/cctest/compiler/value-helper.h | 24 +- .../test/cctest/expression-type-collector.cc | 63 - .../test/cctest/expression-type-collector.h | 39 - deps/v8/test/cctest/heap/heap-tester.h | 1 + .../heap/{utils-inl.h => heap-utils.cc} | 121 +- deps/v8/test/cctest/heap/heap-utils.h | 51 + deps/v8/test/cctest/heap/test-alloc.cc | 15 +- .../cctest/heap/test-array-buffer-tracker.cc | 318 + deps/v8/test/cctest/heap/test-compaction.cc | 76 +- deps/v8/test/cctest/heap/test-heap.cc | 1185 ++- .../cctest/heap/test-incremental-marking.cc | 11 +- deps/v8/test/cctest/heap/test-lab.cc | 4 +- deps/v8/test/cctest/heap/test-mark-compact.cc | 129 +- .../test/cctest/heap/test-page-promotion.cc | 129 + deps/v8/test/cctest/heap/test-spaces.cc | 159 +- .../bytecode-expectations-printer.cc | 81 +- .../bytecode-expectations-printer.h | 11 +- .../ArrayLiterals.golden | 110 +- .../ArrayLiteralsWide.golden | 1030 +-- .../AssignmentsInBinaryExpression.golden | 297 +- .../BasicBlockToBoolean.golden | 88 +- .../bytecode_expectations/BasicLoops.golden | 895 +- .../BreakableBlocks.golden | 250 +- .../bytecode_expectations/CallGlobal.golden | 42 +- .../CallLookupSlot.golden | 68 +- .../bytecode_expectations/CallNew.golden | 55 +- .../bytecode_expectations/CallRuntime.golden | 49 +- .../ClassAndSuperClass.golden | 252 +- .../ClassDeclarations.golden | 308 +- .../CompoundExpressions.golden | 115 +- .../bytecode_expectations/Conditional.golden | 75 +- .../ConstVariable.golden | 99 +- .../ConstVariableContextSlot.golden | 138 +- .../ContextParameters.golden | 72 +- .../ContextVariables.golden | 1143 ++- .../CountOperators.golden | 242 +- .../CreateArguments.golden | 108 +- .../CreateRestParameter.golden | 92 +- .../DeadCodeRemoval.golden | 38 +- .../DeclareGlobals.golden | 119 +- .../bytecode_expectations/Delete.golden | 89 +- .../DeleteLookupSlotInEval.golden | 28 +- .../bytecode_expectations/DoDebugger.golden | 8 +- .../bytecode_expectations/DoExpression.golden | 55 +- .../bytecode_expectations/Eval.golden | 56 +- .../bytecode_expectations/ForIn.golden | 266 +- .../bytecode_expectations/ForOf.golden | 1140 +-- .../FunctionLiterals.golden | 40 +- .../bytecode_expectations/Generators.golden | 604 ++ .../GlobalCompoundExpressions.golden | 28 +- .../GlobalCountOperators.golden | 60 +- .../bytecode_expectations/GlobalDelete.golden | 60 +- .../HeapNumberConstants.golden | 1060 +-- .../bytecode_expectations/IfConditions.golden | 854 +- .../IntegerConstants.golden | 26 +- .../JumpsRequiringConstantWideOperands.golden | 1302 ++- .../bytecode_expectations/LetVariable.golden | 96 +- .../LetVariableContextSlot.golden | 138 +- .../bytecode_expectations/LoadGlobal.golden | 678 +- .../LogicalExpressions.golden | 1268 ++- .../bytecode_expectations/LookupSlot.golden | 178 +- .../LookupSlotInEval.golden | 34 +- .../LookupSlotWideInEval.golden | 4130 ++++----- .../bytecode_expectations/NewTarget.golden | 37 +- .../ObjectLiterals.golden | 418 +- .../ObjectLiteralsWide.golden | 1034 +-- .../OuterContextVariables.golden | 38 +- .../bytecode_expectations/Parameters.golden | 50 +- .../PrimitiveExpressions.golden | 202 +- .../PrimitiveReturnStatements.golden | 77 +- .../bytecode_expectations/PropertyCall.golden | 720 +- .../PropertyLoads.golden | 2022 ++--- .../PropertyStores.golden | 3774 +++----- .../RegExpLiterals.golden | 33 +- .../RegExpLiteralsWide.golden | 1030 +-- .../RemoveRedundantLdar.golden | 88 +- .../bytecode_expectations/StoreGlobal.golden | 1348 ++- .../StringConstants.golden | 26 +- .../bytecode_expectations/Switch.golden | 604 +- .../bytecode_expectations/ThisFunction.golden | 40 +- .../bytecode_expectations/Throw.golden | 28 +- .../TopLevelObjectLiterals.golden | 39 +- .../bytecode_expectations/TryCatch.golden | 112 +- .../bytecode_expectations/TryFinally.golden | 241 +- .../bytecode_expectations/Typeof.golden | 21 +- .../UnaryOperators.golden | 157 +- .../WideRegisters.golden | 217 +- .../WithStatement.golden | 26 +- .../generate-bytecode-expectations.cc | 22 +- .../cctest/interpreter/interpreter-tester.h | 2 +- .../interpreter/source-position-matcher.cc | 224 + .../interpreter/source-position-matcher.h | 50 + .../interpreter/test-bytecode-generator.cc | 846 +- .../test-interpreter-intrinsics.cc | 201 +- .../cctest/interpreter/test-interpreter.cc | 1413 ++- .../interpreter/test-source-positions.cc | 250 + .../test/cctest/libplatform/test-tracing.cc | 312 + .../v8/test/cctest/libsampler/test-sampler.cc | 140 + deps/v8/test/cctest/profiler-extension.cc | 21 +- deps/v8/test/cctest/profiler-extension.h | 10 + deps/v8/test/cctest/test-access-checks.cc | 305 + deps/v8/test/cctest/test-accessors.cc | 10 +- .../cctest/test-api-fast-accessor-builder.cc | 159 +- deps/v8/test/cctest/test-api-interceptors.cc | 95 +- deps/v8/test/cctest/test-api.cc | 1276 ++- deps/v8/test/cctest/test-api.h | 15 +- deps/v8/test/cctest/test-asm-validator.cc | 2514 ------ deps/v8/test/cctest/test-assembler-arm.cc | 303 +- deps/v8/test/cctest/test-assembler-arm64.cc | 495 +- deps/v8/test/cctest/test-assembler-mips.cc | 4 +- deps/v8/test/cctest/test-assembler-mips64.cc | 135 +- deps/v8/test/cctest/test-assembler-s390.cc | 2 +- deps/v8/test/cctest/test-assembler-x64.cc | 82 + deps/v8/test/cctest/test-assembler-x87.cc | 41 + .../cctest/test-ast-expression-visitor.cc | 423 - deps/v8/test/cctest/test-ast.cc | 2 +- deps/v8/test/cctest/test-code-cache.cc | 77 + deps/v8/test/cctest/test-code-layout.cc | 84 + .../test/cctest/test-code-stub-assembler.cc | 1477 ++++ deps/v8/test/cctest/test-code-stubs-arm.cc | 10 +- deps/v8/test/cctest/test-code-stubs-arm64.cc | 10 +- deps/v8/test/cctest/test-code-stubs-ia32.cc | 10 +- deps/v8/test/cctest/test-code-stubs-mips.cc | 10 +- deps/v8/test/cctest/test-code-stubs-mips64.cc | 3 +- deps/v8/test/cctest/test-code-stubs-x64.cc | 4 +- deps/v8/test/cctest/test-code-stubs-x87.cc | 10 +- deps/v8/test/cctest/test-code-stubs.cc | 14 +- deps/v8/test/cctest/test-compiler.cc | 118 +- deps/v8/test/cctest/test-conversions.cc | 27 + deps/v8/test/cctest/test-cpu-profiler.cc | 369 +- deps/v8/test/cctest/test-date.cc | 49 + deps/v8/test/cctest/test-debug.cc | 266 +- deps/v8/test/cctest/test-decls.cc | 2 + deps/v8/test/cctest/test-dictionary.cc | 86 +- deps/v8/test/cctest/test-disasm-arm.cc | 77 +- deps/v8/test/cctest/test-disasm-arm64.cc | 18 + deps/v8/test/cctest/test-disasm-ia32.cc | 25 +- deps/v8/test/cctest/test-disasm-mips.cc | 30 +- deps/v8/test/cctest/test-disasm-mips64.cc | 93 +- deps/v8/test/cctest/test-disasm-x64.cc | 124 +- deps/v8/test/cctest/test-disasm-x87.cc | 22 +- deps/v8/test/cctest/test-feedback-vector.cc | 138 +- .../test/cctest/test-field-type-tracking.cc | 108 +- .../test/cctest/test-func-name-inference.cc | 10 +- deps/v8/test/cctest/test-global-handles.cc | 52 + deps/v8/test/cctest/test-hashmap.cc | 12 +- deps/v8/test/cctest/test-heap-profiler.cc | 124 +- .../cctest/test-inobject-slack-tracking.cc | 17 +- deps/v8/test/cctest/test-lockers.cc | 14 +- deps/v8/test/cctest/test-log-stack-tracer.cc | 20 +- deps/v8/test/cctest/test-log.cc | 17 +- .../test/cctest/test-macro-assembler-mips.cc | 745 +- .../cctest/test-macro-assembler-mips64.cc | 1146 ++- .../test/cctest/test-macro-assembler-x64.cc | 173 + .../v8/test/cctest/test-microtask-delivery.cc | 161 - deps/v8/test/cctest/test-object-observe.cc | 1078 --- deps/v8/test/cctest/test-object.cc | 71 + deps/v8/test/cctest/test-parsing.cc | 1576 +++- deps/v8/test/cctest/test-platform.cc | 2 +- deps/v8/test/cctest/test-profile-generator.cc | 145 +- deps/v8/test/cctest/test-regexp.cc | 49 +- deps/v8/test/cctest/test-reloc-info.cc | 126 - .../cctest/test-run-wasm-relocation-arm.cc | 58 +- .../cctest/test-run-wasm-relocation-arm64.cc | 64 +- .../cctest/test-run-wasm-relocation-ia32.cc | 67 +- .../cctest/test-run-wasm-relocation-x64.cc | 63 +- .../cctest/test-run-wasm-relocation-x87.cc | 67 +- deps/v8/test/cctest/test-serialize.cc | 416 +- deps/v8/test/cctest/test-slots-buffer.cc | 4 +- deps/v8/test/cctest/test-strings.cc | 3 +- .../v8/test/cctest/test-thread-termination.cc | 28 +- deps/v8/test/cctest/test-trace-event.cc | 2 +- deps/v8/test/cctest/test-typing-reset.cc | 298 - deps/v8/test/cctest/test-unboxed-doubles.cc | 24 +- deps/v8/test/cctest/test-usecounters.cc | 73 + deps/v8/test/cctest/test-utils-arm64.cc | 6 +- deps/v8/test/cctest/test-utils-arm64.h | 6 +- deps/v8/test/cctest/test-weakmaps.cc | 25 +- deps/v8/test/cctest/test-weaksets.cc | 23 +- deps/v8/test/cctest/trace-extension.cc | 16 +- deps/v8/test/cctest/trace-extension.h | 5 +- deps/v8/test/cctest/types-fuzz.h | 2 - deps/v8/test/cctest/wasm/OWNERS | 6 +- deps/v8/test/cctest/wasm/test-run-wasm-64.cc | 703 +- .../test/cctest/wasm/test-run-wasm-asmjs.cc | 297 + .../cctest/wasm/test-run-wasm-interpreter.cc | 291 + deps/v8/test/cctest/wasm/test-run-wasm-js.cc | 184 +- .../test/cctest/wasm/test-run-wasm-module.cc | 229 +- .../cctest/wasm/test-run-wasm-relocation.cc | 60 + deps/v8/test/cctest/wasm/test-run-wasm.cc | 2141 +++-- deps/v8/test/cctest/wasm/test-signatures.h | 8 +- .../wasm/test-wasm-function-name-table.cc | 120 + deps/v8/test/cctest/wasm/test-wasm-stack.cc | 164 + .../cctest/wasm/test-wasm-trap-position.cc | 139 + deps/v8/test/cctest/wasm/wasm-run-utils.h | 383 +- deps/v8/test/default.gyp | 4 +- deps/v8/test/fuzzer/fuzzer-support.cc | 18 +- deps/v8/test/fuzzer/fuzzer-support.h | 3 +- deps/v8/test/fuzzer/fuzzer.gyp | 28 +- deps/v8/test/fuzzer/fuzzer.isolate | 10 +- deps/v8/test/fuzzer/json.cc | 4 +- deps/v8/test/fuzzer/parser.cc | 3 + deps/v8/test/fuzzer/regexp.cc | 8 +- deps/v8/test/fuzzer/testcfg.py | 2 +- deps/v8/test/fuzzer/wasm-asmjs.cc | 4 +- deps/v8/test/fuzzer/wasm.cc | 4 +- deps/v8/test/ignition.gyp | 27 - .../inspector_protocol_parser_test/BUILD.gn | 6 + .../test/inspector_protocol_parser_test/DEPS | 3 + .../RunTests.cpp | 17 + .../inspector_protocol_parser_test.gyp | 12 + .../inspector_protocol_parser_test.isolate} | 11 +- .../inspector_protocol_parser_test.status | 6 + deps/v8/test/intl/assert.js | 37 +- .../calendar-with-multiple-type-subtags.js | 39 + deps/v8/test/intl/date-format/parse-MMMdy.js | 16 +- .../intl/date-format/parse-invalid-input.js | 2 + deps/v8/test/intl/date-format/parse-mdy.js | 2 + deps/v8/test/intl/date-format/parse-mdyhms.js | 18 +- deps/v8/test/intl/extra-flag.js | 23 + deps/v8/test/intl/general/case-mapping.js | 138 + .../test/intl/general/getCanonicalLocales.js | 25 + deps/v8/test/intl/intl.gyp | 4 +- deps/v8/test/intl/intl.status | 28 +- deps/v8/test/intl/no-extra-flag.js | 23 + .../intl/number-format/format-is-bound.js | 4 +- .../test/intl/number-format/parse-currency.js | 2 + .../test/intl/number-format/parse-decimal.js | 25 +- .../intl/number-format/parse-invalid-input.js | 2 + .../test/intl/number-format/parse-percent.js | 18 +- deps/v8/test/intl/regress-4870.js | 8 + deps/v8/test/intl/regress-5179.js | 15 + deps/v8/test/intl/testcfg.py | 10 + .../js-perf-test/Generators/generators.js | 131 + deps/v8/test/js-perf-test/Generators/run.js | 26 + deps/v8/test/js-perf-test/JSTests.json | 55 + .../PropertyQueries/PropertyQueries.json | 38 + .../PropertyQueries/property-queries.js | 274 + .../test/js-perf-test/PropertyQueries/run.js | 23 + deps/v8/test/memory/Memory.json | 4 +- .../test/message/const-decl-no-init-sloppy.js | 9 - deps/v8/test/message/generators-throw1.js | 7 + deps/v8/test/message/generators-throw1.out | 3 + deps/v8/test/message/generators-throw2.js | 9 + deps/v8/test/message/generators-throw2.out | 3 + .../v8/test/message/instanceof-noncallable.js | 2 +- deps/v8/test/message/instanceof-nonobject.js | 2 +- .../let-lexical-name-in-array-prohibited.js | 2 +- .../let-lexical-name-in-object-prohibited.js | 2 +- .../message/let-lexical-name-prohibited.js | 2 +- deps/v8/test/message/message.gyp | 4 +- deps/v8/test/message/message.status | 2 - deps/v8/test/message/no-legacy-const-2.js | 8 - deps/v8/test/message/no-legacy-const-2.out | 5 - deps/v8/test/message/no-legacy-const-3.js | 8 - deps/v8/test/message/no-legacy-const-3.out | 5 - deps/v8/test/message/no-legacy-const.js | 8 - deps/v8/test/message/no-legacy-const.out | 5 - deps/v8/test/message/paren_in_arg_string.out | 1 + .../syntactic-tail-call-in-binop-lhs.js | 14 + .../syntactic-tail-call-in-binop-lhs.out | 4 + .../syntactic-tail-call-in-binop-rhs.js | 14 + .../syntactic-tail-call-in-binop-rhs.out | 4 + .../message/syntactic-tail-call-in-comma.js | 14 + .../message/syntactic-tail-call-in-comma.out | 4 + .../message/syntactic-tail-call-in-extends.js | 10 + .../syntactic-tail-call-in-extends.out | 4 + .../message/syntactic-tail-call-in-for-in.js | 16 + .../message/syntactic-tail-call-in-for-in.out | 4 + .../message/syntactic-tail-call-in-for-of.js | 16 + .../message/syntactic-tail-call-in-for-of.out | 4 + .../syntactic-tail-call-in-logical-and.js | 14 + .../syntactic-tail-call-in-logical-and.out | 4 + .../syntactic-tail-call-in-logical-or.js | 14 + .../syntactic-tail-call-in-logical-or.out | 4 + .../syntactic-tail-call-in-subclass.js | 15 + .../syntactic-tail-call-in-subclass.out | 4 + ...yntactic-tail-call-in-try-catch-finally.js | 20 + ...ntactic-tail-call-in-try-catch-finally.out | 4 + ...ctic-tail-call-in-try-try-catch-finally.js | 22 + ...tic-tail-call-in-try-try-catch-finally.out | 4 + .../message/syntactic-tail-call-in-try.js | 17 + .../message/syntactic-tail-call-in-try.out | 4 + .../syntactic-tail-call-inside-member-expr.js | 14 + ...syntactic-tail-call-inside-member-expr.out | 4 + .../message/syntactic-tail-call-of-eval.js | 9 + .../message/syntactic-tail-call-of-eval.out | 4 + .../syntactic-tail-call-of-identifier.js | 10 + .../syntactic-tail-call-of-identifier.out | 4 + .../message/syntactic-tail-call-of-new.js | 13 + .../message/syntactic-tail-call-of-new.out | 4 + .../message/syntactic-tail-call-sloppy.js | 9 + .../message/syntactic-tail-call-sloppy.out | 4 + .../syntactic-tail-call-without-return.js | 14 + .../syntactic-tail-call-without-return.out | 4 + deps/v8/test/message/testcfg.py | 8 +- deps/v8/test/mjsunit/arguments.js | 67 + .../mjsunit/array-constructor-feedback.js | 21 +- deps/v8/test/mjsunit/array-feedback.js | 1 + .../test/mjsunit/array-indexing-receiver.js | 632 ++ .../test/mjsunit/array-literal-transitions.js | 1 + deps/v8/test/mjsunit/array-push.js | 13 + deps/v8/test/mjsunit/array-push7.js | 60 - deps/v8/test/mjsunit/array-slice.js | 1 + deps/v8/test/mjsunit/array-sort.js | 65 + deps/v8/test/mjsunit/array-splice.js | 93 +- deps/v8/test/mjsunit/array-tostring.js | 24 +- deps/v8/test/mjsunit/asm-directive.js | 11 + deps/v8/test/mjsunit/asm/asm-validation.js | 215 + deps/v8/test/mjsunit/asm/construct-double.js | 33 - deps/v8/test/mjsunit/asm/double-hi.js | 40 - deps/v8/test/mjsunit/asm/double-lo.js | 40 - deps/v8/test/mjsunit/asm/load-elimination.js | 26 + deps/v8/test/mjsunit/call-counts.js | 46 - deps/v8/test/mjsunit/callsite.js | 17 - .../mjsunit/compiler/accessor-exceptions1.js | 21 + .../mjsunit/compiler/accessor-exceptions2.js | 21 + .../test/mjsunit/compiler/deopt-accessors1.js | 28 + .../test/mjsunit/compiler/deopt-accessors2.js | 28 + .../test/mjsunit/compiler/deopt-accessors3.js | 29 + .../test/mjsunit/compiler/deopt-accessors4.js | 29 + .../test/mjsunit/compiler/deopt-accessors5.js | 23 + .../test/mjsunit/compiler/deopt-accessors6.js | 24 + .../test/mjsunit/compiler/deopt-accessors7.js | 30 + .../compiler/deopt-materialize-accumulator.js | 2 +- .../dont-constant-fold-deopting-checks.js} | 7 +- .../mjsunit/compiler/escape-analysis-1.js | 1 - .../mjsunit/compiler/escape-analysis-10.js | 1 + .../mjsunit/compiler/escape-analysis-2.js | 1 - .../mjsunit/compiler/escape-analysis-3.js | 1 - .../mjsunit/compiler/escape-analysis-4.js | 1 - .../mjsunit/compiler/escape-analysis-5.js | 1 - .../mjsunit/compiler/escape-analysis-6.js | 1 - .../mjsunit/compiler/escape-analysis-7.js | 1 - .../mjsunit/compiler/escape-analysis-8.js | 1 - .../mjsunit/compiler/escape-analysis-9.js | 1 - .../mjsunit/compiler/inline-dead-jscreate.js | 14 + .../compiler/inlined-array-pop-getter1.js | 18 + .../compiler/inlined-array-pop-getter2.js | 23 + .../mjsunit/compiler/inlined-array-pop-opt.js | 83 + .../mjsunit/compiler/integral32-add-sub.js | 131 + deps/v8/test/mjsunit/compiler/math-mul.js | 45 + .../compiler/optimized-float32array-length.js | 13 + .../compiler/optimized-float64array-length.js | 13 + .../test/mjsunit/compiler/optimized-for-in.js | 103 +- .../compiler/optimized-instanceof-1.js | 17 + .../compiler/optimized-instanceof-2.js | 19 + .../compiler/optimized-int32array-length.js | 13 + .../compiler/optimized-uint32array-length.js | 13 + .../v8/test/mjsunit/compiler/osr-alignment.js | 2 +- .../test/mjsunit/compiler/osr-backedges1.js | 2 +- .../mjsunit/compiler/osr-block-scope-func.js | 2 +- .../mjsunit/compiler/osr-block-scope-id.js | 2 +- .../test/mjsunit/compiler/osr-block-scope.js | 2 +- deps/v8/test/mjsunit/compiler/osr-follow.js | 2 +- deps/v8/test/mjsunit/compiler/osr-for-let.js | 2 +- .../test/mjsunit/compiler/osr-forin-nested.js | 2 +- deps/v8/test/mjsunit/compiler/osr-forin.js | 2 +- deps/v8/test/mjsunit/compiler/osr-forof.js | 2 +- .../test/mjsunit/compiler/osr-function-id.js | 2 +- .../test/mjsunit/compiler/osr-function-id2.js | 2 +- deps/v8/test/mjsunit/compiler/osr-function.js | 2 +- deps/v8/test/mjsunit/compiler/osr-infinite.js | 4 +- deps/v8/test/mjsunit/compiler/osr-labeled.js | 2 +- .../mjsunit/compiler/osr-literals-adapted.js | 2 +- deps/v8/test/mjsunit/compiler/osr-literals.js | 2 +- deps/v8/test/mjsunit/compiler/osr-manual1.js | 2 +- deps/v8/test/mjsunit/compiler/osr-manual2.js | 2 +- deps/v8/test/mjsunit/compiler/osr-multiple.js | 2 +- .../v8/test/mjsunit/compiler/osr-multiple2.js | 1 - .../v8/test/mjsunit/compiler/osr-multiple3.js | 1 - deps/v8/test/mjsunit/compiler/osr-nested2.js | 2 +- deps/v8/test/mjsunit/compiler/osr-nested2b.js | 2 +- deps/v8/test/mjsunit/compiler/osr-nested3.js | 2 +- deps/v8/test/mjsunit/compiler/osr-nested3b.js | 2 +- deps/v8/test/mjsunit/compiler/osr-regex-id.js | 2 +- deps/v8/test/mjsunit/compiler/osr-sar.js | 2 +- deps/v8/test/mjsunit/compiler/osr-warm.js | 2 +- .../v8/test/mjsunit/compiler/osr-while-let.js | 2 +- deps/v8/test/mjsunit/compiler/regress-5074.js | 18 + deps/v8/test/mjsunit/compiler/regress-5100.js | 51 + deps/v8/test/mjsunit/compiler/regress-5129.js | 15 + deps/v8/test/mjsunit/compiler/regress-5158.js | 16 + deps/v8/test/mjsunit/compiler/regress-5278.js | 13 + .../test/mjsunit/compiler/regress-607493.js | 37 + .../test/mjsunit/compiler/regress-621423.js | 21 + .../test/mjsunit/compiler/regress-625558.js | 14 + .../test/mjsunit/compiler/regress-628403.js | 27 + .../test/mjsunit/compiler/regress-628516.js | 13 + .../test/mjsunit/compiler/regress-628773.js | 21 + .../test/mjsunit/compiler/regress-630611.js | 16 + .../test/mjsunit/compiler/regress-633497.js | 29 + .../compiler/regress-loop-variable-if.js | 13 + .../regress-loop-variable-unsigned.js | 23 + .../compiler/regress-number-is-hole-nan.js | 14 + .../regress-store-holey-double-array.js | 43 + .../compiler/regress-string-to-number-add.js | 15 + ...truncate-number-or-undefined-to-float64.js | 19 + .../test/mjsunit/compiler/regress-valueof.js | 35 - deps/v8/test/mjsunit/compiler/try-osr.js | 2 +- .../mjsunit/compiler/turbo-number-feedback.js | 102 + deps/v8/test/mjsunit/cross-realm-filtering.js | 86 +- .../mjsunit/debug-allscopes-on-debugger.js | 7 +- deps/v8/test/mjsunit/debug-eval-scope.js | 144 + deps/v8/test/mjsunit/debug-evaluate-nested.js | 2 +- .../debug-evaluate-shadowed-context-2.js | 41 + deps/v8/test/mjsunit/debug-exceptions.js | 88 + deps/v8/test/mjsunit/debug-function-scopes.js | 12 +- .../mjsunit/debug-generator-break-on-stack.js | 46 + deps/v8/test/mjsunit/debug-generator-break.js | 44 + deps/v8/test/mjsunit/debug-handle.js | 4 +- .../test/mjsunit/debug-liveedit-exceptions.js | 67 + .../mjsunit/debug-liveedit-patch-positions.js | 129 - deps/v8/test/mjsunit/debug-liveedit-stepin.js | 18 +- .../debug-scopes-suspended-generators.js | 470 + deps/v8/test/mjsunit/debug-scopes.js | 9 +- deps/v8/test/mjsunit/debug-script.js | 5 - deps/v8/test/mjsunit/debug-sourceinfo.js | 77 +- deps/v8/test/mjsunit/debug-sourceslice.js | 74 - .../mjsunit/debug-stack-check-position.js | 30 + deps/v8/test/mjsunit/delete.js | 14 + deps/v8/test/mjsunit/dictionary-properties.js | 8 +- deps/v8/test/mjsunit/double-intrinsics.js | 36 - ...agerly-parsed-lazily-compiled-functions.js | 33 + deps/v8/test/mjsunit/error-tostring-omit.js | 2 +- .../es6/array-concat-revoked-proxy-1.js | 19 + .../es6/array-concat-revoked-proxy-2.js | 19 + deps/v8/test/mjsunit/es6/array-concat.js | 32 +- .../mjsunit/es6/array-prototype-values.js | 1 + .../array-species-constructor-accessor.js | 2 +- .../array-species-constructor-delete.js | 2 +- .../array-species-constructor.js | 2 +- .../{harmony => es6}/array-species-delete.js | 2 +- .../array-species-modified.js | 2 +- .../mjsunit/es6/array-species-neg-zero.js | 23 + .../array-species-parent-constructor.js | 2 +- .../{harmony => es6}/array-species-proto.js | 2 +- .../mjsunit/{harmony => es6}/array-species.js | 2 - .../{harmony => es6}/arraybuffer-species.js | 2 - .../block-conflicts-sloppy.js | 5 - deps/v8/test/mjsunit/es6/block-conflicts.js | 3 - .../block-const-assign-sloppy.js | 2 - .../v8/test/mjsunit/es6/block-early-errors.js | 54 - .../block-eval-var-over-let.js | 36 +- .../{harmony => es6}/block-for-sloppy.js | 2 - .../{harmony => es6}/block-leave-sloppy.js | 2 - .../es6/block-let-contextual-sloppy.js | 2 - .../block-let-crankshaft-sloppy.js | 1 - .../block-let-declaration-sloppy.js | 2 - .../block-let-semantics-sloppy.js | 2 - .../mjsunit/es6/block-non-strict-errors.js | 42 - deps/v8/test/mjsunit/es6/block-scope-class.js | 2 - .../{harmony => es6}/block-scoping-sloppy.js | 2 +- .../block-scoping-top-level-sloppy.js | 1 - .../test/mjsunit/es6/block-sloppy-function.js | 656 ++ .../es6/catch-parameter-redeclaration.js | 112 + .../class-computed-property-names-super.js | 1 - .../es6/class-property-name-eval-arguments.js | 2 - .../es6/classes-derived-return-type.js | 2 - .../mjsunit/es6/classes-subclass-builtins.js | 3 +- deps/v8/test/mjsunit/es6/classes.js | 3 +- deps/v8/test/mjsunit/es6/completion.js | 2 - deps/v8/test/mjsunit/es6/debug-blockscopes.js | 27 +- .../mjsunit/es6/debug-exception-generators.js | 49 + .../es6/debug-promises/async-task-event.js | 6 +- .../evaluate-across-microtasks.js | 66 + .../test/mjsunit/es6/debug-promises/events.js | 122 - .../mjsunit/es6/debug-promises/reentry.js | 4 +- .../debug-promises/reject-after-resolve.js | 4 +- .../es6/debug-promises/reject-caught-all.js | 4 +- .../es6/debug-promises/reject-caught-late.js | 4 +- .../debug-promises/reject-caught-uncaught.js | 4 +- .../es6/debug-promises/reject-uncaught-all.js | 4 +- .../reject-uncaught-uncaught.js | 4 +- .../reject-with-invalid-reject.js | 4 +- .../reject-with-throw-in-reject.js | 4 +- .../reject-with-undefined-reject.js | 4 +- .../resolve-after-aborted-try-finally.js | 32 - .../debug-promises/resolve-after-try-catch.js | 29 - .../debug-promises/rethrow-in-try-finally.js | 30 - .../es6/debug-promises/stepin-constructor.js | 12 +- .../es6/debug-promises/throw-caught-all.js | 4 +- .../es6/debug-promises/throw-caught-late.js | 4 +- .../debug-promises/throw-caught-uncaught.js | 4 +- .../throw-finally-caught-all.js | 72 + .../es6/debug-promises/throw-uncaught-all.js | 4 +- .../debug-promises/throw-uncaught-uncaught.js | 4 +- .../throw-with-throw-in-reject.js | 10 +- .../debug-scope-default-param-with-eval.js | 61 + .../es6/debug-step-into-regexp-subclass.js | 2 +- .../mjsunit/es6/debug-stepin-microtasks.js | 35 +- .../test/mjsunit/es6/debug-stepin-proxies.js | 2 +- .../v8/test/mjsunit/es6/debug-stepnext-for.js | 23 +- .../v8/test/mjsunit/es6/default-parameters.js | 21 +- deps/v8/test/mjsunit/es6/destructuring.js | 22 +- deps/v8/test/mjsunit/es6/for-each-in-catch.js | 194 + .../mjsunit/{harmony => es6}/function-name.js | 8 +- .../mjsunit/es6/generator-destructuring.js | 317 + .../v8/test/mjsunit/es6/generators-objects.js | 40 + .../instanceof-es6.js => es6/instanceof.js} | 21 +- .../{harmony => es6}/iterator-close.js | 80 +- deps/v8/test/mjsunit/es6/json.js | 2 + .../v8/test/mjsunit/es6/legacy-subclassing.js | 38 - deps/v8/test/mjsunit/es6/math-log2-log10.js | 4 +- deps/v8/test/mjsunit/es6/math.js | 2 + .../v8/test/mjsunit/es6/microtask-delivery.js | 86 - .../v8/test/mjsunit/es6/mirror-collections.js | 46 +- .../mjsunit/es6/no-unicode-regexp-flag.js | 24 - deps/v8/test/mjsunit/es6/object-tostring.js | 91 +- .../test/mjsunit/es6/pattern-brand-check.js | 2 - .../mjsunit/es6/promise-internal-setter.js | 3 - .../{harmony => es6}/promise-species.js | 2 +- deps/v8/test/mjsunit/es6/promises.js | 458 +- deps/v8/test/mjsunit/es6/proxies-for.js | 19 +- .../mjsunit/es6/proxies-global-reference.js | 7 +- deps/v8/test/mjsunit/es6/proxies-json.js | 59 +- deps/v8/test/mjsunit/es6/proxies-keys.js | 102 +- deps/v8/test/mjsunit/es6/reflect-construct.js | 2 + .../mjsunit/es6/reflect-define-property.js | 47 - deps/v8/test/mjsunit/es6/reflect.js | 7 + .../v8/test/mjsunit/es6/regexp-constructor.js | 2 - deps/v8/test/mjsunit/es6/regexp-flags.js | 2 - .../test/mjsunit/es6/regress/regress-3750.js | 9 - .../{harmony => es6}/regress/regress-4482.js | 2 - .../mjsunit/es6/regress/regress-468661.js | 4 +- .../mjsunit/es6/regress/regress-cr372788.js | 4 +- .../test/mjsunit/{harmony => es6}/species.js | 2 - .../test/mjsunit/es6/spread-call-new-class.js | 2 - .../mjsunit/es6/spread-call-super-property.js | 2 - .../mjsunit/{harmony => es6}/string-match.js | 2 - .../{harmony => es6}/string-replace.js | 2 - deps/v8/test/mjsunit/es6/string-search.js | 2 - .../mjsunit/{harmony => es6}/string-split.js | 2 - deps/v8/test/mjsunit/es6/super.js | 1 - deps/v8/test/mjsunit/es6/symbols.js | 4 +- .../v8/test/mjsunit/es6/tail-call-megatest.js | 29 +- deps/v8/test/mjsunit/es6/tail-call.js | 77 +- .../es6/typedarray-set-length-internal.js | 35 + .../{harmony => es6}/typedarray-species.js | 2 - .../test/mjsunit/es6/typedarray-tostring.js | 13 + deps/v8/test/mjsunit/es6/typedarray.js | 23 + .../unicode-character-ranges.js | 2 +- .../unicode-escapes-in-regexps.js | 2 - .../unicode-regexp-backrefs.js | 2 +- .../unicode-regexp-ignore-case-noi18n.js | 2 - .../unicode-regexp-ignore-case.js | 2 - .../unicode-regexp-last-index.js | 2 +- .../unicode-regexp-restricted-syntax.js | 2 - .../unicode-regexp-unanchored-advance.js | 2 - .../unicode-regexp-zero-length.js | 2 - .../mjsunit/es7/array-includes-receiver.js | 634 ++ deps/v8/test/mjsunit/es7/array-includes.js | 5 + .../exponentiation-operator.js | 2 - .../mjsunit/es7/object-observe-runtime.js | 19 - deps/v8/test/mjsunit/es7/object-observe.js | 1865 ---- .../mjsunit/es7/regress/regress-443982.js | 24 - .../mjsunit/es7/regress/regress-633883.js | 9 + .../mjsunit/es7/regress/regress-634269.js | 7 + .../mjsunit/es7/regress/regress-634273.js | 14 + .../mjsunit/es7/regress/regress-634357.js | 14 + .../es8/syntactic-tail-call-parsing-sloppy.js | 410 + .../es8/syntactic-tail-call-parsing.js | 393 + .../mjsunit/es8/syntactic-tail-call-simple.js | 143 + .../test/mjsunit/es8/syntactic-tail-call.js | 604 ++ deps/v8/test/mjsunit/eval-origin.js | 39 + deps/v8/test/mjsunit/fast-prototype.js | 10 +- deps/v8/test/mjsunit/for-in.js | 175 +- .../mjsunit/function-name-eval-shadowed.js | 5 + .../test/mjsunit/global-arrow-delete-this.js | 18 + .../array-concat-array-proto-getter.js | 53 + .../harmony/array-concat-array-proto.js | 48 + .../array-concat-object-proto-dict-getter.js | 57 + .../harmony/array-concat-object-proto-dict.js | 53 + .../array-concat-object-proto-generic-dict.js | 65 + .../harmony/array-concat-object-proto.js | 48 + .../harmony/async-arrow-lexical-arguments.js | 42 + .../harmony/async-arrow-lexical-new.target.js | 43 + .../harmony/async-arrow-lexical-super.js | 58 + .../harmony/async-arrow-lexical-this.js | 48 + .../test/mjsunit/harmony/async-await-basic.js | 378 + .../harmony/async-await-no-constructor.js | 27 + .../harmony/async-await-resolve-new.js | 9 + .../mjsunit/harmony/async-await-species.js | 101 + .../test/mjsunit/harmony/async-debug-basic.js | 40 + .../harmony/async-debug-caught-exception.js | 89 + .../async-debug-step-abort-at-break.js | 55 + .../async-debug-step-continue-at-break.js | 55 + .../harmony/async-debug-step-in-and-out.js | 51 + .../harmony/async-debug-step-in-out-out.js | 51 + .../mjsunit/harmony/async-debug-step-in.js | 51 + .../harmony/async-debug-step-nested.js | 58 + .../harmony/async-debug-step-next-constant.js | 39 + .../mjsunit/harmony/async-debug-step-next.js | 51 + .../mjsunit/harmony/async-debug-step-out.js | 49 + .../mjsunit/harmony/async-destructuring.js | 515 ++ .../harmony/async-function-debug-evaluate.js | 139 + .../harmony/async-function-debug-scopes.js | 616 ++ .../harmony/async-function-stacktrace.js | 178 + deps/v8/test/mjsunit/harmony/atomics.js | 54 +- .../mjsunit/harmony/block-sloppy-function.js | 301 - .../mjsunit/harmony/dataview-accessors.js | 54 +- .../harmony/debug-async-break-on-stack.js | 78 + .../test/mjsunit/harmony/debug-async-break.js | 76 + .../debug-async-function-async-task-event.js} | 38 +- .../mjsunit/harmony/debug-async-liveedit.js | 133 + .../v8/test/mjsunit/harmony/do-expressions.js | 2 +- deps/v8/test/mjsunit/harmony/for-in.js | 9 + deps/v8/test/mjsunit/harmony/function-sent.js | 4 +- deps/v8/test/mjsunit/harmony/futex.js | 193 +- .../test/mjsunit/harmony/generators-turbo.js | 667 ++ deps/v8/test/mjsunit/harmony/generators.js | 587 +- .../mjsunit/harmony/harmony-string-pad-end.js | 13 +- .../harmony/harmony-string-pad-start.js | 13 +- .../harmony/mirror-async-function-promise.js | 93 + .../mjsunit/harmony/mirror-async-function.js | 76 + .../object-get-own-property-descriptors.js | 31 +- .../mjsunit/harmony/regexp-change-exec.js | 2 - .../mjsunit/harmony/regexp-named-captures.js | 76 + .../mjsunit/harmony/regexp-property-binary.js | 25 + .../mjsunit/harmony/regexp-property-blocks.js | 34 +- .../harmony/regexp-property-char-class.js | 8 +- .../harmony/regexp-property-disabled.js | 2 +- .../harmony/regexp-property-enumerated.js | 28 + .../harmony/regexp-property-exact-match.js | 33 +- .../regexp-property-general-category.js | 34 +- .../mjsunit/harmony/regexp-property-lu-ui.js | 13 + .../harmony/regexp-property-scripts.js | 46 +- .../harmony/regexp-property-special.js | 51 + .../mjsunit/harmony/regress/regress-4904.js | 24 + .../mjsunit/harmony/regress/regress-618603.js | 14 + .../mjsunit/harmony/regress/regress-624300.js | 13 + .../harmony/regress/regress-crbug-621111.js | 6 + .../harmony/regress/regress-crbug-621496.js | 7 + .../regress-observe-empty-double-array.js | 39 - .../test/mjsunit/harmony/sharedarraybuffer.js | 18 + deps/v8/test/mjsunit/harmony/simd.js | 4 +- .../sloppy-legacy-duplicate-generators.js | 60 + .../harmony/sloppy-no-duplicate-async.js | 30 + .../harmony/sloppy-no-duplicate-generators.js | 28 + deps/v8/test/mjsunit/harmony/to-name.js | 13 - deps/v8/test/mjsunit/harmony/to-primitive.js | 52 - deps/v8/test/mjsunit/harmony/to-string.js | 4 +- .../mjsunit/harmony/trailing-commas-length.js | 31 + .../test/mjsunit/holy-double-no-arg-array.js | 14 + .../ignition/debug-break-mixed-stack.js | 52 + .../ignition/debug-step-mixed-stack.js | 53 + .../elided-instruction-no-ignition.js | 37 - .../mjsunit/ignition/elided-instruction.js | 12 +- .../ignition/ignition-statistics-extension.js | 62 + .../mjsunit/ignition/osr-from-bytecode.js | 12 + .../mjsunit/ignition/osr-from-generator.js | 65 + .../ignition/regress-599001-verifyheap.js | 2 +- ...regress-612386-smi-to-double-transition.js | 29 + .../test/mjsunit/ignition/regress-616064.js | 26 + .../regress-629792-source-position-on-jump.js | 14 + .../mjsunit/induction-variable-turbofan.js | 102 + deps/v8/test/mjsunit/json-replacer-order.js | 1 - deps/v8/test/mjsunit/json-stringify-holder.js | 104 + deps/v8/test/mjsunit/json.js | 11 +- deps/v8/test/mjsunit/json2.js | 8 +- .../test/mjsunit/lithium/SeqStringSetChar.js | 46 - deps/v8/test/mjsunit/messages.js | 9 +- deps/v8/test/mjsunit/migrations.js | 5 - deps/v8/test/mjsunit/mirror-object.js | 32 +- deps/v8/test/mjsunit/mirror-regexp.js | 2 +- deps/v8/test/mjsunit/mirror-script.js | 13 +- deps/v8/test/mjsunit/mjsunit.gyp | 4 +- deps/v8/test/mjsunit/mjsunit.isolate | 3 +- deps/v8/test/mjsunit/mjsunit.js | 9 + deps/v8/test/mjsunit/mjsunit.status | 535 +- .../v8/test/mjsunit/object-define-property.js | 47 - deps/v8/test/mjsunit/object-literal.js | 2 - deps/v8/test/mjsunit/osr-elements-kind.js | 2 +- deps/v8/test/mjsunit/realm-property-access.js | 20 + deps/v8/test/mjsunit/regexp-compile.js | 4 + deps/v8/test/mjsunit/regexp-lastIndex.js | 18 - deps/v8/test/mjsunit/regexp-string-methods.js | 10 - deps/v8/test/mjsunit/regress-604044.js | 7 + .../modules.js => regress-crbug-619476.js} | 7 +- .../regress/redeclaration-error-types.js | 145 + deps/v8/test/mjsunit/regress/regress-105.js | 4 +- deps/v8/test/mjsunit/regress/regress-1132.js | 2 +- deps/v8/test/mjsunit/regress/regress-1246.js | 82 - deps/v8/test/mjsunit/regress/regress-1403.js | 2 +- deps/v8/test/mjsunit/regress/regress-1980.js | 4 +- deps/v8/test/mjsunit/regress/regress-2618.js | 2 +- deps/v8/test/mjsunit/regress/regress-3229.js | 2 +- deps/v8/test/mjsunit/regress/regress-3315.js | 28 - .../v8/test/mjsunit/regress/regress-349870.js | 7 - .../v8/test/mjsunit/regress/regress-353004.js | 22 +- .../v8/test/mjsunit/regress/regress-353551.js | 2 +- .../v8/test/mjsunit/regress/regress-356589.js | 36 - deps/v8/test/mjsunit/regress/regress-3926.js | 2 - .../v8/test/mjsunit/regress/regress-403292.js | 55 - .../test/mjsunit/regress/regress-417709a.js | 17 - .../test/mjsunit/regress/regress-417709b.js | 16 - deps/v8/test/mjsunit/regress/regress-4659.js | 2 - .../v8/test/mjsunit/regress/regress-4665-2.js | 33 - deps/v8/test/mjsunit/regress/regress-4665.js | 2 - deps/v8/test/mjsunit/regress/regress-4693.js | 1 - deps/v8/test/mjsunit/regress/regress-4703.js | 30 + deps/v8/test/mjsunit/regress/regress-4815.js | 52 + deps/v8/test/mjsunit/regress/regress-4908.js | 7 + deps/v8/test/mjsunit/regress/regress-4945.js | 10 + deps/v8/test/mjsunit/regress/regress-4964.js | 22 + deps/v8/test/mjsunit/regress/regress-4967.js | 9 + deps/v8/test/mjsunit/regress/regress-4971.js | 41 + deps/v8/test/mjsunit/regress/regress-5004.js | 27 + deps/v8/test/mjsunit/regress/regress-5018.js | 29 + deps/v8/test/mjsunit/regress/regress-5036.js | 2 - deps/v8/test/mjsunit/regress/regress-5071.js | 26 + deps/v8/test/mjsunit/regress/regress-5085.js | 14 + deps/v8/test/mjsunit/regress/regress-5106.js | 29 + deps/v8/test/mjsunit/regress/regress-5164.js | 44 + deps/v8/test/mjsunit/regress/regress-5173.js | 51 + deps/v8/test/mjsunit/regress/regress-5174.js | 6 + deps/v8/test/mjsunit/regress/regress-5178.js | 9 + deps/v8/test/mjsunit/regress/regress-5181.js | 11 + .../v8/test/mjsunit/regress/regress-520029.js | 2 - deps/v8/test/mjsunit/regress/regress-5205.js | 37 + deps/v8/test/mjsunit/regress/regress-5207.js | 30 + deps/v8/test/mjsunit/regress/regress-5213.js | 8 + deps/v8/test/mjsunit/regress/regress-5214.js | 10 + .../regress-5216.js} | 5 +- deps/v8/test/mjsunit/regress/regress-5245.js | 24 + deps/v8/test/mjsunit/regress/regress-5252.js | 31 + deps/v8/test/mjsunit/regress/regress-5262.js | 25 + .../v8/test/mjsunit/regress/regress-5275-1.js | 18 + .../v8/test/mjsunit/regress/regress-5275-2.js | 18 + deps/v8/test/mjsunit/regress/regress-5279.js | 16 + deps/v8/test/mjsunit/regress/regress-5286.js | 41 + deps/v8/test/mjsunit/regress/regress-5342.js | 7 + .../v8/test/mjsunit/regress/regress-536751.js | 1 - .../v8/test/mjsunit/regress/regress-542099.js | 1 - .../v8/test/mjsunit/regress/regress-542100.js | 1 - .../v8/test/mjsunit/regress/regress-544991.js | 2 - .../v8/test/mjsunit/regress/regress-575364.js | 4 +- .../v8/test/mjsunit/regress/regress-585041.js | 21 + .../v8/test/mjsunit/regress/regress-592352.js | 20 + .../regress/regress-599068-func-bindings.js | 45 + .../v8/test/mjsunit/regress/regress-599717.js | 26 + .../v8/test/mjsunit/regress/regress-599719.js | 25 + .../v8/test/mjsunit/regress/regress-599825.js | 7 +- .../v8/test/mjsunit/regress/regress-605470.js | 17 + .../v8/test/mjsunit/regress/regress-606021.js | 32 + .../v8/test/mjsunit/regress/regress-608630.js | 71 + .../v8/test/mjsunit/regress/regress-610633.js | 40 + .../v8/test/mjsunit/regress/regress-612146.js | 33 + .../v8/test/mjsunit/regress/regress-612412.js | 20 + .../v8/test/mjsunit/regress/regress-613928.js | 19 + .../v8/test/mjsunit/regress/regress-615776.js | 14 + .../v8/test/mjsunit/regress/regress-616386.js | 10 + .../v8/test/mjsunit/regress/regress-617525.js | 14 + .../v8/test/mjsunit/regress/regress-617526.js | 24 + .../v8/test/mjsunit/regress/regress-617529.js | 17 + .../v8/test/mjsunit/regress/regress-617882.js | 29 + .../v8/test/mjsunit/regress/regress-618608.js | 1470 ++++ .../v8/test/mjsunit/regress/regress-618657.js | 14 + .../v8/test/mjsunit/regress/regress-619382.js | 35 + .../v8/test/mjsunit/regress/regress-620553.js | 17 + .../v8/test/mjsunit/regress/regress-620750.js | 14 + .../v8/test/mjsunit/regress/regress-621869.js | 18 + .../v8/test/mjsunit/regress/regress-622663.js | 14 + .../v8/test/mjsunit/regress/regress-625121.js | 16 + .../v8/test/mjsunit/regress/regress-631050.js | 15 + .../v8/test/mjsunit/regress/regress-632289.js | 22 + .../v8/test/mjsunit/regress/regress-633998.js | 44 + .../v8/test/mjsunit/regress/regress-635429.js | 12 + .../v8/test/mjsunit/regress/regress-638134.js | 20 + .../v8/test/mjsunit/regress/regress-639270.js | 14 + .../v8/test/mjsunit/regress/regress-674753.js | 76 + .../mjsunit/regress/regress-crbug-119800.js | 9 +- .../mjsunit/regress/regress-crbug-320922.js | 50 - .../mjsunit/regress/regress-crbug-401915.js | 2 +- .../mjsunit/regress/regress-crbug-451770.js | 2 - .../mjsunit/regress/regress-crbug-480807.js | 2 +- .../mjsunit/regress/regress-crbug-492526.js | 7 - .../mjsunit/regress/regress-crbug-495493.js | 12 + .../mjsunit/regress/regress-crbug-498142.js | 8 - .../mjsunit/regress/regress-crbug-500497.js | 3 + .../mjsunit/regress/regress-crbug-515897.js | 9 + .../mjsunit/regress/regress-crbug-570651.js | 10 - .../mjsunit/regress/regress-crbug-571517.js | 5 +- .../mjsunit/regress/regress-crbug-582048.js | 31 + .../mjsunit/regress/regress-crbug-599067.js | 2 +- .../mjsunit/regress/regress-crbug-600257.js | 13 + .../mjsunit/regress/regress-crbug-600995.js | 10 - .../mjsunit/regress/regress-crbug-602184.js | 17 + .../mjsunit/regress/regress-crbug-602595.js | 12 + .../mjsunit/regress/regress-crbug-603463.js | 16 + .../mjsunit/regress/regress-crbug-604299.js | 9 + .../mjsunit/regress/regress-crbug-605060.js | 10 + .../mjsunit/regress/regress-crbug-605581.js | 28 + .../mjsunit/regress/regress-crbug-605862.js | 6 + .../mjsunit/regress/regress-crbug-608279.js | 18 + .../mjsunit/regress/regress-crbug-609029.js | 7 + .../mjsunit/regress/regress-crbug-609046.js | 36 + .../mjsunit/regress/regress-crbug-610207.js | 13 + .../mjsunit/regress/regress-crbug-612109.js | 8 + .../mjsunit/regress/regress-crbug-612142.js | 10 + .../mjsunit/regress/regress-crbug-613494.js | 14 + .../mjsunit/regress/regress-crbug-613570.js | 6 + .../mjsunit/regress/regress-crbug-613905.js | 11 + .../mjsunit/regress/regress-crbug-613919.js | 18 + .../mjsunit/regress/regress-crbug-614292.js | 14 + .../mjsunit/regress/regress-crbug-614644.js | 15 + .../mjsunit/regress/regress-crbug-614727.js | 23 + .../mjsunit/regress/regress-crbug-615774.js | 11 + .../mjsunit/regress/regress-crbug-616709-1.js | 21 + .../mjsunit/regress/regress-crbug-616709-2.js | 21 + .../mjsunit/regress/regress-crbug-617527.js | 8 + .../mjsunit/regress/regress-crbug-617567.js | 24 + .../mjsunit/regress/regress-crbug-618788.js | 21 + .../mjsunit/regress/regress-crbug-618845.js | 16 + .../mjsunit/regress/regress-crbug-620119.js | 8 + .../mjsunit/regress/regress-crbug-620253.js | 7 + .../mjsunit/regress/regress-crbug-620650.js | 16 + .../mjsunit/regress/regress-crbug-621361.js | 40 + .../mjsunit/regress/regress-crbug-621611.js | 11 + .../mjsunit/regress/regress-crbug-621816.js | 18 + .../mjsunit/regress/regress-crbug-624747.js | 22 + .../mjsunit/regress/regress-crbug-624919.js | 14 + .../mjsunit/regress/regress-crbug-625547.js | 21 + .../mjsunit/regress/regress-crbug-625590.js | 12 + .../mjsunit/regress/regress-crbug-626715.js | 28 + .../mjsunit/regress/regress-crbug-627828.js | 40 + .../mjsunit/regress/regress-crbug-627934.js | 12 + .../mjsunit/regress/regress-crbug-627935.js | 12 + .../mjsunit/regress/regress-crbug-628573.js | 17 + .../mjsunit/regress/regress-crbug-629062.js | 14 + .../mjsunit/regress/regress-crbug-629435.js | 19 + .../mjsunit/regress/regress-crbug-629823.js | 17 + .../mjsunit/regress/regress-crbug-629996.js | 9 + ...ress-449070.js => regress-crbug-630559.js} | 9 +- .../mjsunit/regress/regress-crbug-630561.js | 13 + .../mjsunit/regress/regress-crbug-630923.js | 16 + .../mjsunit/regress/regress-crbug-630951.js | 12 + .../mjsunit/regress/regress-crbug-630952.js | 25 + .../mjsunit/regress/regress-crbug-631318-1.js | 14 + .../regress/regress-crbug-631318-10.js | 14 + .../regress/regress-crbug-631318-11.js | 14 + .../regress/regress-crbug-631318-12.js | 14 + .../regress/regress-crbug-631318-13.js | 14 + .../regress/regress-crbug-631318-14.js | 14 + .../regress/regress-crbug-631318-15.js | 14 + .../mjsunit/regress/regress-crbug-631318-2.js | 14 + .../mjsunit/regress/regress-crbug-631318-3.js | 14 + .../mjsunit/regress/regress-crbug-631318-4.js | 14 + .../mjsunit/regress/regress-crbug-631318-5.js | 14 + .../mjsunit/regress/regress-crbug-631318-6.js | 14 + .../mjsunit/regress/regress-crbug-631318-7.js | 14 + .../mjsunit/regress/regress-crbug-631318-8.js | 14 + .../mjsunit/regress/regress-crbug-631318-9.js | 14 + .../mjsunit/regress/regress-crbug-631917.js | 38 + .../mjsunit/regress/regress-crbug-632800.js | 10 + .../mjsunit/regress/regress-crbug-633585.js | 18 + .../mjsunit/regress/regress-crbug-633884.js | 15 + .../mjsunit/regress/regress-crbug-633999.js | 40 + .../mjsunit/regress/regress-crbug-635798.js | 15 + .../mjsunit/regress/regress-crbug-638551.js | 18 + ...rbug-390925.js => regress-crbug-640369.js} | 13 +- .../mjsunit/regress/regress-crbug-642056.js | 17 + .../mjsunit/regress/regress-crbug-644215.js | 13 + .../regress-double-canonicalization.js | 24 + .../regress-object-assign-deprecated-2.js | 8 + .../regress-object-assign-deprecated.js | 7 + .../regress/regress-observe-map-cache.js | 15 - .../regress-put-prototype-transition.js | 2 +- .../regress-recurse-patch-binary-op.js | 10 + .../regress/regress-seqstrsetchar-ex1.js | 59 - .../regress/regress-seqstrsetchar-ex3.js | 44 - .../regress-string-from-char-code-tonumber.js | 26 + .../regress/regress-typedarray-length.js | 32 +- .../test/mjsunit/regress/regress-v8-5254-1.js | 27 + .../test/mjsunit/regress/regress-v8-5254-2.js | 27 + .../test/mjsunit/regress/regress-v8-5255-1.js | 14 + .../test/mjsunit/regress/regress-v8-5255-2.js | 14 + .../test/mjsunit/regress/regress-v8-5255-3.js | 14 + .../regress/regress-wasm-crbug-599413.js | 18 + .../regress/regress-wasm-crbug-618602.js | 15 + .../mjsunit/regress/string-set-char-deopt.js | 85 - deps/v8/test/mjsunit/stack-traces-overflow.js | 18 +- deps/v8/test/mjsunit/stack-traces.js | 92 +- deps/v8/test/mjsunit/string-natives.js | 79 - deps/v8/test/mjsunit/string-wrapper.js | 62 + deps/v8/test/mjsunit/substr.js | 19 + deps/v8/test/mjsunit/tools/dumpcpp.js | 53 + .../tools/tickprocessor-test-func-info.log | 6 +- .../test/mjsunit/tools/tickprocessor-test.log | 6 +- deps/v8/test/mjsunit/tools/tickprocessor.js | 32 +- deps/v8/test/mjsunit/unicode-test.js | 2 +- deps/v8/test/mjsunit/wasm/OWNERS | 6 +- deps/v8/test/mjsunit/wasm/adapter-frame.js | 7 +- deps/v8/test/mjsunit/wasm/asm-wasm-copy.js | 5 +- deps/v8/test/mjsunit/wasm/asm-wasm-deopt.js | 6 +- deps/v8/test/mjsunit/wasm/asm-wasm-f32.js | 13 +- deps/v8/test/mjsunit/wasm/asm-wasm-f64.js | 13 +- deps/v8/test/mjsunit/wasm/asm-wasm-heap.js | 27 +- deps/v8/test/mjsunit/wasm/asm-wasm-i32.js | 17 +- .../v8/test/mjsunit/wasm/asm-wasm-literals.js | 30 +- deps/v8/test/mjsunit/wasm/asm-wasm-stdlib.js | 160 +- deps/v8/test/mjsunit/wasm/asm-wasm-switch.js | 486 ++ deps/v8/test/mjsunit/wasm/asm-wasm-u32.js | 13 +- deps/v8/test/mjsunit/wasm/asm-wasm.js | 586 +- deps/v8/test/mjsunit/wasm/calls.js | 17 +- .../wasm/compiled-module-serialization.js | 80 + .../v8/test/mjsunit/wasm/debug-disassembly.js | 128 + deps/v8/test/mjsunit/wasm/divrem-trap.js | 8 +- deps/v8/test/mjsunit/wasm/embenchen/box2d.js | 10 +- deps/v8/test/mjsunit/wasm/embenchen/copy.js | 10 +- .../mjsunit/wasm/embenchen/corrections.js | 10 +- .../test/mjsunit/wasm/embenchen/fannkuch.js | 10 +- deps/v8/test/mjsunit/wasm/embenchen/fasta.js | 10 +- .../mjsunit/wasm/embenchen/lua_binarytrees.js | 10 +- deps/v8/test/mjsunit/wasm/embenchen/memops.js | 10 +- deps/v8/test/mjsunit/wasm/embenchen/primes.js | 10 +- deps/v8/test/mjsunit/wasm/embenchen/zlib.js | 10 +- .../wasm/ensure-wasm-binaries-up-to-date.js | 16 + deps/v8/test/mjsunit/wasm/export-table.js | 51 +- deps/v8/test/mjsunit/wasm/ffi-error.js | 28 +- deps/v8/test/mjsunit/wasm/ffi.js | 100 +- deps/v8/test/mjsunit/wasm/frame-inspection.js | 74 + deps/v8/test/mjsunit/wasm/function-names.js | 69 + .../test/mjsunit/wasm/function-prototype.js | 2 +- deps/v8/test/mjsunit/wasm/gc-frame.js | 33 +- deps/v8/test/mjsunit/wasm/grow-memory.js | 119 + deps/v8/test/mjsunit/wasm/import-table.js | 47 +- deps/v8/test/mjsunit/wasm/incrementer.wasm | Bin 0 -> 66 bytes deps/v8/test/mjsunit/wasm/indirect-calls.js | 17 +- .../mjsunit/wasm/instantiate-module-basic.js | 167 +- .../mjsunit/wasm/instantiate-run-basic.js | 2 +- deps/v8/test/mjsunit/wasm/module-memory.js | 38 +- .../test/mjsunit/wasm/no-wasm-by-default.js | 6 + .../test/mjsunit/wasm/parallel_compilation.js | 100 + deps/v8/test/mjsunit/wasm/params.js | 4 +- deps/v8/test/mjsunit/wasm/receiver.js | 45 + deps/v8/test/mjsunit/wasm/stack.js | 139 +- deps/v8/test/mjsunit/wasm/stackwalk.js | 9 +- deps/v8/test/mjsunit/wasm/start-function.js | 26 +- .../wasm/test-import-export-wrapper.js | 241 + .../mjsunit/wasm/test-wasm-module-builder.js | 48 +- deps/v8/test/mjsunit/wasm/trap-location.js | 78 + .../test/mjsunit/wasm/unicode-validation.js | 121 + deps/v8/test/mjsunit/wasm/unreachable.js | 4 +- .../mjsunit/wasm/verify-function-simple.js | 12 +- deps/v8/test/mjsunit/wasm/wasm-constants.js | 112 +- .../test/mjsunit/wasm/wasm-module-builder.js | 554 +- deps/v8/test/mjsunit/wasm/wasm-object-api.js | 7 +- deps/v8/test/mozilla/mozilla.gyp | 4 +- deps/v8/test/mozilla/mozilla.status | 7 +- deps/v8/test/mozilla/testcfg.py | 17 - deps/v8/test/optimize_for_size.gyp | 4 +- deps/v8/test/perf.gyp | 4 +- deps/v8/test/preparser/preparser.gyp | 4 +- deps/v8/test/simdjs/simdjs.gyp | 4 +- deps/v8/test/simdjs/testcfg.py | 16 - deps/v8/test/test262/BUILD.gn | 34 + deps/v8/test/test262/archive.py | 17 +- deps/v8/test/test262/detachArrayBuffer.js | 7 + deps/v8/test/test262/list.py | 3 +- deps/v8/test/test262/test262.gyp | 4 +- deps/v8/test/test262/test262.isolate | 1 + deps/v8/test/test262/test262.status | 498 +- deps/v8/test/test262/testcfg.py | 39 +- deps/v8/test/unittests/BUILD.gn | 77 + .../{ => base}/atomic-utils-unittest.cc | 29 +- .../test/unittests/base/ieee754-unittest.cc | 405 + .../unittests/base/platform/time-unittest.cc | 75 + .../test/unittests/base/sys-info-unittest.cc | 9 +- .../compiler-dispatcher-job-unittest.cc | 156 + .../arm/instruction-selector-arm-unittest.cc | 381 +- .../instruction-selector-arm64-unittest.cc | 1107 ++- .../compiler/change-lowering-unittest.cc | 628 -- .../checkpoint-elimination-unittest.cc | 59 + .../coalesced-live-ranges-unittest.cc | 268 - .../common-operator-reducer-unittest.cc | 178 - .../compiler/common-operator-unittest.cc | 58 +- .../control-flow-optimizer-unittest.cc | 28 - .../dead-code-elimination-unittest.cc | 14 +- .../effect-control-linearizer-unittest.cc | 399 + .../compiler/escape-analysis-unittest.cc | 23 +- .../compiler/graph-reducer-unittest.cc | 6 +- .../test/unittests/compiler/graph-unittest.h | 3 + .../instruction-selector-ia32-unittest.cc | 65 - .../compiler/instruction-selector-unittest.cc | 26 +- .../compiler/instruction-selector-unittest.h | 7 +- .../compiler/instruction-sequence-unittest.cc | 22 +- .../compiler/instruction-sequence-unittest.h | 6 +- .../compiler/int64-lowering-unittest.cc | 243 +- .../compiler/js-builtin-reducer-unittest.cc | 1285 ++- .../compiler/js-create-lowering-unittest.cc | 86 +- .../js-intrinsic-lowering-unittest.cc | 144 +- .../compiler/js-operator-unittest.cc | 16 +- .../compiler/js-typed-lowering-unittest.cc | 526 +- .../compiler/linkage-tail-call-unittest.cc | 89 +- .../compiler/load-elimination-unittest.cc | 227 +- .../compiler/loop-peeling-unittest.cc | 188 +- .../machine-operator-reducer-unittest.cc | 539 +- .../compiler/machine-operator-unittest.cc | 10 +- .../instruction-selector-mips-unittest.cc | 37 - .../instruction-selector-mips64-unittest.cc | 135 +- .../compiler/move-optimizer-unittest.cc | 6 +- .../compiler/node-matchers-unittest.cc | 53 +- .../compiler/node-properties-unittest.cc | 6 +- .../unittests/compiler/node-test-utils.cc | 458 +- .../test/unittests/compiler/node-test-utils.h | 87 +- .../test/unittests/compiler/node-unittest.cc | 6 + .../compiler/register-allocator-unittest.cc | 3 +- .../compiler/scheduler-rpo-unittest.cc | 30 +- .../unittests/compiler/scheduler-unittest.cc | 6 +- .../simplified-operator-reducer-unittest.cc | 272 +- .../compiler/simplified-operator-unittest.cc | 75 +- .../tail-call-optimization-unittest.cc | 57 +- .../test/unittests/compiler/typer-unittest.cc | 40 +- .../value-numbering-reducer-unittest.cc | 3 +- .../x64/instruction-selector-x64-unittest.cc | 150 +- .../unittests/eh-frame-iterator-unittest.cc | 61 + .../unittests/eh-frame-writer-unittest.cc | 464 + .../test/unittests/heap/gc-tracer-unittest.cc | 190 + .../test/unittests/heap/marking-unittest.cc | 160 + .../test/unittests/heap/slot-set-unittest.cc | 14 +- .../bytecode-array-builder-unittest.cc | 511 +- .../bytecode-array-iterator-unittest.cc | 119 +- .../bytecode-array-writer-unittest.cc | 254 + .../bytecode-dead-code-optimizer-unittest.cc | 149 + .../interpreter/bytecode-decoder-unittest.cc | 87 + .../bytecode-peephole-optimizer-unittest.cc | 531 ++ .../interpreter/bytecode-pipeline-unittest.cc | 185 + .../bytecode-register-optimizer-unittest.cc | 219 + .../unittests/interpreter/bytecode-utils.h | 37 + .../interpreter/bytecodes-unittest.cc | 161 +- .../constant-array-builder-unittest.cc | 229 +- .../interpreter-assembler-unittest.cc | 376 +- .../interpreter-assembler-unittest.h | 2 - .../libplatform/worker-thread-unittest.cc | 16 + .../register-configuration-unittest.cc | 166 + .../source-position-table-unittest.cc | 50 +- deps/v8/test/unittests/test-utils.cc | 18 +- deps/v8/test/unittests/test-utils.h | 6 +- deps/v8/test/unittests/unittests.gyp | 296 +- deps/v8/test/unittests/unittests.status | 8 +- .../unittests/value-serializer-unittest.cc | 1368 +++ deps/v8/test/unittests/wasm/OWNERS | 6 +- .../test/unittests/wasm/asm-types-unittest.cc | 723 ++ .../unittests/wasm/ast-decoder-unittest.cc | 1400 +-- .../wasm/control-transfer-unittest.cc | 402 + .../test/unittests/wasm/decoder-unittest.cc | 39 +- .../test/unittests/wasm/encoder-unittest.cc | 196 +- .../unittests/wasm/leb-helper-unittest.cc | 191 + .../wasm/loop-assignment-analysis-unittest.cc | 53 +- .../unittests/wasm/module-decoder-unittest.cc | 992 +-- .../unittests/wasm/switch-logic-unittest.cc | 89 + .../unittests/wasm/wasm-macro-gen-unittest.cc | 94 +- .../test/webkit/class-constructor-return.js | 2 - deps/v8/test/webkit/class-syntax-call.js | 2 - .../test/webkit/class-syntax-declaration.js | 2 - .../class-syntax-default-constructor.js | 2 - .../v8/test/webkit/class-syntax-expression.js | 2 - .../webkit/class-syntax-extends-expected.txt | 22 +- deps/v8/test/webkit/class-syntax-extends.js | 14 +- deps/v8/test/webkit/class-syntax-name.js | 2 - deps/v8/test/webkit/class-syntax-prototype.js | 2 - deps/v8/test/webkit/class-syntax-scoping.js | 2 - deps/v8/test/webkit/class-syntax-semicolon.js | 2 - deps/v8/test/webkit/class-syntax-super.js | 2 - ...ad-of-captured-variable-proven-constant.js | 4 +- .../dfg-resolve-global-specific-dictionary.js | 2 +- .../v8/test/webkit/exception-for-nonobject.js | 2 - .../fast/js/basic-strict-mode-expected.txt | 112 +- .../test/webkit/fast/js/basic-strict-mode.js | 2 +- .../webkit/fast/js/deep-recursion-test.js | 2 +- .../webkit/fast/js/excessive-comma-usage.js | 2 +- ...-toString-semicolon-insertion-expected.txt | 10 +- .../function-toString-semicolon-insertion.js | 10 +- .../webkit/fast/js/kde/lval-exceptions.js | 14 +- .../fast/js/toString-overrides-expected.txt | 4 +- .../webkit/fast/regex/lastIndex-expected.txt | 6 +- .../webkit/fast/regex/toString-expected.txt | 4 +- .../webkit/function-declaration-statement.js | 2 +- deps/v8/test/webkit/instance-of-immediates.js | 2 - .../parser-xml-close-comment-expected.txt | 2 +- .../test/webkit/parser-xml-close-comment.js | 2 +- .../test/webkit/resources/JSON-stringify.js | 232 +- .../webkit/run-json-stringify-expected.txt | 4 +- deps/v8/test/webkit/testcfg.py | 6 - deps/v8/test/webkit/toString-for-var-decl.js | 2 +- deps/v8/test/webkit/webkit.gyp | 4 +- deps/v8/test/webkit/webkit.status | 29 +- deps/v8/testing/gmock.gyp | 5 +- .../gmock/internal/custom/gmock-port.h | 29 + deps/v8/testing/gtest.gyp | 41 +- .../testing/gtest/include/gtest/gtest_prod.h | 58 + deps/v8/tools/BUILD.gn | 59 + deps/v8/tools/android-run.py | 5 +- deps/v8/tools/callstats.html | 1809 ++++ deps/v8/tools/callstats.py | 638 ++ deps/v8/tools/check-static-initializers.gyp | 4 +- deps/v8/tools/codemap.js | 8 + deps/v8/tools/detect-builtins.js | 13 +- deps/v8/tools/dev/v8gen.py | 244 + deps/v8/tools/dump-cpp.py | 74 + deps/v8/tools/dumpcpp-driver.js | 45 + deps/v8/tools/dumpcpp.js | 58 + deps/v8/tools/eval_gc_nvp.py | 29 +- deps/v8/tools/eval_gc_time.sh | 9 +- deps/v8/tools/gcmole/gcmole.lua | 34 +- deps/v8/tools/gcmole/run-gcmole.isolate | 2 +- deps/v8/tools/gcmole/run_gcmole.gyp | 4 +- deps/v8/tools/gdb-v8-support.py | 2 +- deps/v8/tools/gdbinit | 24 +- deps/v8/tools/gen-postmortem-metadata.py | 52 +- deps/v8/tools/gyp/v8.gyp | 2281 ----- deps/v8/tools/gyp_flag_compare.py | 280 + deps/v8/tools/ic-explorer.html | 624 +- .../ignition/bytecode_dispatches_report.py | 281 + .../bytecode_dispatches_report_test.py | 62 + .../ignition/linux_perf_bytecode_annotate.py | 174 + .../linux_perf_bytecode_annotate_test.py | 85 + deps/v8/tools/ignition/linux_perf_report.py | 223 + .../tools/ignition/linux_perf_report_test.py | 147 + deps/v8/tools/isolate_driver.py | 293 +- deps/v8/tools/js2c.py | 10 +- deps/v8/tools/jsfunfuzz/jsfunfuzz.gyp | 4 +- deps/v8/tools/memory/asan/blacklist.txt | 4 + deps/v8/tools/memory/tsan_v2/ignores.txt | 5 + deps/v8/tools/mingw-generate-makefiles.sh | 10 +- deps/v8/tools/msan/blacklist.txt | 4 + deps/v8/tools/nacl-run.py | 147 - deps/v8/tools/objdump-v8 | 83 + deps/v8/tools/parser-shell.cc | 20 +- deps/v8/tools/parser-shell.gyp | 10 +- deps/v8/tools/perf-to-html.py | 4 +- deps/v8/tools/plot-timer-events | 5 +- deps/v8/tools/presubmit.py | 3 + deps/v8/tools/release/auto_roll.py | 4 +- deps/v8/tools/release/check_clusterfuzz.py | 9 + deps/v8/tools/release/create_release.py | 22 + deps/v8/tools/release/git_recipes.py | 4 + deps/v8/tools/release/merge_to_branch.py | 108 +- deps/v8/tools/release/roll_merge.py | 290 + deps/v8/tools/release/test_scripts.py | 386 +- deps/v8/tools/run-deopt-fuzzer.gyp | 4 +- deps/v8/tools/run-deopt-fuzzer.py | 7 +- deps/v8/tools/run-perf.sh | 3 +- deps/v8/tools/run-tests.py | 160 +- deps/v8/tools/run-valgrind.gyp | 4 +- deps/v8/tools/run_perf.py | 237 +- deps/v8/tools/testrunner/local/commands.py | 4 +- deps/v8/tools/testrunner/local/execution.py | 5 - deps/v8/tools/testrunner/local/progress.py | 21 +- deps/v8/tools/testrunner/local/statusfile.py | 132 +- .../testrunner/local/statusfile_unittest.py | 163 + deps/v8/tools/testrunner/local/testsuite.py | 115 +- .../testrunner/local/testsuite_unittest.py | 98 + deps/v8/tools/testrunner/local/utils.py | 21 + deps/v8/tools/testrunner/local/variants.py | 32 + .../testrunner/network/network_execution.py | 1 - deps/v8/tools/testrunner/objects/testcase.py | 9 +- deps/v8/tools/testrunner/server/main.py | 2 +- .../testrunner/utils/dump_build_config.py | 26 + deps/v8/tools/tickprocessor-driver.js | 3 +- deps/v8/tools/tickprocessor.js | 34 +- deps/v8/tools/try_perf.py | 6 + deps/v8/tools/turbolizer-perf.py | 56 + deps/v8/tools/turbolizer/OWNERS | 1 + deps/v8/tools/turbolizer/README.md | 62 + deps/v8/tools/turbolizer/code-view.js | 172 + deps/v8/tools/turbolizer/constants.js | 24 + deps/v8/tools/turbolizer/disassembly-view.js | 245 + deps/v8/tools/turbolizer/edge.js | 79 + deps/v8/tools/turbolizer/empty-view.js | 19 + deps/v8/tools/turbolizer/expand-all.jpg | Bin 0 -> 2839 bytes deps/v8/tools/turbolizer/graph-layout.js | 493 ++ deps/v8/tools/turbolizer/graph-view.js | 1033 +++ deps/v8/tools/turbolizer/hide-selected.png | Bin 0 -> 3681 bytes deps/v8/tools/turbolizer/hide-unselected.png | Bin 0 -> 3701 bytes deps/v8/tools/turbolizer/index.html | 99 + deps/v8/tools/turbolizer/lang-disassembly.js | 14 + deps/v8/tools/turbolizer/layout-icon.png | Bin 0 -> 4577 bytes deps/v8/tools/turbolizer/left-arrow.png | Bin 0 -> 4175 bytes deps/v8/tools/turbolizer/live.png | Bin 0 -> 3730 bytes deps/v8/tools/turbolizer/monkey.js | 26 + deps/v8/tools/turbolizer/node.js | 147 + deps/v8/tools/turbolizer/right-arrow.png | Bin 0 -> 2774 bytes deps/v8/tools/turbolizer/schedule-view.js | 128 + deps/v8/tools/turbolizer/search.png | Bin 0 -> 3751 bytes deps/v8/tools/turbolizer/search2.png | Bin 0 -> 689 bytes deps/v8/tools/turbolizer/selection-broker.js | 99 + deps/v8/tools/turbolizer/selection.js | 108 + deps/v8/tools/turbolizer/text-view.js | 296 + deps/v8/tools/turbolizer/turbo-visualizer.css | 348 + deps/v8/tools/turbolizer/turbo-visualizer.js | 257 + deps/v8/tools/turbolizer/types.png | Bin 0 -> 753 bytes deps/v8/tools/turbolizer/upload-icon.png | Bin 0 -> 4747 bytes deps/v8/tools/turbolizer/util.js | 80 + deps/v8/tools/turbolizer/view.js | 45 + deps/v8/tools/v8heapconst.py | 397 +- deps/v8/tools/verify_source_deps.py | 2 +- deps/v8/tools/whitespace.txt | 3 +- 2386 files changed, 260277 insertions(+), 148300 deletions(-) create mode 100644 deps/v8/.gn rename deps/v8/{src/third_party/fdlibm/LICENSE => LICENSE.fdlibm} (100%) delete mode 100644 deps/v8/Makefile.nacl delete mode 100755 deps/v8/build/has_valgrind.py create mode 100644 deps/v8/build_overrides/build.gni create mode 100644 deps/v8/build_overrides/gtest.gni create mode 100644 deps/v8/build_overrides/v8.gni create mode 100644 deps/v8/gni/isolate.gni create mode 100644 deps/v8/gni/v8.gni rename deps/v8/{build => gypfiles}/OWNERS (100%) rename deps/v8/{build => gypfiles}/README.txt (100%) rename deps/v8/{build => gypfiles}/all.gyp (80%) rename deps/v8/{build => gypfiles}/config/win/msvs_dependencies.isolate (100%) rename deps/v8/{build => gypfiles}/coverage_wrapper.py (100%) rename deps/v8/{build => gypfiles}/detect_v8_host_arch.py (100%) rename deps/v8/{build => gypfiles}/download_gold_plugin.py (100%) rename deps/v8/{build => gypfiles}/features.gypi (100%) rename deps/v8/{build => gypfiles}/get_landmines.py (95%) rename deps/v8/{build => gypfiles}/gyp_environment.py (90%) rename deps/v8/{build => gypfiles}/gyp_v8 (95%) rename deps/v8/{build => gypfiles}/gyp_v8.py (100%) rename deps/v8/{build => gypfiles}/isolate.gypi (92%) rename deps/v8/{build => gypfiles}/landmine_utils.py (100%) rename deps/v8/{build => gypfiles}/landmines.py (99%) rename deps/v8/{build => gypfiles}/mac/asan.gyp (100%) create mode 100644 deps/v8/gypfiles/set_clang_warning_flags.gypi rename deps/v8/{build => gypfiles}/shim_headers.gypi (100%) rename deps/v8/{build => gypfiles}/standalone.gypi (85%) rename deps/v8/{build => gypfiles}/toolchain.gypi (95%) rename deps/v8/{build => gypfiles}/vs_toolchain.py (52%) create mode 100644 deps/v8/include/libplatform/DEPS create mode 100644 deps/v8/include/libplatform/v8-tracing.h create mode 100644 deps/v8/infra/mb/PRESUBMIT.py create mode 100644 deps/v8/infra/mb/mb_config.pyl create mode 100644 deps/v8/src/api-arguments-inl.h create mode 100644 deps/v8/src/arm/eh-frame-arm.cc create mode 100644 deps/v8/src/arm64/eh-frame-arm64.cc create mode 100644 deps/v8/src/asmjs/OWNERS create mode 100644 deps/v8/src/asmjs/asm-js.cc create mode 100644 deps/v8/src/asmjs/asm-js.h create mode 100644 deps/v8/src/asmjs/asm-typer.cc create mode 100644 deps/v8/src/asmjs/asm-typer.h create mode 100644 deps/v8/src/asmjs/asm-types.cc create mode 100644 deps/v8/src/asmjs/asm-types.h rename deps/v8/src/{wasm => asmjs}/asm-wasm-builder.cc (56%) rename deps/v8/src/{wasm => asmjs}/asm-wasm-builder.h (75%) delete mode 100644 deps/v8/src/ast/ast-expression-visitor.cc delete mode 100644 deps/v8/src/ast/ast-expression-visitor.h create mode 100644 deps/v8/src/ast/ast-traversal-visitor.h create mode 100644 deps/v8/src/ast/ast-type-bounds.h create mode 100644 deps/v8/src/ast/context-slot-cache.cc create mode 100644 deps/v8/src/ast/context-slot-cache.h rename deps/v8/src/{ => base}/atomic-utils.h (91%) delete mode 100644 deps/v8/src/base/atomicops_internals_portable.h create mode 100644 deps/v8/src/base/debug/stack_trace.cc create mode 100644 deps/v8/src/base/debug/stack_trace.h create mode 100644 deps/v8/src/base/debug/stack_trace_android.cc create mode 100644 deps/v8/src/base/debug/stack_trace_posix.cc create mode 100644 deps/v8/src/base/debug/stack_trace_win.cc create mode 100644 deps/v8/src/base/file-utils.cc create mode 100644 deps/v8/src/base/file-utils.h create mode 100644 deps/v8/src/base/format-macros.h create mode 100644 deps/v8/src/base/free_deleter.h rename deps/v8/src/{ => base}/hashmap.h (81%) create mode 100644 deps/v8/src/base/ieee754.cc create mode 100644 deps/v8/src/base/ieee754.h delete mode 100644 deps/v8/src/base/smart-pointers.h delete mode 100644 deps/v8/src/builtins.cc delete mode 100644 deps/v8/src/builtins.h rename deps/v8/src/{ => builtins}/arm/builtins-arm.cc (75%) rename deps/v8/src/{ => builtins}/arm64/builtins-arm64.cc (76%) create mode 100644 deps/v8/src/builtins/builtins-api.cc create mode 100644 deps/v8/src/builtins/builtins-array.cc create mode 100644 deps/v8/src/builtins/builtins-arraybuffer.cc create mode 100644 deps/v8/src/builtins/builtins-boolean.cc create mode 100644 deps/v8/src/builtins/builtins-call.cc create mode 100644 deps/v8/src/builtins/builtins-callsite.cc create mode 100644 deps/v8/src/builtins/builtins-conversion.cc create mode 100644 deps/v8/src/builtins/builtins-dataview.cc create mode 100644 deps/v8/src/builtins/builtins-date.cc create mode 100644 deps/v8/src/builtins/builtins-debug.cc create mode 100644 deps/v8/src/builtins/builtins-error.cc create mode 100644 deps/v8/src/builtins/builtins-function.cc create mode 100644 deps/v8/src/builtins/builtins-generator.cc create mode 100644 deps/v8/src/builtins/builtins-global.cc create mode 100644 deps/v8/src/builtins/builtins-handler.cc create mode 100644 deps/v8/src/builtins/builtins-internal.cc create mode 100644 deps/v8/src/builtins/builtins-interpreter.cc create mode 100644 deps/v8/src/builtins/builtins-json.cc create mode 100644 deps/v8/src/builtins/builtins-math.cc create mode 100644 deps/v8/src/builtins/builtins-number.cc create mode 100644 deps/v8/src/builtins/builtins-object.cc create mode 100644 deps/v8/src/builtins/builtins-proxy.cc create mode 100644 deps/v8/src/builtins/builtins-reflect.cc create mode 100644 deps/v8/src/builtins/builtins-sharedarraybuffer.cc create mode 100644 deps/v8/src/builtins/builtins-string.cc create mode 100644 deps/v8/src/builtins/builtins-symbol.cc create mode 100644 deps/v8/src/builtins/builtins-typedarray.cc create mode 100644 deps/v8/src/builtins/builtins-utils.h create mode 100644 deps/v8/src/builtins/builtins.cc create mode 100644 deps/v8/src/builtins/builtins.h rename deps/v8/src/{ => builtins}/ia32/builtins-ia32.cc (75%) create mode 100644 deps/v8/src/builtins/mips/OWNERS rename deps/v8/src/{ => builtins}/mips/builtins-mips.cc (74%) create mode 100644 deps/v8/src/builtins/mips64/OWNERS rename deps/v8/src/{ => builtins}/mips64/builtins-mips64.cc (74%) create mode 100644 deps/v8/src/builtins/ppc/OWNERS rename deps/v8/src/{ => builtins}/ppc/builtins-ppc.cc (76%) create mode 100644 deps/v8/src/builtins/s390/OWNERS rename deps/v8/src/{ => builtins}/s390/builtins-s390.cc (76%) rename deps/v8/src/{ => builtins}/x64/builtins-x64.cc (76%) create mode 100644 deps/v8/src/builtins/x87/OWNERS rename deps/v8/src/{ => builtins}/x87/builtins-x87.cc (75%) create mode 100644 deps/v8/src/code-events.h create mode 100644 deps/v8/src/code-stub-assembler.cc create mode 100644 deps/v8/src/code-stub-assembler.h create mode 100644 deps/v8/src/compiler-dispatcher/compiler-dispatcher-job.cc create mode 100644 deps/v8/src/compiler-dispatcher/compiler-dispatcher-job.h rename deps/v8/src/{ => compiler-dispatcher}/optimizing-compile-dispatcher.cc (80%) rename deps/v8/src/{ => compiler-dispatcher}/optimizing-compile-dispatcher.h (82%) create mode 100644 deps/v8/src/compiler/arm/unwinding-info-writer-arm.cc create mode 100644 deps/v8/src/compiler/arm/unwinding-info-writer-arm.h create mode 100644 deps/v8/src/compiler/arm64/unwinding-info-writer-arm64.cc create mode 100644 deps/v8/src/compiler/arm64/unwinding-info-writer-arm64.h create mode 100644 deps/v8/src/compiler/bytecode-loop-analysis.cc create mode 100644 deps/v8/src/compiler/bytecode-loop-analysis.h delete mode 100644 deps/v8/src/compiler/change-lowering.cc delete mode 100644 deps/v8/src/compiler/change-lowering.h create mode 100644 deps/v8/src/compiler/checkpoint-elimination.cc create mode 100644 deps/v8/src/compiler/checkpoint-elimination.h delete mode 100644 deps/v8/src/compiler/coalesced-live-ranges.cc delete mode 100644 deps/v8/src/compiler/coalesced-live-ranges.h create mode 100644 deps/v8/src/compiler/code-assembler.cc create mode 100644 deps/v8/src/compiler/code-assembler.h delete mode 100644 deps/v8/src/compiler/code-stub-assembler.cc delete mode 100644 deps/v8/src/compiler/code-stub-assembler.h create mode 100644 deps/v8/src/compiler/effect-control-linearizer.cc create mode 100644 deps/v8/src/compiler/effect-control-linearizer.h delete mode 100644 deps/v8/src/compiler/greedy-allocator.cc delete mode 100644 deps/v8/src/compiler/greedy-allocator.h create mode 100644 deps/v8/src/compiler/loop-variable-optimizer.cc create mode 100644 deps/v8/src/compiler/loop-variable-optimizer.h create mode 100644 deps/v8/src/compiler/memory-optimizer.cc create mode 100644 deps/v8/src/compiler/memory-optimizer.h create mode 100644 deps/v8/src/compiler/operation-typer.cc create mode 100644 deps/v8/src/compiler/operation-typer.h create mode 100644 deps/v8/src/compiler/redundancy-elimination.cc create mode 100644 deps/v8/src/compiler/redundancy-elimination.h create mode 100644 deps/v8/src/compiler/store-store-elimination.cc create mode 100644 deps/v8/src/compiler/store-store-elimination.h create mode 100644 deps/v8/src/compiler/unwinding-info-writer.h create mode 100644 deps/v8/src/compiler/x64/unwinding-info-writer-x64.cc create mode 100644 deps/v8/src/compiler/x64/unwinding-info-writer-x64.h create mode 100644 deps/v8/src/counters-inl.h create mode 100644 deps/v8/src/deoptimize-reason.cc create mode 100644 deps/v8/src/deoptimize-reason.h create mode 100644 deps/v8/src/eh-frame.cc create mode 100644 deps/v8/src/eh-frame.h create mode 100644 deps/v8/src/extensions/ignition-statistics-extension.cc create mode 100644 deps/v8/src/extensions/ignition-statistics-extension.h create mode 100644 deps/v8/src/heap/array-buffer-tracker-inl.h create mode 100644 deps/v8/src/heap/code-stats.cc create mode 100644 deps/v8/src/heap/code-stats.h create mode 100644 deps/v8/src/heap/marking.h create mode 100644 deps/v8/src/ic/handler-configuration.h create mode 100644 deps/v8/src/inspector/BUILD.gn create mode 100644 deps/v8/src/inspector/inspector.gyp create mode 100644 deps/v8/src/inspector/js_protocol.json create mode 100644 deps/v8/src/interpreter/bytecode-array-writer.cc create mode 100644 deps/v8/src/interpreter/bytecode-array-writer.h create mode 100644 deps/v8/src/interpreter/bytecode-dead-code-optimizer.cc create mode 100644 deps/v8/src/interpreter/bytecode-dead-code-optimizer.h create mode 100644 deps/v8/src/interpreter/bytecode-decoder.cc create mode 100644 deps/v8/src/interpreter/bytecode-decoder.h create mode 100644 deps/v8/src/interpreter/bytecode-flags.cc create mode 100644 deps/v8/src/interpreter/bytecode-flags.h create mode 100644 deps/v8/src/interpreter/bytecode-label.cc create mode 100644 deps/v8/src/interpreter/bytecode-label.h create mode 100644 deps/v8/src/interpreter/bytecode-peephole-optimizer.cc create mode 100644 deps/v8/src/interpreter/bytecode-peephole-optimizer.h create mode 100644 deps/v8/src/interpreter/bytecode-peephole-table.h create mode 100644 deps/v8/src/interpreter/bytecode-pipeline.cc create mode 100644 deps/v8/src/interpreter/bytecode-pipeline.h create mode 100644 deps/v8/src/interpreter/bytecode-register-optimizer.cc create mode 100644 deps/v8/src/interpreter/bytecode-register-optimizer.h create mode 100644 deps/v8/src/interpreter/bytecode-register.cc create mode 100644 deps/v8/src/interpreter/bytecode-register.h create mode 100644 deps/v8/src/interpreter/mkpeephole.cc delete mode 100644 deps/v8/src/interpreter/source-position-table.h delete mode 100644 deps/v8/src/js/generator.js create mode 100644 deps/v8/src/js/harmony-async-await.js delete mode 100644 deps/v8/src/js/harmony-object-observe.js delete mode 100644 deps/v8/src/js/harmony-regexp-exec.js delete mode 100644 deps/v8/src/js/harmony-sharedarraybuffer.js delete mode 100644 deps/v8/src/js/harmony-species.js delete mode 100644 deps/v8/src/js/harmony-unicode-regexps.js create mode 100644 deps/v8/src/js/icu-case-mapping.js create mode 100644 deps/v8/src/js/intl-extra.js delete mode 100644 deps/v8/src/js/json.js delete mode 100644 deps/v8/src/js/object-observe.js delete mode 100644 deps/v8/src/js/promise-extra.js delete mode 100644 deps/v8/src/js/uri.js create mode 100644 deps/v8/src/json-parser.cc create mode 100644 deps/v8/src/json-stringifier.cc create mode 100644 deps/v8/src/libplatform/tracing/trace-buffer.cc create mode 100644 deps/v8/src/libplatform/tracing/trace-buffer.h create mode 100644 deps/v8/src/libplatform/tracing/trace-config.cc create mode 100644 deps/v8/src/libplatform/tracing/trace-object.cc create mode 100644 deps/v8/src/libplatform/tracing/trace-writer.cc create mode 100644 deps/v8/src/libplatform/tracing/trace-writer.h create mode 100644 deps/v8/src/libplatform/tracing/tracing-controller.cc create mode 100644 deps/v8/src/libsampler/DEPS create mode 100644 deps/v8/src/libsampler/sampler.cc create mode 100644 deps/v8/src/libsampler/sampler.h create mode 100644 deps/v8/src/parsing/parse-info.cc create mode 100644 deps/v8/src/parsing/parse-info.h create mode 100644 deps/v8/src/profiler/profiler-listener.cc create mode 100644 deps/v8/src/profiler/profiler-listener.h delete mode 100644 deps/v8/src/profiler/sampler.cc delete mode 100644 deps/v8/src/profiler/sampler.h create mode 100644 deps/v8/src/profiler/tick-sample.cc create mode 100644 deps/v8/src/profiler/tick-sample.h create mode 100644 deps/v8/src/runtime/runtime-error.cc delete mode 100644 deps/v8/src/runtime/runtime-json.cc delete mode 100644 deps/v8/src/runtime/runtime-observe.cc delete mode 100644 deps/v8/src/runtime/runtime-uri.cc create mode 100644 deps/v8/src/runtime/runtime-wasm.cc rename deps/v8/src/{interpreter => }/source-position-table.cc (50%) create mode 100644 deps/v8/src/source-position-table.h delete mode 100644 deps/v8/src/third_party/fdlibm/README.v8 delete mode 100644 deps/v8/src/third_party/fdlibm/fdlibm.cc delete mode 100644 deps/v8/src/third_party/fdlibm/fdlibm.h delete mode 100644 deps/v8/src/third_party/fdlibm/fdlibm.js delete mode 100644 deps/v8/src/typing-asm.cc delete mode 100644 deps/v8/src/typing-asm.h delete mode 100644 deps/v8/src/typing-reset.cc delete mode 100644 deps/v8/src/typing-reset.h create mode 100644 deps/v8/src/uri.cc create mode 100644 deps/v8/src/uri.h create mode 100644 deps/v8/src/v8.gyp create mode 100644 deps/v8/src/value-serializer.cc create mode 100644 deps/v8/src/value-serializer.h create mode 100644 deps/v8/src/wasm/leb-helper.h create mode 100644 deps/v8/src/wasm/switch-logic.cc create mode 100644 deps/v8/src/wasm/switch-logic.h create mode 100644 deps/v8/src/wasm/wasm-debug.cc create mode 100644 deps/v8/src/wasm/wasm-debug.h create mode 100644 deps/v8/src/wasm/wasm-external-refs.cc create mode 100644 deps/v8/src/wasm/wasm-function-name-table.cc create mode 100644 deps/v8/src/wasm/wasm-function-name-table.h create mode 100644 deps/v8/src/wasm/wasm-interpreter.cc create mode 100644 deps/v8/src/wasm/wasm-interpreter.h create mode 100644 deps/v8/src/x64/eh-frame-x64.cc create mode 100644 deps/v8/test/BUILD.gn create mode 100644 deps/v8/test/cctest/BUILD.gn create mode 100644 deps/v8/test/cctest/asmjs/OWNERS create mode 100644 deps/v8/test/cctest/asmjs/test-asm-typer.cc create mode 100644 deps/v8/test/cctest/compiler/code-assembler-tester.h delete mode 100644 deps/v8/test/cctest/compiler/test-changes-lowering.cc rename deps/v8/test/cctest/compiler/{test-code-stub-assembler.cc => test-code-assembler.cc} (54%) delete mode 100644 deps/v8/test/cctest/compiler/test-pipeline.cc create mode 100644 deps/v8/test/cctest/compiler/test-run-load-store.cc create mode 100644 deps/v8/test/cctest/compiler/test-run-unwinding-info.cc create mode 100644 deps/v8/test/cctest/compiler/test-run-wasm-machops.cc delete mode 100644 deps/v8/test/cctest/expression-type-collector.cc delete mode 100644 deps/v8/test/cctest/expression-type-collector.h rename deps/v8/test/cctest/heap/{utils-inl.h => heap-utils.cc} (53%) create mode 100644 deps/v8/test/cctest/heap/heap-utils.h create mode 100644 deps/v8/test/cctest/heap/test-array-buffer-tracker.cc create mode 100644 deps/v8/test/cctest/heap/test-page-promotion.cc create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/Generators.golden create mode 100644 deps/v8/test/cctest/interpreter/source-position-matcher.cc create mode 100644 deps/v8/test/cctest/interpreter/source-position-matcher.h create mode 100644 deps/v8/test/cctest/interpreter/test-source-positions.cc create mode 100644 deps/v8/test/cctest/libplatform/test-tracing.cc create mode 100644 deps/v8/test/cctest/libsampler/test-sampler.cc create mode 100644 deps/v8/test/cctest/test-access-checks.cc delete mode 100644 deps/v8/test/cctest/test-asm-validator.cc delete mode 100644 deps/v8/test/cctest/test-ast-expression-visitor.cc create mode 100644 deps/v8/test/cctest/test-code-cache.cc create mode 100644 deps/v8/test/cctest/test-code-layout.cc create mode 100644 deps/v8/test/cctest/test-code-stub-assembler.cc delete mode 100644 deps/v8/test/cctest/test-microtask-delivery.cc delete mode 100644 deps/v8/test/cctest/test-object-observe.cc create mode 100644 deps/v8/test/cctest/test-object.cc delete mode 100644 deps/v8/test/cctest/test-reloc-info.cc delete mode 100644 deps/v8/test/cctest/test-typing-reset.cc create mode 100644 deps/v8/test/cctest/test-usecounters.cc create mode 100644 deps/v8/test/cctest/wasm/test-run-wasm-asmjs.cc create mode 100644 deps/v8/test/cctest/wasm/test-run-wasm-interpreter.cc create mode 100644 deps/v8/test/cctest/wasm/test-run-wasm-relocation.cc create mode 100644 deps/v8/test/cctest/wasm/test-wasm-function-name-table.cc create mode 100644 deps/v8/test/cctest/wasm/test-wasm-stack.cc create mode 100644 deps/v8/test/cctest/wasm/test-wasm-trap-position.cc delete mode 100644 deps/v8/test/ignition.gyp create mode 100644 deps/v8/test/inspector_protocol_parser_test/BUILD.gn create mode 100644 deps/v8/test/inspector_protocol_parser_test/DEPS create mode 100644 deps/v8/test/inspector_protocol_parser_test/RunTests.cpp create mode 100644 deps/v8/test/inspector_protocol_parser_test/inspector_protocol_parser_test.gyp rename deps/v8/test/{ignition.isolate => inspector_protocol_parser_test/inspector_protocol_parser_test.isolate} (55%) create mode 100644 deps/v8/test/inspector_protocol_parser_test/inspector_protocol_parser_test.status create mode 100644 deps/v8/test/intl/date-format/calendar-with-multiple-type-subtags.js create mode 100644 deps/v8/test/intl/extra-flag.js create mode 100644 deps/v8/test/intl/general/case-mapping.js create mode 100644 deps/v8/test/intl/general/getCanonicalLocales.js create mode 100644 deps/v8/test/intl/no-extra-flag.js create mode 100644 deps/v8/test/intl/regress-4870.js create mode 100644 deps/v8/test/intl/regress-5179.js create mode 100644 deps/v8/test/js-perf-test/Generators/generators.js create mode 100644 deps/v8/test/js-perf-test/Generators/run.js create mode 100644 deps/v8/test/js-perf-test/PropertyQueries/PropertyQueries.json create mode 100644 deps/v8/test/js-perf-test/PropertyQueries/property-queries.js create mode 100644 deps/v8/test/js-perf-test/PropertyQueries/run.js delete mode 100644 deps/v8/test/message/const-decl-no-init-sloppy.js create mode 100644 deps/v8/test/message/generators-throw1.js create mode 100644 deps/v8/test/message/generators-throw1.out create mode 100644 deps/v8/test/message/generators-throw2.js create mode 100644 deps/v8/test/message/generators-throw2.out delete mode 100644 deps/v8/test/message/no-legacy-const-2.js delete mode 100644 deps/v8/test/message/no-legacy-const-2.out delete mode 100644 deps/v8/test/message/no-legacy-const-3.js delete mode 100644 deps/v8/test/message/no-legacy-const-3.out delete mode 100644 deps/v8/test/message/no-legacy-const.js delete mode 100644 deps/v8/test/message/no-legacy-const.out create mode 100644 deps/v8/test/message/syntactic-tail-call-in-binop-lhs.js create mode 100644 deps/v8/test/message/syntactic-tail-call-in-binop-lhs.out create mode 100644 deps/v8/test/message/syntactic-tail-call-in-binop-rhs.js create mode 100644 deps/v8/test/message/syntactic-tail-call-in-binop-rhs.out create mode 100644 deps/v8/test/message/syntactic-tail-call-in-comma.js create mode 100644 deps/v8/test/message/syntactic-tail-call-in-comma.out create mode 100644 deps/v8/test/message/syntactic-tail-call-in-extends.js create mode 100644 deps/v8/test/message/syntactic-tail-call-in-extends.out create mode 100644 deps/v8/test/message/syntactic-tail-call-in-for-in.js create mode 100644 deps/v8/test/message/syntactic-tail-call-in-for-in.out create mode 100644 deps/v8/test/message/syntactic-tail-call-in-for-of.js create mode 100644 deps/v8/test/message/syntactic-tail-call-in-for-of.out create mode 100644 deps/v8/test/message/syntactic-tail-call-in-logical-and.js create mode 100644 deps/v8/test/message/syntactic-tail-call-in-logical-and.out create mode 100644 deps/v8/test/message/syntactic-tail-call-in-logical-or.js create mode 100644 deps/v8/test/message/syntactic-tail-call-in-logical-or.out create mode 100644 deps/v8/test/message/syntactic-tail-call-in-subclass.js create mode 100644 deps/v8/test/message/syntactic-tail-call-in-subclass.out create mode 100644 deps/v8/test/message/syntactic-tail-call-in-try-catch-finally.js create mode 100644 deps/v8/test/message/syntactic-tail-call-in-try-catch-finally.out create mode 100644 deps/v8/test/message/syntactic-tail-call-in-try-try-catch-finally.js create mode 100644 deps/v8/test/message/syntactic-tail-call-in-try-try-catch-finally.out create mode 100644 deps/v8/test/message/syntactic-tail-call-in-try.js create mode 100644 deps/v8/test/message/syntactic-tail-call-in-try.out create mode 100644 deps/v8/test/message/syntactic-tail-call-inside-member-expr.js create mode 100644 deps/v8/test/message/syntactic-tail-call-inside-member-expr.out create mode 100644 deps/v8/test/message/syntactic-tail-call-of-eval.js create mode 100644 deps/v8/test/message/syntactic-tail-call-of-eval.out create mode 100644 deps/v8/test/message/syntactic-tail-call-of-identifier.js create mode 100644 deps/v8/test/message/syntactic-tail-call-of-identifier.out create mode 100644 deps/v8/test/message/syntactic-tail-call-of-new.js create mode 100644 deps/v8/test/message/syntactic-tail-call-of-new.out create mode 100644 deps/v8/test/message/syntactic-tail-call-sloppy.js create mode 100644 deps/v8/test/message/syntactic-tail-call-sloppy.out create mode 100644 deps/v8/test/message/syntactic-tail-call-without-return.js create mode 100644 deps/v8/test/message/syntactic-tail-call-without-return.out create mode 100644 deps/v8/test/mjsunit/array-indexing-receiver.js delete mode 100644 deps/v8/test/mjsunit/array-push7.js create mode 100644 deps/v8/test/mjsunit/asm-directive.js create mode 100644 deps/v8/test/mjsunit/asm/asm-validation.js delete mode 100644 deps/v8/test/mjsunit/asm/construct-double.js delete mode 100644 deps/v8/test/mjsunit/asm/double-hi.js delete mode 100644 deps/v8/test/mjsunit/asm/double-lo.js create mode 100644 deps/v8/test/mjsunit/asm/load-elimination.js delete mode 100644 deps/v8/test/mjsunit/call-counts.js delete mode 100644 deps/v8/test/mjsunit/callsite.js create mode 100644 deps/v8/test/mjsunit/compiler/accessor-exceptions1.js create mode 100644 deps/v8/test/mjsunit/compiler/accessor-exceptions2.js create mode 100644 deps/v8/test/mjsunit/compiler/deopt-accessors1.js create mode 100644 deps/v8/test/mjsunit/compiler/deopt-accessors2.js create mode 100644 deps/v8/test/mjsunit/compiler/deopt-accessors3.js create mode 100644 deps/v8/test/mjsunit/compiler/deopt-accessors4.js create mode 100644 deps/v8/test/mjsunit/compiler/deopt-accessors5.js create mode 100644 deps/v8/test/mjsunit/compiler/deopt-accessors6.js create mode 100644 deps/v8/test/mjsunit/compiler/deopt-accessors7.js rename deps/v8/test/mjsunit/{regress/regress-crbug-610228.js => compiler/dont-constant-fold-deopting-checks.js} (60%) create mode 100644 deps/v8/test/mjsunit/compiler/inline-dead-jscreate.js create mode 100644 deps/v8/test/mjsunit/compiler/inlined-array-pop-getter1.js create mode 100644 deps/v8/test/mjsunit/compiler/inlined-array-pop-getter2.js create mode 100644 deps/v8/test/mjsunit/compiler/inlined-array-pop-opt.js create mode 100644 deps/v8/test/mjsunit/compiler/integral32-add-sub.js create mode 100644 deps/v8/test/mjsunit/compiler/math-mul.js create mode 100644 deps/v8/test/mjsunit/compiler/optimized-float32array-length.js create mode 100644 deps/v8/test/mjsunit/compiler/optimized-float64array-length.js create mode 100644 deps/v8/test/mjsunit/compiler/optimized-instanceof-1.js create mode 100644 deps/v8/test/mjsunit/compiler/optimized-instanceof-2.js create mode 100644 deps/v8/test/mjsunit/compiler/optimized-int32array-length.js create mode 100644 deps/v8/test/mjsunit/compiler/optimized-uint32array-length.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-5074.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-5100.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-5129.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-5158.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-5278.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-607493.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-621423.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-625558.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-628403.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-628516.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-628773.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-630611.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-633497.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-loop-variable-if.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-loop-variable-unsigned.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-number-is-hole-nan.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-store-holey-double-array.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-string-to-number-add.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-truncate-number-or-undefined-to-float64.js delete mode 100644 deps/v8/test/mjsunit/compiler/regress-valueof.js create mode 100644 deps/v8/test/mjsunit/compiler/turbo-number-feedback.js create mode 100644 deps/v8/test/mjsunit/debug-eval-scope.js create mode 100644 deps/v8/test/mjsunit/debug-evaluate-shadowed-context-2.js create mode 100644 deps/v8/test/mjsunit/debug-exceptions.js create mode 100644 deps/v8/test/mjsunit/debug-generator-break-on-stack.js create mode 100644 deps/v8/test/mjsunit/debug-generator-break.js create mode 100644 deps/v8/test/mjsunit/debug-liveedit-exceptions.js delete mode 100644 deps/v8/test/mjsunit/debug-liveedit-patch-positions.js create mode 100644 deps/v8/test/mjsunit/debug-scopes-suspended-generators.js delete mode 100644 deps/v8/test/mjsunit/debug-sourceslice.js create mode 100644 deps/v8/test/mjsunit/debug-stack-check-position.js delete mode 100644 deps/v8/test/mjsunit/double-intrinsics.js create mode 100644 deps/v8/test/mjsunit/eagerly-parsed-lazily-compiled-functions.js create mode 100644 deps/v8/test/mjsunit/es6/array-concat-revoked-proxy-1.js create mode 100644 deps/v8/test/mjsunit/es6/array-concat-revoked-proxy-2.js rename deps/v8/test/mjsunit/{harmony => es6}/array-species-constructor-accessor.js (94%) rename deps/v8/test/mjsunit/{harmony => es6}/array-species-constructor-delete.js (94%) rename deps/v8/test/mjsunit/{harmony => es6}/array-species-constructor.js (94%) rename deps/v8/test/mjsunit/{harmony => es6}/array-species-delete.js (94%) rename deps/v8/test/mjsunit/{harmony => es6}/array-species-modified.js (94%) create mode 100644 deps/v8/test/mjsunit/es6/array-species-neg-zero.js rename deps/v8/test/mjsunit/{harmony => es6}/array-species-parent-constructor.js (94%) rename deps/v8/test/mjsunit/{harmony => es6}/array-species-proto.js (94%) rename deps/v8/test/mjsunit/{harmony => es6}/array-species.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/arraybuffer-species.js (97%) rename deps/v8/test/mjsunit/{harmony => es6}/block-conflicts-sloppy.js (96%) rename deps/v8/test/mjsunit/{harmony => es6}/block-const-assign-sloppy.js (99%) delete mode 100644 deps/v8/test/mjsunit/es6/block-early-errors.js rename deps/v8/test/mjsunit/{harmony => es6}/block-eval-var-over-let.js (82%) rename deps/v8/test/mjsunit/{harmony => es6}/block-for-sloppy.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/block-leave-sloppy.js (98%) rename deps/v8/test/mjsunit/{harmony => es6}/block-let-crankshaft-sloppy.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/block-let-declaration-sloppy.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/block-let-semantics-sloppy.js (98%) delete mode 100644 deps/v8/test/mjsunit/es6/block-non-strict-errors.js rename deps/v8/test/mjsunit/{harmony => es6}/block-scoping-sloppy.js (98%) rename deps/v8/test/mjsunit/{harmony => es6}/block-scoping-top-level-sloppy.js (92%) create mode 100644 deps/v8/test/mjsunit/es6/block-sloppy-function.js create mode 100644 deps/v8/test/mjsunit/es6/catch-parameter-redeclaration.js create mode 100644 deps/v8/test/mjsunit/es6/debug-exception-generators.js create mode 100644 deps/v8/test/mjsunit/es6/debug-promises/evaluate-across-microtasks.js delete mode 100644 deps/v8/test/mjsunit/es6/debug-promises/events.js delete mode 100644 deps/v8/test/mjsunit/es6/debug-promises/resolve-after-aborted-try-finally.js delete mode 100644 deps/v8/test/mjsunit/es6/debug-promises/resolve-after-try-catch.js delete mode 100644 deps/v8/test/mjsunit/es6/debug-promises/rethrow-in-try-finally.js create mode 100644 deps/v8/test/mjsunit/es6/debug-promises/throw-finally-caught-all.js create mode 100644 deps/v8/test/mjsunit/es6/debug-scope-default-param-with-eval.js create mode 100644 deps/v8/test/mjsunit/es6/for-each-in-catch.js rename deps/v8/test/mjsunit/{harmony => es6}/function-name.js (98%) create mode 100644 deps/v8/test/mjsunit/es6/generator-destructuring.js rename deps/v8/test/mjsunit/{harmony/instanceof-es6.js => es6/instanceof.js} (74%) rename deps/v8/test/mjsunit/{harmony => es6}/iterator-close.js (95%) delete mode 100644 deps/v8/test/mjsunit/es6/legacy-subclassing.js delete mode 100644 deps/v8/test/mjsunit/es6/no-unicode-regexp-flag.js rename deps/v8/test/mjsunit/{harmony => es6}/promise-species.js (96%) delete mode 100644 deps/v8/test/mjsunit/es6/regress/regress-3750.js rename deps/v8/test/mjsunit/{harmony => es6}/regress/regress-4482.js (91%) rename deps/v8/test/mjsunit/{harmony => es6}/species.js (98%) rename deps/v8/test/mjsunit/{harmony => es6}/string-match.js (94%) rename deps/v8/test/mjsunit/{harmony => es6}/string-replace.js (94%) rename deps/v8/test/mjsunit/{harmony => es6}/string-split.js (94%) create mode 100644 deps/v8/test/mjsunit/es6/typedarray-set-length-internal.js rename deps/v8/test/mjsunit/{harmony => es6}/typedarray-species.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/unicode-character-ranges.js (98%) rename deps/v8/test/mjsunit/{harmony => es6}/unicode-escapes-in-regexps.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/unicode-regexp-backrefs.js (96%) rename deps/v8/test/mjsunit/{harmony => es6}/unicode-regexp-ignore-case-noi18n.js (98%) rename deps/v8/test/mjsunit/{harmony => es6}/unicode-regexp-ignore-case.js (98%) rename deps/v8/test/mjsunit/{harmony => es6}/unicode-regexp-last-index.js (98%) rename deps/v8/test/mjsunit/{harmony => es6}/unicode-regexp-restricted-syntax.js (98%) rename deps/v8/test/mjsunit/{harmony => es6}/unicode-regexp-unanchored-advance.js (87%) rename deps/v8/test/mjsunit/{harmony => es6}/unicode-regexp-zero-length.js (98%) create mode 100644 deps/v8/test/mjsunit/es7/array-includes-receiver.js rename deps/v8/test/mjsunit/{harmony => es7}/exponentiation-operator.js (99%) delete mode 100644 deps/v8/test/mjsunit/es7/object-observe-runtime.js delete mode 100644 deps/v8/test/mjsunit/es7/object-observe.js delete mode 100644 deps/v8/test/mjsunit/es7/regress/regress-443982.js create mode 100644 deps/v8/test/mjsunit/es7/regress/regress-633883.js create mode 100644 deps/v8/test/mjsunit/es7/regress/regress-634269.js create mode 100644 deps/v8/test/mjsunit/es7/regress/regress-634273.js create mode 100644 deps/v8/test/mjsunit/es7/regress/regress-634357.js create mode 100644 deps/v8/test/mjsunit/es8/syntactic-tail-call-parsing-sloppy.js create mode 100644 deps/v8/test/mjsunit/es8/syntactic-tail-call-parsing.js create mode 100644 deps/v8/test/mjsunit/es8/syntactic-tail-call-simple.js create mode 100644 deps/v8/test/mjsunit/es8/syntactic-tail-call.js create mode 100644 deps/v8/test/mjsunit/eval-origin.js create mode 100644 deps/v8/test/mjsunit/function-name-eval-shadowed.js create mode 100644 deps/v8/test/mjsunit/global-arrow-delete-this.js create mode 100644 deps/v8/test/mjsunit/harmony/array-concat-array-proto-getter.js create mode 100644 deps/v8/test/mjsunit/harmony/array-concat-array-proto.js create mode 100644 deps/v8/test/mjsunit/harmony/array-concat-object-proto-dict-getter.js create mode 100644 deps/v8/test/mjsunit/harmony/array-concat-object-proto-dict.js create mode 100644 deps/v8/test/mjsunit/harmony/array-concat-object-proto-generic-dict.js create mode 100644 deps/v8/test/mjsunit/harmony/array-concat-object-proto.js create mode 100644 deps/v8/test/mjsunit/harmony/async-arrow-lexical-arguments.js create mode 100644 deps/v8/test/mjsunit/harmony/async-arrow-lexical-new.target.js create mode 100644 deps/v8/test/mjsunit/harmony/async-arrow-lexical-super.js create mode 100644 deps/v8/test/mjsunit/harmony/async-arrow-lexical-this.js create mode 100644 deps/v8/test/mjsunit/harmony/async-await-basic.js create mode 100644 deps/v8/test/mjsunit/harmony/async-await-no-constructor.js create mode 100644 deps/v8/test/mjsunit/harmony/async-await-resolve-new.js create mode 100644 deps/v8/test/mjsunit/harmony/async-await-species.js create mode 100644 deps/v8/test/mjsunit/harmony/async-debug-basic.js create mode 100644 deps/v8/test/mjsunit/harmony/async-debug-caught-exception.js create mode 100644 deps/v8/test/mjsunit/harmony/async-debug-step-abort-at-break.js create mode 100644 deps/v8/test/mjsunit/harmony/async-debug-step-continue-at-break.js create mode 100644 deps/v8/test/mjsunit/harmony/async-debug-step-in-and-out.js create mode 100644 deps/v8/test/mjsunit/harmony/async-debug-step-in-out-out.js create mode 100644 deps/v8/test/mjsunit/harmony/async-debug-step-in.js create mode 100644 deps/v8/test/mjsunit/harmony/async-debug-step-nested.js create mode 100644 deps/v8/test/mjsunit/harmony/async-debug-step-next-constant.js create mode 100644 deps/v8/test/mjsunit/harmony/async-debug-step-next.js create mode 100644 deps/v8/test/mjsunit/harmony/async-debug-step-out.js create mode 100644 deps/v8/test/mjsunit/harmony/async-destructuring.js create mode 100644 deps/v8/test/mjsunit/harmony/async-function-debug-evaluate.js create mode 100644 deps/v8/test/mjsunit/harmony/async-function-debug-scopes.js create mode 100644 deps/v8/test/mjsunit/harmony/async-function-stacktrace.js delete mode 100644 deps/v8/test/mjsunit/harmony/block-sloppy-function.js create mode 100644 deps/v8/test/mjsunit/harmony/debug-async-break-on-stack.js create mode 100644 deps/v8/test/mjsunit/harmony/debug-async-break.js rename deps/v8/test/mjsunit/{es7/object-observe-debug-event.js => harmony/debug-async-function-async-task-event.js} (54%) create mode 100644 deps/v8/test/mjsunit/harmony/debug-async-liveedit.js create mode 100644 deps/v8/test/mjsunit/harmony/for-in.js create mode 100644 deps/v8/test/mjsunit/harmony/generators-turbo.js create mode 100644 deps/v8/test/mjsunit/harmony/mirror-async-function-promise.js create mode 100644 deps/v8/test/mjsunit/harmony/mirror-async-function.js create mode 100644 deps/v8/test/mjsunit/harmony/regexp-named-captures.js create mode 100644 deps/v8/test/mjsunit/harmony/regexp-property-binary.js create mode 100644 deps/v8/test/mjsunit/harmony/regexp-property-enumerated.js create mode 100644 deps/v8/test/mjsunit/harmony/regexp-property-lu-ui.js create mode 100644 deps/v8/test/mjsunit/harmony/regexp-property-special.js create mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-4904.js create mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-618603.js create mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-624300.js create mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-crbug-621111.js create mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-crbug-621496.js delete mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-observe-empty-double-array.js create mode 100644 deps/v8/test/mjsunit/harmony/sloppy-legacy-duplicate-generators.js create mode 100644 deps/v8/test/mjsunit/harmony/sloppy-no-duplicate-async.js create mode 100644 deps/v8/test/mjsunit/harmony/sloppy-no-duplicate-generators.js create mode 100644 deps/v8/test/mjsunit/harmony/trailing-commas-length.js create mode 100644 deps/v8/test/mjsunit/holy-double-no-arg-array.js create mode 100644 deps/v8/test/mjsunit/ignition/debug-break-mixed-stack.js create mode 100644 deps/v8/test/mjsunit/ignition/debug-step-mixed-stack.js delete mode 100644 deps/v8/test/mjsunit/ignition/elided-instruction-no-ignition.js create mode 100644 deps/v8/test/mjsunit/ignition/ignition-statistics-extension.js create mode 100644 deps/v8/test/mjsunit/ignition/osr-from-bytecode.js create mode 100644 deps/v8/test/mjsunit/ignition/osr-from-generator.js create mode 100644 deps/v8/test/mjsunit/ignition/regress-612386-smi-to-double-transition.js create mode 100644 deps/v8/test/mjsunit/ignition/regress-616064.js create mode 100644 deps/v8/test/mjsunit/ignition/regress-629792-source-position-on-jump.js create mode 100644 deps/v8/test/mjsunit/induction-variable-turbofan.js create mode 100644 deps/v8/test/mjsunit/json-stringify-holder.js delete mode 100644 deps/v8/test/mjsunit/lithium/SeqStringSetChar.js create mode 100644 deps/v8/test/mjsunit/realm-property-access.js delete mode 100644 deps/v8/test/mjsunit/regexp-lastIndex.js create mode 100644 deps/v8/test/mjsunit/regress-604044.js rename deps/v8/test/mjsunit/{harmony/modules.js => regress-crbug-619476.js} (61%) create mode 100644 deps/v8/test/mjsunit/regress/redeclaration-error-types.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-1246.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-3315.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-349870.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-356589.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-403292.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-417709a.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-417709b.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-4665-2.js create mode 100644 deps/v8/test/mjsunit/regress/regress-4703.js create mode 100644 deps/v8/test/mjsunit/regress/regress-4815.js create mode 100644 deps/v8/test/mjsunit/regress/regress-4908.js create mode 100644 deps/v8/test/mjsunit/regress/regress-4945.js create mode 100644 deps/v8/test/mjsunit/regress/regress-4964.js create mode 100644 deps/v8/test/mjsunit/regress/regress-4967.js create mode 100644 deps/v8/test/mjsunit/regress/regress-4971.js create mode 100644 deps/v8/test/mjsunit/regress/regress-5004.js create mode 100644 deps/v8/test/mjsunit/regress/regress-5018.js create mode 100644 deps/v8/test/mjsunit/regress/regress-5071.js create mode 100644 deps/v8/test/mjsunit/regress/regress-5085.js create mode 100644 deps/v8/test/mjsunit/regress/regress-5106.js create mode 100644 deps/v8/test/mjsunit/regress/regress-5164.js create mode 100644 deps/v8/test/mjsunit/regress/regress-5173.js create mode 100644 deps/v8/test/mjsunit/regress/regress-5174.js create mode 100644 deps/v8/test/mjsunit/regress/regress-5178.js create mode 100644 deps/v8/test/mjsunit/regress/regress-5181.js create mode 100644 deps/v8/test/mjsunit/regress/regress-5205.js create mode 100644 deps/v8/test/mjsunit/regress/regress-5207.js create mode 100644 deps/v8/test/mjsunit/regress/regress-5213.js create mode 100644 deps/v8/test/mjsunit/regress/regress-5214.js rename deps/v8/test/mjsunit/{harmony/regexp-no-change-exec.js => regress/regress-5216.js} (60%) create mode 100644 deps/v8/test/mjsunit/regress/regress-5245.js create mode 100644 deps/v8/test/mjsunit/regress/regress-5252.js create mode 100644 deps/v8/test/mjsunit/regress/regress-5262.js create mode 100644 deps/v8/test/mjsunit/regress/regress-5275-1.js create mode 100644 deps/v8/test/mjsunit/regress/regress-5275-2.js create mode 100644 deps/v8/test/mjsunit/regress/regress-5279.js create mode 100644 deps/v8/test/mjsunit/regress/regress-5286.js create mode 100644 deps/v8/test/mjsunit/regress/regress-5342.js create mode 100644 deps/v8/test/mjsunit/regress/regress-585041.js create mode 100644 deps/v8/test/mjsunit/regress/regress-592352.js create mode 100644 deps/v8/test/mjsunit/regress/regress-599068-func-bindings.js create mode 100644 deps/v8/test/mjsunit/regress/regress-599717.js create mode 100644 deps/v8/test/mjsunit/regress/regress-599719.js create mode 100644 deps/v8/test/mjsunit/regress/regress-605470.js create mode 100644 deps/v8/test/mjsunit/regress/regress-606021.js create mode 100644 deps/v8/test/mjsunit/regress/regress-608630.js create mode 100644 deps/v8/test/mjsunit/regress/regress-610633.js create mode 100644 deps/v8/test/mjsunit/regress/regress-612146.js create mode 100644 deps/v8/test/mjsunit/regress/regress-612412.js create mode 100644 deps/v8/test/mjsunit/regress/regress-613928.js create mode 100644 deps/v8/test/mjsunit/regress/regress-615776.js create mode 100644 deps/v8/test/mjsunit/regress/regress-616386.js create mode 100644 deps/v8/test/mjsunit/regress/regress-617525.js create mode 100644 deps/v8/test/mjsunit/regress/regress-617526.js create mode 100644 deps/v8/test/mjsunit/regress/regress-617529.js create mode 100644 deps/v8/test/mjsunit/regress/regress-617882.js create mode 100644 deps/v8/test/mjsunit/regress/regress-618608.js create mode 100644 deps/v8/test/mjsunit/regress/regress-618657.js create mode 100644 deps/v8/test/mjsunit/regress/regress-619382.js create mode 100644 deps/v8/test/mjsunit/regress/regress-620553.js create mode 100644 deps/v8/test/mjsunit/regress/regress-620750.js create mode 100644 deps/v8/test/mjsunit/regress/regress-621869.js create mode 100644 deps/v8/test/mjsunit/regress/regress-622663.js create mode 100644 deps/v8/test/mjsunit/regress/regress-625121.js create mode 100644 deps/v8/test/mjsunit/regress/regress-631050.js create mode 100644 deps/v8/test/mjsunit/regress/regress-632289.js create mode 100644 deps/v8/test/mjsunit/regress/regress-633998.js create mode 100644 deps/v8/test/mjsunit/regress/regress-635429.js create mode 100644 deps/v8/test/mjsunit/regress/regress-638134.js create mode 100644 deps/v8/test/mjsunit/regress/regress-639270.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-320922.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-492526.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-495493.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-498142.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-515897.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-570651.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-582048.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-600257.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-600995.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-602184.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-602595.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-603463.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-604299.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-605060.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-605581.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-605862.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-608279.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-609029.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-609046.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-610207.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-612109.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-612142.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-613494.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-613570.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-613905.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-613919.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-614292.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-614644.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-614727.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-615774.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-616709-1.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-616709-2.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-617527.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-617567.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-618788.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-618845.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-620119.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-620253.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-620650.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-621361.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-621611.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-621816.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-624747.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-624919.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-625547.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-625590.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-626715.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-627828.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-627934.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-627935.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-628573.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-629062.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-629435.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-629823.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-629996.js rename deps/v8/test/mjsunit/regress/{regress-449070.js => regress-crbug-630559.js} (54%) create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-630561.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-630923.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-630951.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-630952.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-631318-1.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-631318-10.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-631318-11.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-631318-12.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-631318-13.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-631318-14.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-631318-15.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-631318-2.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-631318-3.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-631318-4.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-631318-5.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-631318-6.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-631318-7.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-631318-8.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-631318-9.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-631917.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-632800.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-633585.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-633884.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-633999.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-635798.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-638551.js rename deps/v8/test/mjsunit/regress/{regress-crbug-390925.js => regress-crbug-640369.js} (53%) create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-642056.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-644215.js create mode 100644 deps/v8/test/mjsunit/regress/regress-double-canonicalization.js create mode 100644 deps/v8/test/mjsunit/regress/regress-object-assign-deprecated-2.js create mode 100644 deps/v8/test/mjsunit/regress/regress-object-assign-deprecated.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-observe-map-cache.js create mode 100644 deps/v8/test/mjsunit/regress/regress-recurse-patch-binary-op.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-seqstrsetchar-ex1.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-seqstrsetchar-ex3.js create mode 100644 deps/v8/test/mjsunit/regress/regress-string-from-char-code-tonumber.js create mode 100644 deps/v8/test/mjsunit/regress/regress-v8-5254-1.js create mode 100644 deps/v8/test/mjsunit/regress/regress-v8-5254-2.js create mode 100644 deps/v8/test/mjsunit/regress/regress-v8-5255-1.js create mode 100644 deps/v8/test/mjsunit/regress/regress-v8-5255-2.js create mode 100644 deps/v8/test/mjsunit/regress/regress-v8-5255-3.js create mode 100644 deps/v8/test/mjsunit/regress/regress-wasm-crbug-599413.js create mode 100644 deps/v8/test/mjsunit/regress/regress-wasm-crbug-618602.js delete mode 100644 deps/v8/test/mjsunit/regress/string-set-char-deopt.js delete mode 100644 deps/v8/test/mjsunit/string-natives.js create mode 100644 deps/v8/test/mjsunit/string-wrapper.js create mode 100644 deps/v8/test/mjsunit/tools/dumpcpp.js create mode 100644 deps/v8/test/mjsunit/wasm/asm-wasm-switch.js create mode 100644 deps/v8/test/mjsunit/wasm/compiled-module-serialization.js create mode 100644 deps/v8/test/mjsunit/wasm/debug-disassembly.js create mode 100644 deps/v8/test/mjsunit/wasm/ensure-wasm-binaries-up-to-date.js create mode 100644 deps/v8/test/mjsunit/wasm/frame-inspection.js create mode 100644 deps/v8/test/mjsunit/wasm/function-names.js create mode 100644 deps/v8/test/mjsunit/wasm/grow-memory.js create mode 100644 deps/v8/test/mjsunit/wasm/incrementer.wasm create mode 100644 deps/v8/test/mjsunit/wasm/no-wasm-by-default.js create mode 100644 deps/v8/test/mjsunit/wasm/parallel_compilation.js create mode 100644 deps/v8/test/mjsunit/wasm/receiver.js create mode 100644 deps/v8/test/mjsunit/wasm/test-import-export-wrapper.js create mode 100644 deps/v8/test/mjsunit/wasm/trap-location.js create mode 100644 deps/v8/test/mjsunit/wasm/unicode-validation.js create mode 100644 deps/v8/test/test262/BUILD.gn create mode 100644 deps/v8/test/test262/detachArrayBuffer.js create mode 100644 deps/v8/test/unittests/BUILD.gn rename deps/v8/test/unittests/{ => base}/atomic-utils-unittest.cc (84%) create mode 100644 deps/v8/test/unittests/base/ieee754-unittest.cc create mode 100644 deps/v8/test/unittests/compiler-dispatcher/compiler-dispatcher-job-unittest.cc delete mode 100644 deps/v8/test/unittests/compiler/change-lowering-unittest.cc create mode 100644 deps/v8/test/unittests/compiler/checkpoint-elimination-unittest.cc delete mode 100644 deps/v8/test/unittests/compiler/coalesced-live-ranges-unittest.cc create mode 100644 deps/v8/test/unittests/compiler/effect-control-linearizer-unittest.cc create mode 100644 deps/v8/test/unittests/eh-frame-iterator-unittest.cc create mode 100644 deps/v8/test/unittests/eh-frame-writer-unittest.cc create mode 100644 deps/v8/test/unittests/heap/marking-unittest.cc create mode 100644 deps/v8/test/unittests/interpreter/bytecode-array-writer-unittest.cc create mode 100644 deps/v8/test/unittests/interpreter/bytecode-dead-code-optimizer-unittest.cc create mode 100644 deps/v8/test/unittests/interpreter/bytecode-decoder-unittest.cc create mode 100644 deps/v8/test/unittests/interpreter/bytecode-peephole-optimizer-unittest.cc create mode 100644 deps/v8/test/unittests/interpreter/bytecode-pipeline-unittest.cc create mode 100644 deps/v8/test/unittests/interpreter/bytecode-register-optimizer-unittest.cc create mode 100644 deps/v8/test/unittests/interpreter/bytecode-utils.h create mode 100644 deps/v8/test/unittests/register-configuration-unittest.cc rename deps/v8/test/unittests/{interpreter => }/source-position-table-unittest.cc (53%) create mode 100644 deps/v8/test/unittests/value-serializer-unittest.cc create mode 100644 deps/v8/test/unittests/wasm/asm-types-unittest.cc create mode 100644 deps/v8/test/unittests/wasm/control-transfer-unittest.cc create mode 100644 deps/v8/test/unittests/wasm/leb-helper-unittest.cc create mode 100644 deps/v8/test/unittests/wasm/switch-logic-unittest.cc create mode 100644 deps/v8/testing/gmock_custom/gmock/internal/custom/gmock-port.h create mode 100644 deps/v8/testing/gtest/include/gtest/gtest_prod.h create mode 100644 deps/v8/tools/BUILD.gn create mode 100644 deps/v8/tools/callstats.html create mode 100755 deps/v8/tools/callstats.py create mode 100755 deps/v8/tools/dev/v8gen.py create mode 100644 deps/v8/tools/dump-cpp.py create mode 100644 deps/v8/tools/dumpcpp-driver.js create mode 100644 deps/v8/tools/dumpcpp.js delete mode 100644 deps/v8/tools/gyp/v8.gyp create mode 100755 deps/v8/tools/gyp_flag_compare.py create mode 100755 deps/v8/tools/ignition/bytecode_dispatches_report.py create mode 100644 deps/v8/tools/ignition/bytecode_dispatches_report_test.py create mode 100755 deps/v8/tools/ignition/linux_perf_bytecode_annotate.py create mode 100644 deps/v8/tools/ignition/linux_perf_bytecode_annotate_test.py create mode 100755 deps/v8/tools/ignition/linux_perf_report.py create mode 100644 deps/v8/tools/ignition/linux_perf_report_test.py create mode 100644 deps/v8/tools/memory/asan/blacklist.txt create mode 100644 deps/v8/tools/memory/tsan_v2/ignores.txt create mode 100644 deps/v8/tools/msan/blacklist.txt delete mode 100755 deps/v8/tools/nacl-run.py create mode 100755 deps/v8/tools/objdump-v8 create mode 100755 deps/v8/tools/release/roll_merge.py create mode 100755 deps/v8/tools/testrunner/local/statusfile_unittest.py create mode 100755 deps/v8/tools/testrunner/local/testsuite_unittest.py create mode 100644 deps/v8/tools/testrunner/local/variants.py create mode 100644 deps/v8/tools/testrunner/utils/dump_build_config.py create mode 100644 deps/v8/tools/turbolizer-perf.py create mode 100644 deps/v8/tools/turbolizer/OWNERS create mode 100644 deps/v8/tools/turbolizer/README.md create mode 100644 deps/v8/tools/turbolizer/code-view.js create mode 100644 deps/v8/tools/turbolizer/constants.js create mode 100644 deps/v8/tools/turbolizer/disassembly-view.js create mode 100644 deps/v8/tools/turbolizer/edge.js create mode 100644 deps/v8/tools/turbolizer/empty-view.js create mode 100644 deps/v8/tools/turbolizer/expand-all.jpg create mode 100644 deps/v8/tools/turbolizer/graph-layout.js create mode 100644 deps/v8/tools/turbolizer/graph-view.js create mode 100644 deps/v8/tools/turbolizer/hide-selected.png create mode 100644 deps/v8/tools/turbolizer/hide-unselected.png create mode 100644 deps/v8/tools/turbolizer/index.html create mode 100644 deps/v8/tools/turbolizer/lang-disassembly.js create mode 100644 deps/v8/tools/turbolizer/layout-icon.png create mode 100644 deps/v8/tools/turbolizer/left-arrow.png create mode 100644 deps/v8/tools/turbolizer/live.png create mode 100644 deps/v8/tools/turbolizer/monkey.js create mode 100644 deps/v8/tools/turbolizer/node.js create mode 100644 deps/v8/tools/turbolizer/right-arrow.png create mode 100644 deps/v8/tools/turbolizer/schedule-view.js create mode 100644 deps/v8/tools/turbolizer/search.png create mode 100644 deps/v8/tools/turbolizer/search2.png create mode 100644 deps/v8/tools/turbolizer/selection-broker.js create mode 100644 deps/v8/tools/turbolizer/selection.js create mode 100644 deps/v8/tools/turbolizer/text-view.js create mode 100644 deps/v8/tools/turbolizer/turbo-visualizer.css create mode 100644 deps/v8/tools/turbolizer/turbo-visualizer.js create mode 100644 deps/v8/tools/turbolizer/types.png create mode 100644 deps/v8/tools/turbolizer/upload-icon.png create mode 100644 deps/v8/tools/turbolizer/util.js create mode 100644 deps/v8/tools/turbolizer/view.js diff --git a/deps/v8/.gitignore b/deps/v8/.gitignore index 805f349a6e4300..ac9b0bd9ac59c4 100644 --- a/deps/v8/.gitignore +++ b/deps/v8/.gitignore @@ -40,15 +40,13 @@ gcsuspects shell shell_g /_* -/build/Debug -/build/gyp -/build/ipch -/build/Release -/build/win_toolchain.json +/build +/gypfiles/win_toolchain.json /buildtools /hydrogen.cfg /obj /out +/out.gn /perf.data /perf.data.old /test/benchmarks/data @@ -59,20 +57,35 @@ shell_g /test/simdjs/data /test/test262/data /test/test262/data.tar +/test/test262/harness /testing/gmock -/testing/gtest +/testing/gtest/* +!/testing/gtest/include +/testing/gtest/include/* +!/testing/gtest/include/gtest +/testing/gtest/include/gtest/* +!/testing/gtest/include/gtest/gtest_prod.h /third_party +/third_party/android_tools +/third_party/cygwin /third_party/icu +/third_party/instrumented_libraries +/third_party/inspector_protocol +/third_party/jinga2 /third_party/llvm /third_party/llvm-build +/third_party/markupsafe +/third_party/WebKit /tools/clang /tools/gcmole/gcmole-tools /tools/gcmole/gcmole-tools.tar.gz +/tools/gyp /tools/jsfunfuzz/jsfunfuzz /tools/jsfunfuzz/jsfunfuzz.tar.gz /tools/luci-go/linux64/isolate /tools/luci-go/mac64/isolate /tools/luci-go/win64/isolate.exe +/tools/mb /tools/oom_dump/oom_dump /tools/oom_dump/oom_dump.o /tools/swarming_client @@ -86,7 +99,9 @@ GTAGS GRTAGS GSYMS GPATH +tags gtags.files turbo*.cfg turbo*.dot turbo*.json +v8.ignition_dispatches_table.json diff --git a/deps/v8/.gn b/deps/v8/.gn new file mode 100644 index 00000000000000..a1c0ff8dceba56 --- /dev/null +++ b/deps/v8/.gn @@ -0,0 +1,51 @@ +# This file is used by the GN meta build system to find the root of the source +# tree and to set startup options. For documentation on the values set in this +# file, run "gn help dotfile" at the command line. + +# The location of the build configuration file. +buildconfig = "//build/config/BUILDCONFIG.gn" + +# The secondary source root is a parallel directory tree where +# GN build files are placed when they can not be placed directly +# in the source tree, e.g. for third party source trees. +secondary_source = "//build/secondary/" + +# These are the targets to check headers for by default. The files in targets +# matching these patterns (see "gn help label_pattern" for format) will have +# their includes checked for proper dependencies when you run either +# "gn check" or "gn gen --check". +check_targets = [ +] + +# These are the list of GN files that run exec_script. This whitelist exists +# to force additional review for new uses of exec_script, which is strongly +# discouraged except for gypi_to_gn calls. +exec_script_whitelist = [ + "//build/config/android/BUILD.gn", + "//build/config/android/config.gni", + "//build/config/android/internal_rules.gni", + "//build/config/android/rules.gni", + "//build/config/BUILD.gn", + "//build/config/compiler/BUILD.gn", + "//build/config/gcc/gcc_version.gni", + "//build/config/ios/ios_sdk.gni", + "//build/config/linux/atk/BUILD.gn", + "//build/config/linux/BUILD.gn", + "//build/config/linux/pkg_config.gni", + "//build/config/mac/mac_sdk.gni", + "//build/config/posix/BUILD.gn", + "//build/config/sysroot.gni", + "//build/config/win/BUILD.gn", + "//build/config/win/visual_studio_version.gni", + "//build/gn_helpers.py", + "//build/gypi_to_gn.py", + "//build/toolchain/concurrent_links.gni", + "//build/toolchain/gcc_toolchain.gni", + "//build/toolchain/mac/BUILD.gn", + "//build/toolchain/win/BUILD.gn", + "//build/util/branding.gni", + "//build/util/version.gni", + "//test/cctest/BUILD.gn", + "//test/test262/BUILD.gn", + "//test/unittests/BUILD.gn", +] diff --git a/deps/v8/AUTHORS b/deps/v8/AUTHORS index 60b6c51db5eb1a..d70be77d86dccc 100644 --- a/deps/v8/AUTHORS +++ b/deps/v8/AUTHORS @@ -40,6 +40,7 @@ Alexis Campailla Andreas Anyuru Andrew Paprocki Andrei Kashcha +Anna Henningsen Bangfu Tao Ben Noordhuis Benjamin Tan @@ -50,7 +51,9 @@ Craig Schlenter Chris Nardi Christopher A. Taylor Daniel Andersson +Daniel Bevenius Daniel James +Deon Dior Douglas Crosher Dusan Milosavljevic Erich Ocean @@ -62,6 +65,7 @@ Franziska Hinkelmann Geoffrey Garside Han Choongwoo Hirofumi Mako +Honggyu Kim Ioseb Dzmanashvili Isiah Meadows Jan de Mooij @@ -85,11 +89,13 @@ Matthew Sporleder Maxim Mossienko Michael Lutz Michael Smith +Michaël Zasso Mike Gilbert Mike Pennisi Milton Chiang Myeong-bo Shim Nicolas Antonius Ernst Leopold Maria Kaiser +Oleksandr Chekhovskyi Paolo Giarrusso Patrick Gansterer Peter Varga @@ -113,4 +119,4 @@ Vladimir Shutoff Yu Yin Zac Hansen Zhongping Wang -柳荣一 \ No newline at end of file +柳荣一 diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn index 28aca24afc81c4..dcefe3706b84c1 100644 --- a/deps/v8/BUILD.gn +++ b/deps/v8/BUILD.gn @@ -4,6 +4,7 @@ import("//build/config/android/config.gni") import("//build/config/arm.gni") +import("//build/config/dcheck_always_on.gni") import("//build/config/mips.gni") import("//build/config/sanitizers/sanitizers.gni") @@ -11,16 +12,55 @@ if (is_android) { import("//build/config/android/rules.gni") } -# Because standalone V8 builds are not supported, assume this is part of a -# Chromium build. +import("gni/v8.gni") +import("gni/isolate.gni") import("//build_overrides/v8.gni") import("snapshot_toolchain.gni") declare_args() { - # Enable the snapshot feature, for fast context creation. - # http://v8project.blogspot.com/2015/09/custom-startup-snapshots.html - v8_use_snapshot = true + # Print to stdout on Android. + v8_android_log_stdout = false + + # Sets -DVERIFY_HEAP. + v8_enable_verify_heap = false + + # Enable compiler warnings when using V8_DEPRECATED apis. + v8_deprecation_warnings = false + + # Enable compiler warnings when using V8_DEPRECATE_SOON apis. + v8_imminent_deprecation_warnings = "" + + # Embeds the given script into the snapshot. + v8_embed_script = "" + + # Sets -dENABLE_DISASSEMBLER. + v8_enable_disassembler = "" + + # Sets -dENABLE_GDB_JIT_INTERFACE. + v8_enable_gdbjit = "" + + # Sets -dENABLE_HANDLE_ZAPPING. + v8_enable_handle_zapping = is_debug + + # Enable ECMAScript Internationalization API. Enabling this feature will + # add a dependency on the ICU library. + v8_enable_i18n_support = true + + # Enable slow dchecks. + v8_enable_slow_dchecks = false + + # Interpreted regexp engine exists as platform-independent alternative + # based where the regular expression is compiled to a bytecode. + v8_interpreted_regexp = false + + # Sets -dOBJECT_PRINT. + v8_object_print = "" + + # With post mortem support enabled, metadata is embedded into libv8 that + # describes various parameters of the VM for use by debuggers. See + # tools/gen-postmortem-metadata.py for details. + v8_postmortem_support = false # Similar to vfp but on MIPS. v8_can_use_fpu_instructions = true @@ -29,38 +69,35 @@ declare_args() { v8_use_mips_abi_hardfloat = true } -# TODO(jochen): These will need to be user-settable to support standalone V8 -# builds. -v8_deprecation_warnings = false -v8_enable_disassembler = false -v8_enable_gdbjit = false -v8_enable_handle_zapping = false -v8_enable_i18n_support = true -v8_enable_verify_heap = false -v8_interpreted_regexp = false -v8_object_print = false -v8_postmortem_support = false -v8_random_seed = "314159265" -v8_toolset_for_d8 = "host" - -if (is_msan) { - # Running the V8-generated code on an ARM simulator is a powerful hack that - # allows the tool to see the memory accesses from JITted code. Without this - # flag, JS code causes false positive reports from MSan. - v8_target_arch = "arm64" -} else { - v8_target_arch = target_cpu +# Set project-specific defaults for some args if not provided in args.gn. The +# defaults can be set in the respective build_overrides files. +if (v8_imminent_deprecation_warnings == "") { + if (defined(v8_imminent_deprecation_warnings_default)) { + v8_imminent_deprecation_warnings = v8_imminent_deprecation_warnings_default + } else { + v8_imminent_deprecation_warnings = false + } +} +if (v8_enable_gdbjit == "") { + if (defined(v8_enable_gdbjit_default)) { + v8_enable_gdbjit = v8_enable_gdbjit_default + } else { + v8_enable_gdbjit = false + } } -if (v8_use_snapshot && v8_use_external_startup_data) { - snapshot_target = ":v8_external_snapshot" -} else if (v8_use_snapshot) { - snapshot_target = ":v8_snapshot" -} else { - assert(!v8_use_external_startup_data) - snapshot_target = ":v8_nosnapshot" +# Derived defaults. +if (v8_object_print == "") { + v8_object_print = is_debug && !v8_optimized_debug +} +if (v8_enable_disassembler == "") { + v8_enable_disassembler = is_debug && !v8_optimized_debug } +v8_generated_peephole_source = "$target_gen_dir/bytecode-peephole-table.cc" +v8_random_seed = "314159265" +v8_toolset_for_shell = "host" + ############################################################################### # Configurations # @@ -88,6 +125,11 @@ config("libplatform_config") { include_dirs = [ "include" ] } +# This config should be applied to code using the libsampler. +config("libsampler_config") { + include_dirs = [ "include" ] +} + # This config should only be applied to code using V8 and not any V8 code # itself. config("external_config") { @@ -98,6 +140,10 @@ config("external_config") { ] } include_dirs = [ "include" ] + libs = [] + if (is_android && current_toolchain != host_toolchain) { + libs += [ "log" ] + } } # This config should only be applied to code that needs to be explicitly @@ -113,31 +159,34 @@ config("features") { defines = [] - if (v8_enable_disassembler == true) { + if (v8_enable_disassembler) { defines += [ "ENABLE_DISASSEMBLER" ] } - if (v8_enable_gdbjit == true) { + if (v8_enable_gdbjit) { defines += [ "ENABLE_GDB_JIT_INTERFACE" ] } - if (v8_object_print == true) { + if (v8_object_print) { defines += [ "OBJECT_PRINT" ] } - if (v8_enable_verify_heap == true) { + if (v8_enable_verify_heap) { defines += [ "VERIFY_HEAP" ] } - if (v8_interpreted_regexp == true) { + if (v8_interpreted_regexp) { defines += [ "V8_INTERPRETED_REGEXP" ] } - if (v8_deprecation_warnings == true) { + if (v8_deprecation_warnings) { defines += [ "V8_DEPRECATION_WARNINGS" ] } - if (v8_enable_i18n_support == true) { + if (v8_imminent_deprecation_warnings) { + defines += [ "V8_IMMINENT_DEPRECATION_WARNINGS" ] + } + if (v8_enable_i18n_support) { defines += [ "V8_I18N_SUPPORT" ] } - if (v8_enable_handle_zapping == true) { + if (v8_enable_handle_zapping) { defines += [ "ENABLE_HANDLE_ZAPPING" ] } - if (v8_use_external_startup_data == true) { + if (v8_use_external_startup_data) { defines += [ "V8_USE_EXTERNAL_STARTUP_DATA" ] } } @@ -147,8 +196,9 @@ config("toolchain") { defines = [] cflags = [] + ldflags = [] - if (v8_target_arch == "arm") { + if (v8_current_cpu == "arm") { defines += [ "V8_TARGET_ARCH_ARM" ] if (arm_version == 7) { defines += [ "CAN_USE_ARMV7_INSTRUCTIONS" ] @@ -167,6 +217,7 @@ config("toolchain") { "CAN_USE_NEON", ] } + # TODO(jochen): Add support for arm_test_noprobe. if (current_cpu != "arm") { @@ -178,11 +229,12 @@ config("toolchain") { } } } - if (v8_target_arch == "arm64") { + if (v8_current_cpu == "arm64") { defines += [ "V8_TARGET_ARCH_ARM64" ] } + # TODO(jochen): Add support for mips. - if (v8_target_arch == "mipsel") { + if (v8_current_cpu == "mipsel") { defines += [ "V8_TARGET_ARCH_MIPS" ] if (v8_can_use_fpu_instructions) { defines += [ "CAN_USE_FPU_INSTRUCTIONS" ] @@ -212,14 +264,17 @@ config("toolchain") { } else if (mips_arch_variant == "r1") { defines += [ "FPU_MODE_FP32" ] } + # TODO(jochen): Add support for mips_arch_variant rx and loongson. } + # TODO(jochen): Add support for mips64. - if (v8_target_arch == "mips64el") { + if (v8_current_cpu == "mips64el") { defines += [ "V8_TARGET_ARCH_MIPS64" ] if (v8_can_use_fpu_instructions) { defines += [ "CAN_USE_FPU_INSTRUCTIONS" ] } + # TODO(jochen): Add support for big endian host byteorder. defines += [ "V8_TARGET_ARCH_MIPS64_LE" ] if (v8_use_mips_abi_hardfloat) { @@ -236,30 +291,43 @@ config("toolchain") { defines += [ "_MIPS_ARCH_MIPS64R2" ] } } - if (v8_target_arch == "s390") { + if (v8_current_cpu == "s390" || v8_current_cpu == "s390x") { defines += [ "V8_TARGET_ARCH_S390" ] - } - if (v8_target_arch == "s390x") { - defines += [ - "V8_TARGET_ARCH_S390", - "V8_TARGET_ARCH_S390X", - ] + if (v8_current_cpu == "s390x") { + defines += [ "V8_TARGET_ARCH_S390X" ] + } + if (host_cpu == "x64" || host_cpu == "x86") { + defines += [ "V8_TARGET_ARCH_S390_LE_SIM" ] + } } - if (v8_target_arch == "x86") { + if (v8_current_cpu == "x86") { defines += [ "V8_TARGET_ARCH_IA32" ] + if (is_win) { + # Ensure no surprising artifacts from 80bit double math with x86. + cflags += [ "/arch:SSE2" ] + } } - if (v8_target_arch == "x64") { + if (v8_current_cpu == "x64") { defines += [ "V8_TARGET_ARCH_X64" ] + if (is_win) { + # Increase the initial stack size. The default is 1MB, this is 2MB. This + # applies only to executables and shared libraries produced by V8 since + # ldflags are not pushed to dependants. + ldflags += [ "/STACK:2097152" ] + } } - - if (is_win) { - defines += [ "WIN32" ] - # TODO(jochen): Support v8_enable_prof. + if (is_android && v8_android_log_stdout) { + defines += [ "V8_ANDROID_LOG_STDOUT" ] } + # TODO(jochen): Support v8_enable_prof on Windows. # TODO(jochen): Add support for compiling with simulators. if (is_debug) { + if (is_linux && v8_enable_backtrace) { + ldflags += [ "-rdynamic" ] + } + # TODO(jochen): Add support for different debug optimization levels. defines += [ "ENABLE_DISASSEMBLER", @@ -267,8 +335,13 @@ config("toolchain") { "OBJECT_PRINT", "VERIFY_HEAP", "DEBUG", - "OPTIMIZED_DEBUG", + "TRACE_MAPS", ] + if (v8_enable_slow_dchecks) { + defines += [ "ENABLE_SLOW_DCHECKS" ] + } + } else if (dcheck_always_on) { + defines += [ "DEBUG" ] } } @@ -297,21 +370,16 @@ action("js2c") { "src/js/symbol.js", "src/js/array.js", "src/js/string.js", - "src/js/uri.js", "src/js/math.js", - "src/third_party/fdlibm/fdlibm.js", "src/js/regexp.js", "src/js/arraybuffer.js", "src/js/typedarray.js", "src/js/iterator-prototype.js", - "src/js/generator.js", - "src/js/object-observe.js", "src/js/collection.js", "src/js/weak-collection.js", "src/js/collection-iterator.js", "src/js/promise.js", "src/js/messages.js", - "src/js/json.js", "src/js/array-iterator.js", "src/js/string-iterator.js", "src/js/templates.js", @@ -359,22 +427,23 @@ action("js2c_experimental") { sources = [ "src/js/macros.py", "src/messages.h", - "src/js/generator.js", + "src/js/harmony-async-await.js", "src/js/harmony-atomics.js", - "src/js/harmony-regexp-exec.js", - "src/js/harmony-object-observe.js", - "src/js/harmony-sharedarraybuffer.js", "src/js/harmony-simd.js", - "src/js/harmony-species.js", - "src/js/harmony-unicode-regexps.js", "src/js/harmony-string-padding.js", - "src/js/promise-extra.js", ] outputs = [ "$target_gen_dir/experimental-libraries.cc", ] + if (v8_enable_i18n_support) { + sources += [ + "src/js/icu-case-mapping.js", + "src/js/intl-extra.js", + ] + } + args = [ rebase_path("$target_gen_dir/experimental-libraries.cc", root_build_dir), @@ -473,14 +542,22 @@ action("d8_js2c") { rebase_path(inputs, root_build_dir) } -if (is_android) { +if (is_android && enable_java_templates) { android_assets("v8_external_startup_data_assets") { if (v8_use_external_startup_data) { deps = [ "//v8", ] - renaming_sources = v8_external_startup_data_renaming_sources - renaming_destinations = v8_external_startup_data_renaming_destinations + sources = [ + "$root_out_dir/natives_blob.bin", + ] + renaming_sources = [ "$root_out_dir/snapshot_blob.bin" ] + if (current_cpu == "arm" || current_cpu == "x86" || + current_cpu == "mipsel") { + renaming_destinations = [ "snapshot_blob_32.bin" ] + } else { + renaming_destinations = [ "snapshot_blob_64.bin" ] + } disable_compression = true } } @@ -543,17 +620,19 @@ action("run_mksnapshot") { visibility = [ ":*" ] # Only targets in this file can depend on this. deps = [ - ":mksnapshot($snapshot_toolchain)", + ":mksnapshot($v8_snapshot_toolchain)", ] script = "tools/run.py" + sources = [] + outputs = [ "$target_gen_dir/snapshot.cc", ] args = [ - "./" + rebase_path(get_label_info(":mksnapshot($snapshot_toolchain)", + "./" + rebase_path(get_label_info(":mksnapshot($v8_snapshot_toolchain)", "root_out_dir") + "/mksnapshot", root_build_dir), "--startup_src", @@ -574,13 +653,79 @@ action("run_mksnapshot") { rebase_path("$root_out_dir/snapshot_blob.bin", root_build_dir), ] } + + if (v8_embed_script != "") { + sources += [ v8_embed_script ] + args += [ rebase_path(v8_embed_script, root_build_dir) ] + } +} + +action("run_mkpeephole") { + visibility = [ ":*" ] # Only targets in this file can depend on this. + + deps = [ + ":mkpeephole($v8_snapshot_toolchain)", + ] + + outputs = [ + v8_generated_peephole_source, + ] + + sources = [] + + script = "tools/run.py" + + args = [ + "./" + rebase_path(get_label_info(":mkpeephole($v8_snapshot_toolchain)", + "root_out_dir") + "/mkpeephole", + root_build_dir), + rebase_path(v8_generated_peephole_source, root_build_dir), + ] +} + +action("v8_dump_build_config") { + script = "tools/testrunner/utils/dump_build_config.py" + outputs = [ + "$root_out_dir/v8_build_config.json", + ] + args = [ + rebase_path("$root_out_dir/v8_build_config.json", root_build_dir), + "dcheck_always_on=$dcheck_always_on", + "is_asan=$is_asan", + "is_cfi=$is_cfi", + "is_component_build=$is_component_build", + "is_debug=$is_debug", + "is_msan=$is_msan", + "is_tsan=$is_tsan", + "target_cpu=\"$target_cpu\"", + "v8_enable_i18n_support=$v8_enable_i18n_support", + "v8_target_cpu=\"$v8_target_cpu\"", + "v8_use_snapshot=$v8_use_snapshot", + ] } ############################################################################### # Source Sets (aka static libraries) # -source_set("v8_nosnapshot") { +source_set("v8_maybe_snapshot") { + if (v8_use_snapshot && v8_use_external_startup_data) { + public_deps = [ + ":v8_external_snapshot", + ] + } else if (v8_use_snapshot) { + public_deps = [ + ":v8_snapshot", + ] + } else { + # Ignore v8_use_external_startup_data setting if no snapshot is used. + public_deps = [ + ":v8_nosnapshot", + ] + } +} + +v8_source_set("v8_nosnapshot") { visibility = [ ":*" ] # Only targets in this file can depend on this. deps = [ @@ -599,16 +744,10 @@ source_set("v8_nosnapshot") { "src/snapshot/snapshot-empty.cc", ] - configs -= [ "//build/config/compiler:chromium_code" ] - configs += [ "//build/config/compiler:no_chromium_code" ] - configs += [ - ":internal_config", - ":features", - ":toolchain", - ] + configs = [ ":internal_config" ] } -source_set("v8_snapshot") { +v8_source_set("v8_snapshot") { # Only targets in this file and the top-level visibility target can # depend on this. visibility = [ @@ -637,17 +776,11 @@ source_set("v8_snapshot") { "$target_gen_dir/snapshot.cc", ] - configs -= [ "//build/config/compiler:chromium_code" ] - configs += [ "//build/config/compiler:no_chromium_code" ] - configs += [ - ":internal_config", - ":features", - ":toolchain", - ] + configs = [ ":internal_config" ] } if (v8_use_external_startup_data) { - source_set("v8_external_snapshot") { + v8_source_set("v8_external_snapshot") { visibility = [ ":*" ] # Only targets in this file can depend on this. deps = [ @@ -667,22 +800,15 @@ if (v8_use_external_startup_data) { "src/snapshot/snapshot-external.cc", ] - configs -= [ "//build/config/compiler:chromium_code" ] - configs += [ "//build/config/compiler:no_chromium_code" ] - configs += [ - ":internal_config", - ":features", - ":toolchain", - ] + configs = [ ":internal_config" ] } } -source_set("v8_base") { +v8_source_set("v8_base") { visibility = [ ":*" ] # Only targets in this file can depend on this. sources = [ - # TODO(fmeawad): This needs to be updated to support standalone V8 builds. - "../base/trace_event/common/trace_event_common.h", + "//base/trace_event/common/trace_event_common.h", "include/v8-debug.h", "include/v8-experimental.h", "include/v8-platform.h", @@ -700,6 +826,7 @@ source_set("v8_base") { "src/allocation-site-scopes.h", "src/allocation.cc", "src/allocation.h", + "src/api-arguments-inl.h", "src/api-arguments.cc", "src/api-arguments.h", "src/api-experimental.cc", @@ -710,22 +837,32 @@ source_set("v8_base") { "src/api.h", "src/arguments.cc", "src/arguments.h", + "src/asmjs/asm-js.cc", + "src/asmjs/asm-js.h", + "src/asmjs/asm-typer.cc", + "src/asmjs/asm-typer.h", + "src/asmjs/asm-types.cc", + "src/asmjs/asm-types.h", + "src/asmjs/asm-wasm-builder.cc", + "src/asmjs/asm-wasm-builder.h", "src/assembler.cc", "src/assembler.h", "src/assert-scope.cc", "src/assert-scope.h", "src/ast/ast-expression-rewriter.cc", "src/ast/ast-expression-rewriter.h", - "src/ast/ast-expression-visitor.cc", - "src/ast/ast-expression-visitor.h", "src/ast/ast-literal-reindexer.cc", "src/ast/ast-literal-reindexer.h", "src/ast/ast-numbering.cc", "src/ast/ast-numbering.h", + "src/ast/ast-traversal-visitor.h", + "src/ast/ast-type-bounds.h", "src/ast/ast-value-factory.cc", "src/ast/ast-value-factory.h", "src/ast/ast.cc", "src/ast/ast.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", @@ -736,7 +873,6 @@ source_set("v8_base") { "src/ast/scopes.h", "src/ast/variables.cc", "src/ast/variables.h", - "src/atomic-utils.h", "src/background-parsing-task.cc", "src/background-parsing-task.h", "src/bailout-reason.cc", @@ -751,8 +887,36 @@ source_set("v8_base") { "src/bit-vector.h", "src/bootstrapper.cc", "src/bootstrapper.h", - "src/builtins.cc", - "src/builtins.h", + "src/builtins/builtins-api.cc", + "src/builtins/builtins-array.cc", + "src/builtins/builtins-arraybuffer.cc", + "src/builtins/builtins-boolean.cc", + "src/builtins/builtins-call.cc", + "src/builtins/builtins-callsite.cc", + "src/builtins/builtins-conversion.cc", + "src/builtins/builtins-dataview.cc", + "src/builtins/builtins-date.cc", + "src/builtins/builtins-debug.cc", + "src/builtins/builtins-error.cc", + "src/builtins/builtins-function.cc", + "src/builtins/builtins-generator.cc", + "src/builtins/builtins-global.cc", + "src/builtins/builtins-handler.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-proxy.cc", + "src/builtins/builtins-reflect.cc", + "src/builtins/builtins-sharedarraybuffer.cc", + "src/builtins/builtins-string.cc", + "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/cancelable-task.cc", @@ -761,8 +925,11 @@ source_set("v8_base") { "src/char-predicates.cc", "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-hydrogen.cc", "src/code-stubs.cc", "src/code-stubs.h", @@ -775,6 +942,10 @@ source_set("v8_base") { "src/compilation-dependencies.h", "src/compilation-statistics.cc", "src/compilation-statistics.h", + "src/compiler-dispatcher/compiler-dispatcher-job.cc", + "src/compiler-dispatcher/compiler-dispatcher-job.h", + "src/compiler-dispatcher/optimizing-compile-dispatcher.cc", + "src/compiler-dispatcher/optimizing-compile-dispatcher.h", "src/compiler.cc", "src/compiler.h", "src/compiler/access-builder.cc", @@ -795,16 +966,16 @@ source_set("v8_base") { "src/compiler/bytecode-branch-analysis.h", "src/compiler/bytecode-graph-builder.cc", "src/compiler/bytecode-graph-builder.h", + "src/compiler/bytecode-loop-analysis.cc", + "src/compiler/bytecode-loop-analysis.h", "src/compiler/c-linkage.cc", - "src/compiler/change-lowering.cc", - "src/compiler/change-lowering.h", - "src/compiler/coalesced-live-ranges.cc", - "src/compiler/coalesced-live-ranges.h", + "src/compiler/checkpoint-elimination.cc", + "src/compiler/checkpoint-elimination.h", + "src/compiler/code-assembler.cc", + "src/compiler/code-assembler.h", "src/compiler/code-generator-impl.h", "src/compiler/code-generator.cc", "src/compiler/code-generator.h", - "src/compiler/code-stub-assembler.cc", - "src/compiler/code-stub-assembler.h", "src/compiler/common-node-cache.cc", "src/compiler/common-node-cache.h", "src/compiler/common-operator-reducer.cc", @@ -820,6 +991,8 @@ source_set("v8_base") { "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-reducer.cc", "src/compiler/escape-analysis-reducer.h", "src/compiler/escape-analysis.cc", @@ -842,8 +1015,6 @@ source_set("v8_base") { "src/compiler/graph-visualizer.h", "src/compiler/graph.cc", "src/compiler/graph.h", - "src/compiler/greedy-allocator.cc", - "src/compiler/greedy-allocator.h", "src/compiler/instruction-codes.h", "src/compiler/instruction-scheduler.cc", "src/compiler/instruction-scheduler.h", @@ -895,10 +1066,15 @@ source_set("v8_base") { "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/memory-optimizer.cc", + "src/compiler/memory-optimizer.h", "src/compiler/move-optimizer.cc", "src/compiler/move-optimizer.h", "src/compiler/node-aux-data.h", @@ -914,6 +1090,8 @@ source_set("v8_base") { "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", @@ -926,6 +1104,8 @@ source_set("v8_base") { "src/compiler/pipeline.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-verifier.cc", "src/compiler/register-allocator-verifier.h", "src/compiler/register-allocator.cc", @@ -948,6 +1128,8 @@ source_set("v8_base") { "src/compiler/source-position.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/tail-call-optimization.cc", "src/compiler/tail-call-optimization.h", "src/compiler/type-hint-analyzer.cc", @@ -956,6 +1138,7 @@ source_set("v8_base") { "src/compiler/type-hints.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", @@ -973,6 +1156,7 @@ source_set("v8_base") { "src/conversions-inl.h", "src/conversions.cc", "src/conversions.h", + "src/counters-inl.h", "src/counters.cc", "src/counters.h", "src/crankshaft/compilation-phase.cc", @@ -1052,6 +1236,8 @@ source_set("v8_base") { "src/debug/debug.h", "src/debug/liveedit.cc", "src/debug/liveedit.h", + "src/deoptimize-reason.cc", + "src/deoptimize-reason.h", "src/deoptimizer.cc", "src/deoptimizer.h", "src/disasm.h", @@ -1063,6 +1249,8 @@ source_set("v8_base") { "src/dtoa.cc", "src/dtoa.h", "src/effects.h", + "src/eh-frame.cc", + "src/eh-frame.h", "src/elements-kind.cc", "src/elements-kind.h", "src/elements.cc", @@ -1075,6 +1263,8 @@ source_set("v8_base") { "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", @@ -1111,10 +1301,12 @@ source_set("v8_base") { "src/handles-inl.h", "src/handles.cc", "src/handles.h", - "src/hashmap.h", "src/heap-symbols.h", + "src/heap/array-buffer-tracker-inl.h", "src/heap/array-buffer-tracker.cc", "src/heap/array-buffer-tracker.h", + "src/heap/code-stats.cc", + "src/heap/code-stats.h", "src/heap/gc-idle-time-handler.cc", "src/heap/gc-idle-time-handler.h", "src/heap/gc-tracer.cc", @@ -1129,6 +1321,7 @@ source_set("v8_base") { "src/heap/mark-compact-inl.h", "src/heap/mark-compact.cc", "src/heap/mark-compact.h", + "src/heap/marking.h", "src/heap/memory-reducer.cc", "src/heap/memory-reducer.h", "src/heap/object-stats.cc", @@ -1177,10 +1370,29 @@ source_set("v8_base") { "src/interpreter/bytecode-array-builder.h", "src/interpreter/bytecode-array-iterator.cc", "src/interpreter/bytecode-array-iterator.h", + "src/interpreter/bytecode-array-writer.cc", + "src/interpreter/bytecode-array-writer.h", + "src/interpreter/bytecode-dead-code-optimizer.cc", + "src/interpreter/bytecode-dead-code-optimizer.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-peephole-optimizer.cc", + "src/interpreter/bytecode-peephole-optimizer.h", + "src/interpreter/bytecode-peephole-table.h", + "src/interpreter/bytecode-pipeline.cc", + "src/interpreter/bytecode-pipeline.h", "src/interpreter/bytecode-register-allocator.cc", "src/interpreter/bytecode-register-allocator.h", + "src/interpreter/bytecode-register-optimizer.cc", + "src/interpreter/bytecode-register-optimizer.h", + "src/interpreter/bytecode-register.cc", + "src/interpreter/bytecode-register.h", "src/interpreter/bytecode-traits.h", "src/interpreter/bytecodes.cc", "src/interpreter/bytecodes.h", @@ -1196,12 +1408,12 @@ source_set("v8_base") { "src/interpreter/interpreter-intrinsics.h", "src/interpreter/interpreter.cc", "src/interpreter/interpreter.h", - "src/interpreter/source-position-table.cc", - "src/interpreter/source-position-table.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.cc", "src/keys.h", @@ -1230,8 +1442,6 @@ source_set("v8_base") { "src/objects-printer.cc", "src/objects.cc", "src/objects.h", - "src/optimizing-compile-dispatcher.cc", - "src/optimizing-compile-dispatcher.h", "src/ostreams.cc", "src/ostreams.h", "src/parsing/expression-classifier.h", @@ -1239,6 +1449,8 @@ source_set("v8_base") { "src/parsing/func-name-inferrer.h", "src/parsing/parameter-initializer-rewriter.cc", "src/parsing/parameter-initializer-rewriter.h", + "src/parsing/parse-info.cc", + "src/parsing/parse-info.h", "src/parsing/parser-base.h", "src/parsing/parser.cc", "src/parsing/parser.h", @@ -1275,12 +1487,14 @@ source_set("v8_base") { "src/profiler/profile-generator-inl.h", "src/profiler/profile-generator.cc", "src/profiler/profile-generator.h", - "src/profiler/sampler.cc", - "src/profiler/sampler.h", + "src/profiler/profiler-listener.cc", + "src/profiler/profiler-listener.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/unbound-queue-inl.h", "src/profiler/unbound-queue.h", "src/property-descriptor.cc", @@ -1319,6 +1533,7 @@ source_set("v8_base") { "src/runtime/runtime-compiler.cc", "src/runtime/runtime-date.cc", "src/runtime/runtime-debug.cc", + "src/runtime/runtime-error.cc", "src/runtime/runtime-forin.cc", "src/runtime/runtime-function.cc", "src/runtime/runtime-futex.cc", @@ -1326,13 +1541,11 @@ source_set("v8_base") { "src/runtime/runtime-i18n.cc", "src/runtime/runtime-internal.cc", "src/runtime/runtime-interpreter.cc", - "src/runtime/runtime-json.cc", "src/runtime/runtime-literals.cc", "src/runtime/runtime-liveedit.cc", "src/runtime/runtime-maths.cc", "src/runtime/runtime-numbers.cc", "src/runtime/runtime-object.cc", - "src/runtime/runtime-observe.cc", "src/runtime/runtime-operators.cc", "src/runtime/runtime-proxy.cc", "src/runtime/runtime-regexp.cc", @@ -1342,8 +1555,8 @@ source_set("v8_base") { "src/runtime/runtime-symbol.cc", "src/runtime/runtime-test.cc", "src/runtime/runtime-typedarray.cc", - "src/runtime/runtime-uri.cc", "src/runtime/runtime-utils.h", + "src/runtime/runtime-wasm.cc", "src/runtime/runtime.cc", "src/runtime/runtime.h", "src/safepoint-table.cc", @@ -1369,6 +1582,8 @@ source_set("v8_base") { "src/snapshot/snapshot.h", "src/snapshot/startup-serializer.cc", "src/snapshot/startup-serializer.h", + "src/source-position-table.cc", + "src/source-position-table.h", "src/source-position.h", "src/splay-tree-inl.h", "src/splay-tree.h", @@ -1381,8 +1596,6 @@ source_set("v8_base") { "src/string-stream.h", "src/strtod.cc", "src/strtod.h", - "src/third_party/fdlibm/fdlibm.cc", - "src/third_party/fdlibm/fdlibm.h", "src/tracing/trace-event.cc", "src/tracing/trace-event.h", "src/transitions-inl.h", @@ -1397,10 +1610,6 @@ source_set("v8_base") { "src/type-info.h", "src/types.cc", "src/types.h", - "src/typing-asm.cc", - "src/typing-asm.h", - "src/typing-reset.cc", - "src/typing-reset.h", "src/unicode-cache-inl.h", "src/unicode-cache.h", "src/unicode-decoder.cc", @@ -1408,6 +1617,8 @@ source_set("v8_base") { "src/unicode-inl.h", "src/unicode.cc", "src/unicode.h", + "src/uri.cc", + "src/uri.h", "src/utils-inl.h", "src/utils.cc", "src/utils.h", @@ -1416,20 +1627,30 @@ source_set("v8_base") { "src/v8memory.h", "src/v8threads.cc", "src/v8threads.h", + "src/value-serializer.cc", + "src/value-serializer.h", "src/version.cc", "src/version.h", "src/vm-state-inl.h", "src/vm-state.h", - "src/wasm/asm-wasm-builder.cc", - "src/wasm/asm-wasm-builder.h", "src/wasm/ast-decoder.cc", "src/wasm/ast-decoder.h", "src/wasm/decoder.h", "src/wasm/encoder.cc", "src/wasm/encoder.h", + "src/wasm/leb-helper.h", "src/wasm/module-decoder.cc", "src/wasm/module-decoder.h", + "src/wasm/switch-logic.cc", + "src/wasm/switch-logic.h", + "src/wasm/wasm-debug.cc", + "src/wasm/wasm-debug.h", + "src/wasm/wasm-external-refs.cc", "src/wasm/wasm-external-refs.h", + "src/wasm/wasm-function-name-table.cc", + "src/wasm/wasm-function-name-table.h", + "src/wasm/wasm-interpreter.cc", + "src/wasm/wasm-interpreter.h", "src/wasm/wasm-js.cc", "src/wasm/wasm-js.h", "src/wasm/wasm-macro-gen.h", @@ -1445,8 +1666,9 @@ source_set("v8_base") { "src/zone.h", ] - if (v8_target_arch == "x86") { + if (v8_current_cpu == "x86") { sources += [ + "src/builtins/ia32/builtins-ia32.cc", "src/compiler/ia32/code-generator-ia32.cc", "src/compiler/ia32/instruction-codes-ia32.h", "src/compiler/ia32/instruction-scheduler-ia32.cc", @@ -1462,7 +1684,6 @@ source_set("v8_base") { "src/ia32/assembler-ia32-inl.h", "src/ia32/assembler-ia32.cc", "src/ia32/assembler-ia32.h", - "src/ia32/builtins-ia32.cc", "src/ia32/code-stubs-ia32.cc", "src/ia32/code-stubs-ia32.h", "src/ia32/codegen-ia32.cc", @@ -1483,12 +1704,15 @@ source_set("v8_base") { "src/regexp/ia32/regexp-macro-assembler-ia32.cc", "src/regexp/ia32/regexp-macro-assembler-ia32.h", ] - } else if (v8_target_arch == "x64") { + } else if (v8_current_cpu == "x64") { sources += [ + "src/builtins/x64/builtins-x64.cc", "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/crankshaft/x64/lithium-codegen-x64.cc", "src/crankshaft/x64/lithium-codegen-x64.h", "src/crankshaft/x64/lithium-gap-resolver-x64.cc", @@ -1507,7 +1731,6 @@ source_set("v8_base") { "src/x64/assembler-x64-inl.h", "src/x64/assembler-x64.cc", "src/x64/assembler-x64.h", - "src/x64/builtins-x64.cc", "src/x64/code-stubs-x64.cc", "src/x64/code-stubs-x64.h", "src/x64/codegen-x64.cc", @@ -1515,18 +1738,18 @@ source_set("v8_base") { "src/x64/cpu-x64.cc", "src/x64/deoptimizer-x64.cc", "src/x64/disasm-x64.cc", + "src/x64/eh-frame-x64.cc", "src/x64/frames-x64.cc", "src/x64/frames-x64.h", "src/x64/interface-descriptors-x64.cc", "src/x64/macro-assembler-x64.cc", "src/x64/macro-assembler-x64.h", ] - } else if (v8_target_arch == "arm") { + } else if (v8_current_cpu == "arm") { sources += [ "src/arm/assembler-arm-inl.h", "src/arm/assembler-arm.cc", "src/arm/assembler-arm.h", - "src/arm/builtins-arm.cc", "src/arm/code-stubs-arm.cc", "src/arm/code-stubs-arm.h", "src/arm/codegen-arm.cc", @@ -1536,6 +1759,7 @@ source_set("v8_base") { "src/arm/cpu-arm.cc", "src/arm/deoptimizer-arm.cc", "src/arm/disasm-arm.cc", + "src/arm/eh-frame-arm.cc", "src/arm/frames-arm.cc", "src/arm/frames-arm.h", "src/arm/interface-descriptors-arm.cc", @@ -1544,10 +1768,13 @@ source_set("v8_base") { "src/arm/macro-assembler-arm.h", "src/arm/simulator-arm.cc", "src/arm/simulator-arm.h", + "src/builtins/arm/builtins-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/crankshaft/arm/lithium-arm.cc", "src/crankshaft/arm/lithium-arm.h", "src/crankshaft/arm/lithium-codegen-arm.cc", @@ -1564,12 +1791,11 @@ source_set("v8_base") { "src/regexp/arm/regexp-macro-assembler-arm.cc", "src/regexp/arm/regexp-macro-assembler-arm.h", ] - } else if (v8_target_arch == "arm64") { + } else if (v8_current_cpu == "arm64") { sources += [ "src/arm64/assembler-arm64-inl.h", "src/arm64/assembler-arm64.cc", "src/arm64/assembler-arm64.h", - "src/arm64/builtins-arm64.cc", "src/arm64/code-stubs-arm64.cc", "src/arm64/code-stubs-arm64.h", "src/arm64/codegen-arm64.cc", @@ -1582,6 +1808,7 @@ source_set("v8_base") { "src/arm64/deoptimizer-arm64.cc", "src/arm64/disasm-arm64.cc", "src/arm64/disasm-arm64.h", + "src/arm64/eh-frame-arm64.cc", "src/arm64/frames-arm64.cc", "src/arm64/frames-arm64.h", "src/arm64/instructions-arm64.cc", @@ -1597,10 +1824,13 @@ source_set("v8_base") { "src/arm64/simulator-arm64.h", "src/arm64/utils-arm64.cc", "src/arm64/utils-arm64.h", + "src/builtins/arm64/builtins-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/crankshaft/arm64/delayed-masm-arm64-inl.h", "src/crankshaft/arm64/delayed-masm-arm64.cc", "src/crankshaft/arm64/delayed-masm-arm64.h", @@ -1620,8 +1850,9 @@ source_set("v8_base") { "src/regexp/arm64/regexp-macro-assembler-arm64.cc", "src/regexp/arm64/regexp-macro-assembler-arm64.h", ] - } else if (v8_target_arch == "mipsel") { + } else if (v8_current_cpu == "mipsel") { sources += [ + "src/builtins/mips/builtins-mips.cc", "src/compiler/mips/code-generator-mips.cc", "src/compiler/mips/instruction-codes-mips.h", "src/compiler/mips/instruction-scheduler-mips.cc", @@ -1642,7 +1873,6 @@ source_set("v8_base") { "src/mips/assembler-mips-inl.h", "src/mips/assembler-mips.cc", "src/mips/assembler-mips.h", - "src/mips/builtins-mips.cc", "src/mips/code-stubs-mips.cc", "src/mips/code-stubs-mips.h", "src/mips/codegen-mips.cc", @@ -1662,12 +1892,13 @@ source_set("v8_base") { "src/regexp/mips/regexp-macro-assembler-mips.cc", "src/regexp/mips/regexp-macro-assembler-mips.h", ] - } else if (v8_target_arch == "mips64el") { + } else if (v8_current_cpu == "mips64el") { sources += [ - "compiler/mips64/code-generator-mips64.cc", - "compiler/mips64/instruction-codes-mips64.h", - "compiler/mips64/instruction-scheduler-mips64.cc", - "compiler/mips64/instruction-selector-mips64.cc", + "src/builtins/mips64/builtins-mips64.cc", + "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/crankshaft/mips64/lithium-codegen-mips64.cc", "src/crankshaft/mips64/lithium-codegen-mips64.h", "src/crankshaft/mips64/lithium-gap-resolver-mips64.cc", @@ -1684,7 +1915,6 @@ source_set("v8_base") { "src/mips64/assembler-mips64-inl.h", "src/mips64/assembler-mips64.cc", "src/mips64/assembler-mips64.h", - "src/mips64/builtins-mips64.cc", "src/mips64/code-stubs-mips64.cc", "src/mips64/code-stubs-mips64.h", "src/mips64/codegen-mips64.cc", @@ -1704,8 +1934,9 @@ source_set("v8_base") { "src/regexp/mips64/regexp-macro-assembler-mips64.cc", "src/regexp/mips64/regexp-macro-assembler-mips64.h", ] - } else if (v8_target_arch == "s390" || v8_target_arch == "s390x") { + } else if (v8_current_cpu == "s390" || v8_current_cpu == "s390x") { sources += [ + "src/builtins/s390/builtins-s390.cc", "src/compiler/s390/code-generator-s390.cc", "src/compiler/s390/instruction-codes-s390.h", "src/compiler/s390/instruction-scheduler-s390.cc", @@ -1728,7 +1959,6 @@ source_set("v8_base") { "src/s390/assembler-s390-inl.h", "src/s390/assembler-s390.cc", "src/s390/assembler-s390.h", - "src/s390/builtins-s390.cc", "src/s390/code-stubs-s390.cc", "src/s390/code-stubs-s390.h", "src/s390/codegen-s390.cc", @@ -1748,24 +1978,17 @@ source_set("v8_base") { ] } - configs -= [ "//build/config/compiler:chromium_code" ] - configs += [ "//build/config/compiler:no_chromium_code" ] - configs += [ - ":internal_config", - ":features", - ":toolchain", - ] - - if (!is_debug) { - configs -= [ "//build/config/compiler:default_optimization" ] - configs += [ "//build/config/compiler:optimize_max" ] - } + configs = [ ":internal_config" ] defines = [] deps = [ ":v8_libbase", + ":v8_libsampler", ] + sources += [ v8_generated_peephole_source ] + deps += [ ":run_mkpeephole" ] + if (is_win) { # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. cflags = [ "/wd4267" ] @@ -1776,9 +1999,6 @@ source_set("v8_base") { if (is_win) { deps += [ "//third_party/icu:icudata" ] } - - # TODO(jochen): Add support for icu_use_data_file_flag - defines += [ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE" ] } else { sources -= [ "src/i18n.cc", @@ -1792,13 +2012,14 @@ source_set("v8_base") { } } -source_set("v8_libbase") { +v8_source_set("v8_libbase") { visibility = [ ":*" ] # Only targets in this file can depend on this. sources = [ "src/base/accounting-allocator.cc", "src/base/accounting-allocator.h", "src/base/adapters.h", + "src/base/atomic-utils.h", "src/base/atomicops.h", "src/base/atomicops_internals_arm64_gcc.h", "src/base/atomicops_internals_arm_gcc.h", @@ -1806,7 +2027,6 @@ source_set("v8_libbase") { "src/base/atomicops_internals_mac.h", "src/base/atomicops_internals_mips64_gcc.h", "src/base/atomicops_internals_mips_gcc.h", - "src/base/atomicops_internals_portable.h", "src/base/atomicops_internals_s390_gcc.h", "src/base/atomicops_internals_tsan.h", "src/base/atomicops_internals_x86_gcc.cc", @@ -1817,11 +2037,20 @@ source_set("v8_libbase") { "src/base/build_config.h", "src/base/cpu.cc", "src/base/cpu.h", + "src/base/debug/stack_trace.cc", + "src/base/debug/stack_trace.h", "src/base/division-by-constant.cc", "src/base/division-by-constant.h", + "src/base/file-utils.cc", + "src/base/file-utils.h", "src/base/flags.h", + "src/base/format-macros.h", + "src/base/free_deleter.h", "src/base/functional.cc", "src/base/functional.h", + "src/base/hashmap.h", + "src/base/ieee754.cc", + "src/base/ieee754.h", "src/base/iterator.h", "src/base/lazy-instance.h", "src/base/logging.cc", @@ -1843,25 +2072,13 @@ source_set("v8_libbase") { "src/base/safe_conversions_impl.h", "src/base/safe_math.h", "src/base/safe_math_impl.h", - "src/base/smart-pointers.h", "src/base/sys-info.cc", "src/base/sys-info.h", "src/base/utils/random-number-generator.cc", "src/base/utils/random-number-generator.h", ] - configs -= [ "//build/config/compiler:chromium_code" ] - configs += [ "//build/config/compiler:no_chromium_code" ] - configs += [ - ":internal_config_base", - ":features", - ":toolchain", - ] - - if (!is_debug) { - configs -= [ "//build/config/compiler:default_optimization" ] - configs += [ "//build/config/compiler:optimize_max" ] - } + configs = [ ":internal_config_base" ] defines = [] @@ -1870,7 +2087,10 @@ source_set("v8_libbase") { } if (is_linux) { - sources += [ "src/base/platform/platform-linux.cc" ] + sources += [ + "src/base/debug/stack_trace_posix.cc", + "src/base/platform/platform-linux.cc", + ] libs = [ "dl", @@ -1883,18 +2103,31 @@ source_set("v8_libbase") { "rt", ] if (host_os == "mac") { - sources += [ "src/base/platform/platform-macos.cc" ] + sources += [ + "src/base/debug/stack_trace_posix.cc", + "src/base/platform/platform-macos.cc", + ] } else { - sources += [ "src/base/platform/platform-linux.cc" ] + sources += [ + "src/base/debug/stack_trace_posix.cc", + "src/base/platform/platform-linux.cc", + ] } } else { - sources += [ "src/base/platform/platform-linux.cc" ] + sources += [ + "src/base/debug/stack_trace_android.cc", + "src/base/platform/platform-linux.cc", + ] } } else if (is_mac) { - sources += [ "src/base/platform/platform-macos.cc" ] + sources += [ + "src/base/debug/stack_trace_posix.cc", + "src/base/platform/platform-macos.cc", + ] } else if (is_win) { # TODO(jochen): Add support for cygwin. sources += [ + "src/base/debug/stack_trace_win.cc", "src/base/platform/platform-win32.cc", "src/base/win32-headers.h", ] @@ -1902,6 +2135,8 @@ source_set("v8_libbase") { defines += [ "_CRT_RAND_S" ] # for rand_s() libs = [ + "dbghelp.lib", + "shlwapi.lib", "winmm.lib", "ws2_32.lib", ] @@ -1910,36 +2145,51 @@ source_set("v8_libbase") { # TODO(jochen): Add support for qnx, freebsd, openbsd, netbsd, and solaris. } -source_set("v8_libplatform") { +v8_source_set("v8_libplatform") { sources = [ + "//base/trace_event/common/trace_event_common.h", "include/libplatform/libplatform.h", + "include/libplatform/v8-tracing.h", "src/libplatform/default-platform.cc", "src/libplatform/default-platform.h", "src/libplatform/task-queue.cc", "src/libplatform/task-queue.h", + "src/libplatform/tracing/trace-buffer.cc", + "src/libplatform/tracing/trace-buffer.h", + "src/libplatform/tracing/trace-config.cc", + "src/libplatform/tracing/trace-object.cc", + "src/libplatform/tracing/trace-writer.cc", + "src/libplatform/tracing/trace-writer.h", + "src/libplatform/tracing/tracing-controller.cc", "src/libplatform/worker-thread.cc", "src/libplatform/worker-thread.h", ] - configs -= [ "//build/config/compiler:chromium_code" ] - configs += [ "//build/config/compiler:no_chromium_code" ] - configs += [ - ":internal_config_base", - ":features", - ":toolchain", + configs = [ ":internal_config_base" ] + + public_configs = [ ":libplatform_config" ] + + deps = [ + ":v8_libbase", ] +} - if (!is_debug) { - configs -= [ "//build/config/compiler:default_optimization" ] - configs += [ "//build/config/compiler:optimize_max" ] - } +v8_source_set("v8_libsampler") { + sources = [ + "src/libsampler/sampler.cc", + "src/libsampler/sampler.h", + ] + + configs = [ ":internal_config_base" ] + + public_configs = [ ":libsampler_config" ] deps = [ ":v8_libbase", ] } -source_set("fuzzer_support") { +v8_source_set("fuzzer_support") { visibility = [ ":*" ] # Only targets in this file can depend on this. sources = [ @@ -1947,136 +2197,317 @@ source_set("fuzzer_support") { "test/fuzzer/fuzzer-support.h", ] - configs -= [ "//build/config/compiler:chromium_code" ] - configs += [ "//build/config/compiler:no_chromium_code" ] - configs += [ - ":internal_config_base", - ":libplatform_config", - ":features", - ":toolchain", - ] + configs = [ ":internal_config_base" ] deps = [ + ":v8_maybe_snapshot", + ] + + public_deps = [ ":v8_libplatform", - snapshot_target, ] } +v8_source_set("simple_fuzzer") { + sources = [ + "test/fuzzer/fuzzer.cc", + ] + + configs = [ ":internal_config_base" ] +} + ############################################################################### # Executables # -if (current_toolchain == snapshot_toolchain) { - executable("mksnapshot") { +if (current_toolchain == v8_snapshot_toolchain) { + v8_executable("mksnapshot") { visibility = [ ":*" ] # Only targets in this file can depend on this. sources = [ "src/snapshot/mksnapshot.cc", ] - configs -= [ "//build/config/compiler:chromium_code" ] - configs += [ "//build/config/compiler:no_chromium_code" ] - configs += [ - ":internal_config", - ":libplatform_config", - ":features", - ":toolchain", - ] + configs = [ ":internal_config" ] deps = [ ":v8_base", ":v8_libplatform", ":v8_nosnapshot", "//build/config/sanitizers:deps", + "//build/win:default_exe_manifest", ] } } +v8_executable("mkpeephole") { + # mkpeephole needs to be built for the build host so the peephole lookup + # table can built during build. The table depends on the properties of + # bytecodes that are described in bytecodes.{cc,h}. + visibility = [ ":*" ] # Only targets in this file can depend on this. + + sources = [ + "src/interpreter/bytecode-peephole-optimizer.h", + "src/interpreter/bytecodes.cc", + "src/interpreter/bytecodes.h", + "src/interpreter/mkpeephole.cc", + ] + + configs = [ + ":external_config", + ":internal_config", + ] + + deps = [ + ":v8_libbase", + "//build/config/sanitizers:deps", + "//build/win:default_exe_manifest", + ] +} + ############################################################################### # Public targets # +want_v8_shell = + (current_toolchain == host_toolchain && v8_toolset_for_shell == "host") || + (current_toolchain == v8_snapshot_toolchain && + v8_toolset_for_shell == "host") || + (current_toolchain != host_toolchain && v8_toolset_for_shell == "target") + +group("gn_all") { + testonly = true + + deps = [ + ":d8", + ":v8_hello_world", + ":v8_parser_shell", + ":v8_sample_process", + ":v8_simple_json_fuzzer", + ":v8_simple_parser_fuzzer", + ":v8_simple_regexp_fuzzer", + ":v8_simple_wasm_asmjs_fuzzer", + ":v8_simple_wasm_fuzzer", + "test:gn_all", + "tools:gn_all", + ] + + if (want_v8_shell) { + deps += [ ":v8_shell" ] + } + + if (v8_test_isolation_mode != "noop") { + deps += [ ":d8_run" ] + } +} + if (is_component_build) { - component("v8") { + v8_component("v8") { sources = [ "src/v8dll-main.cc", ] + deps = [ + ":v8_dump_build_config", + ] + public_deps = [ ":v8_base", - snapshot_target, + ":v8_maybe_snapshot", ] - configs -= [ "//build/config/compiler:chromium_code" ] - configs += [ "//build/config/compiler:no_chromium_code" ] - configs += [ - ":internal_config", - ":features", - ":toolchain", - ] + configs = [ ":internal_config" ] public_configs = [ ":external_config" ] - - libs = [] - if (is_android && current_toolchain != host_toolchain) { - libs += [ "log" ] - } } } else { group("v8") { + deps = [ + ":v8_dump_build_config", + ] + public_deps = [ ":v8_base", - snapshot_target, + ":v8_maybe_snapshot", ] public_configs = [ ":external_config" ] } } -if ((current_toolchain == host_toolchain && v8_toolset_for_d8 == "host") || - (current_toolchain == snapshot_toolchain && v8_toolset_for_d8 == "host") || - (current_toolchain != host_toolchain && v8_toolset_for_d8 == "target")) { - executable("d8") { +v8_executable("d8") { + sources = [ + "src/d8.cc", + "src/d8.h", + ] + + configs = [ + # Note: don't use :internal_config here because this target will get + # the :external_config applied to it by virtue of depending on :v8, and + # you can't have both applied to the same target. + ":internal_config_base", + ] + + deps = [ + ":d8_js2c", + ":v8", + ":v8_libplatform", + "//build/config/sanitizers:deps", + "//build/win:default_exe_manifest", + ] + + # TODO(jochen): Add support for vtunejit. + + if (is_posix) { + sources += [ "src/d8-posix.cc" ] + } else if (is_win) { + sources += [ "src/d8-windows.cc" ] + } + + if (!is_component_build) { + sources += [ "$target_gen_dir/d8-js.cc" ] + } + if (v8_enable_i18n_support) { + deps += [ "//third_party/icu" ] + } +} + +v8_isolate_run("d8") { + deps = [ + ":d8", + ] + + isolate = "//src/d8.isolate" +} + +v8_executable("v8_hello_world") { + sources = [ + "samples/hello-world.cc", + ] + + configs = [ + # Note: don't use :internal_config here because this target will get + # the :external_config applied to it by virtue of depending on :v8, and + # you can't have both applied to the same target. + ":internal_config_base", + ] + + deps = [ + ":v8", + ":v8_libplatform", + "//build/config/sanitizers:deps", + "//build/win:default_exe_manifest", + ] + + if (v8_enable_i18n_support) { + deps += [ "//third_party/icu" ] + } +} + +v8_executable("v8_sample_process") { + sources = [ + "samples/process.cc", + ] + + configs = [ + # Note: don't use :internal_config here because this target will get + # the :external_config applied to it by virtue of depending on :v8, and + # you can't have both applied to the same target. + ":internal_config_base", + ] + + deps = [ + ":v8", + ":v8_libplatform", + "//build/config/sanitizers:deps", + "//build/win:default_exe_manifest", + ] + + if (v8_enable_i18n_support) { + deps += [ "//third_party/icu" ] + } +} + +v8_executable("v8_parser_shell") { + sources = [ + "tools/parser-shell.cc", + "tools/shell-utils.h", + ] + + configs = [ + ":external_config", + ":internal_config_base", + ] + + deps = [ + ":v8_libplatform", + "//build/config/sanitizers:deps", + "//build/win:default_exe_manifest", + ] + + if (is_component_build) { + # v8_parser_shell can't be built against a shared library, so we + # need to depend on the underlying static target in that case. + deps += [ ":v8_maybe_snapshot" ] + } else { + deps += [ ":v8" ] + } + + if (v8_enable_i18n_support) { + deps += [ "//third_party/icu" ] + } + + if (is_win) { + # Suppress warnings about importing locally defined symbols. + if (is_component_build) { + ldflags = [ + "/ignore:4049", + "/ignore:4217", + ] + } + } +} + +if (want_v8_shell) { + v8_executable("v8_shell") { sources = [ - "src/d8.cc", - "src/d8.h", + "samples/shell.cc", ] - configs -= [ "//build/config/compiler:chromium_code" ] - configs += [ "//build/config/compiler:no_chromium_code" ] - configs += [ + configs = [ # Note: don't use :internal_config here because this target will get # the :external_config applied to it by virtue of depending on :v8, and # you can't have both applied to the same target. ":internal_config_base", - ":features", - ":toolchain", ] deps = [ - ":d8_js2c", ":v8", ":v8_libplatform", "//build/config/sanitizers:deps", + "//build/win:default_exe_manifest", ] - # TODO(jochen): Add support for vtunejit. - - if (is_posix) { - sources += [ "src/d8-posix.cc" ] - } else if (is_win) { - sources += [ "src/d8-windows.cc" ] - } - - if (!is_component_build) { - sources += [ "$target_gen_dir/d8-js.cc" ] - } if (v8_enable_i18n_support) { deps += [ "//third_party/icu" ] } } } -source_set("json_fuzzer") { +template("v8_fuzzer") { + name = target_name + forward_variables_from(invoker, "*") + v8_executable("v8_simple_" + name) { + deps = [ + ":" + name, + ":simple_fuzzer", + "//build/win:default_exe_manifest", + ] + + configs = [ ":external_config" ] + } +} + +v8_source_set("json_fuzzer") { sources = [ "test/fuzzer/json.cc", ] @@ -2085,17 +2516,13 @@ source_set("json_fuzzer") { ":fuzzer_support", ] - configs -= [ "//build/config/compiler:chromium_code" ] - configs += [ "//build/config/compiler:no_chromium_code" ] - configs += [ - ":internal_config", - ":libplatform_config", - ":features", - ":toolchain", - ] + configs = [ ":internal_config" ] +} + +v8_fuzzer("json_fuzzer") { } -source_set("parser_fuzzer") { +v8_source_set("parser_fuzzer") { sources = [ "test/fuzzer/parser.cc", ] @@ -2104,17 +2531,13 @@ source_set("parser_fuzzer") { ":fuzzer_support", ] - configs -= [ "//build/config/compiler:chromium_code" ] - configs += [ "//build/config/compiler:no_chromium_code" ] - configs += [ - ":internal_config", - ":libplatform_config", - ":features", - ":toolchain", - ] + configs = [ ":internal_config" ] +} + +v8_fuzzer("parser_fuzzer") { } -source_set("regexp_fuzzer") { +v8_source_set("regexp_fuzzer") { sources = [ "test/fuzzer/regexp.cc", ] @@ -2123,17 +2546,13 @@ source_set("regexp_fuzzer") { ":fuzzer_support", ] - configs -= [ "//build/config/compiler:chromium_code" ] - configs += [ "//build/config/compiler:no_chromium_code" ] - configs += [ - ":internal_config", - ":libplatform_config", - ":features", - ":toolchain", - ] + configs = [ ":internal_config" ] +} + +v8_fuzzer("regexp_fuzzer") { } -source_set("wasm_fuzzer") { +v8_source_set("wasm_fuzzer") { sources = [ "test/fuzzer/wasm.cc", ] @@ -2142,17 +2561,13 @@ source_set("wasm_fuzzer") { ":fuzzer_support", ] - configs -= [ "//build/config/compiler:chromium_code" ] - configs += [ "//build/config/compiler:no_chromium_code" ] - configs += [ - ":internal_config", - ":libplatform_config", - ":features", - ":toolchain", - ] + configs = [ ":internal_config" ] +} + +v8_fuzzer("wasm_fuzzer") { } -source_set("wasm_asmjs_fuzzer") { +v8_source_set("wasm_asmjs_fuzzer") { sources = [ "test/fuzzer/wasm-asmjs.cc", ] @@ -2161,12 +2576,8 @@ source_set("wasm_asmjs_fuzzer") { ":fuzzer_support", ] - configs -= [ "//build/config/compiler:chromium_code" ] - configs += [ "//build/config/compiler:no_chromium_code" ] - configs += [ - ":internal_config", - ":libplatform_config", - ":features", - ":toolchain", - ] + configs = [ ":internal_config" ] +} + +v8_fuzzer("wasm_asmjs_fuzzer") { } diff --git a/deps/v8/ChangeLog b/deps/v8/ChangeLog index dc97b8042244cc..b2a43a11213240 100644 --- a/deps/v8/ChangeLog +++ b/deps/v8/ChangeLog @@ -1,2145 +1,6074 @@ -2016-04-06: Version 5.1.281 +2016-08-23: Version 5.4.500 Performance and stability improvements on all platforms. -2016-04-05: Version 5.1.280 +2016-08-23: Version 5.4.499 Performance and stability improvements on all platforms. -2016-04-05: Version 5.1.279 +2016-08-23: Version 5.4.498 + + Performance and stability improvements on all platforms. + + +2016-08-23: Version 5.4.497 + + Performance and stability improvements on all platforms. + + +2016-08-23: Version 5.4.496 + + Performance and stability improvements on all platforms. + + +2016-08-23: Version 5.4.495 + + Performance and stability improvements on all platforms. + + +2016-08-23: Version 5.4.494 + + Performance and stability improvements on all platforms. + + +2016-08-23: Version 5.4.493 + + Performance and stability improvements on all platforms. + + +2016-08-23: Version 5.4.492 + + Performance and stability improvements on all platforms. + + +2016-08-22: Version 5.4.491 + + Performance and stability improvements on all platforms. + + +2016-08-22: Version 5.4.490 + + Performance and stability improvements on all platforms. + + +2016-08-22: Version 5.4.489 + + Performance and stability improvements on all platforms. + + +2016-08-22: Version 5.4.488 + + Performance and stability improvements on all platforms. + + +2016-08-22: Version 5.4.487 + + Performance and stability improvements on all platforms. + + +2016-08-22: Version 5.4.486 + + Performance and stability improvements on all platforms. + + +2016-08-22: Version 5.4.485 + + Performance and stability improvements on all platforms. + + +2016-08-22: Version 5.4.484 + + Performance and stability improvements on all platforms. + + +2016-08-22: Version 5.4.483 + + Performance and stability improvements on all platforms. + + +2016-08-22: Version 5.4.482 + + Performance and stability improvements on all platforms. + + +2016-08-22: Version 5.4.481 + + Performance and stability improvements on all platforms. + + +2016-08-22: Version 5.4.480 + + Performance and stability improvements on all platforms. + + +2016-08-22: Version 5.4.479 + + Performance and stability improvements on all platforms. + + +2016-08-20: Version 5.4.478 + + Performance and stability improvements on all platforms. + + +2016-08-20: Version 5.4.477 + + Performance and stability improvements on all platforms. + + +2016-08-20: Version 5.4.476 + + Performance and stability improvements on all platforms. + + +2016-08-19: Version 5.4.475 + + Performance and stability improvements on all platforms. + + +2016-08-19: Version 5.4.474 + + Performance and stability improvements on all platforms. + + +2016-08-19: Version 5.4.473 + + Performance and stability improvements on all platforms. + + +2016-08-19: Version 5.4.472 + + Performance and stability improvements on all platforms. + + +2016-08-19: Version 5.4.471 + + Performance and stability improvements on all platforms. + + +2016-08-19: Version 5.4.470 + + Performance and stability improvements on all platforms. + + +2016-08-19: Version 5.4.469 + + Performance and stability improvements on all platforms. + + +2016-08-19: Version 5.4.468 + + Performance and stability improvements on all platforms. + + +2016-08-19: Version 5.4.467 + + Performance and stability improvements on all platforms. + + +2016-08-19: Version 5.4.466 + + Performance and stability improvements on all platforms. + + +2016-08-19: Version 5.4.465 + + Performance and stability improvements on all platforms. + + +2016-08-19: Version 5.4.464 + + Performance and stability improvements on all platforms. + + +2016-08-19: Version 5.4.463 + + Performance and stability improvements on all platforms. + + +2016-08-19: Version 5.4.462 + + Performance and stability improvements on all platforms. + + +2016-08-19: Version 5.4.461 + + Performance and stability improvements on all platforms. + + +2016-08-19: Version 5.4.460 + + Performance and stability improvements on all platforms. + + +2016-08-18: Version 5.4.459 + + Performance and stability improvements on all platforms. + + +2016-08-18: Version 5.4.458 + + Performance and stability improvements on all platforms. + + +2016-08-18: Version 5.4.457 + + Performance and stability improvements on all platforms. + + +2016-08-18: Version 5.4.456 + + Performance and stability improvements on all platforms. + + +2016-08-18: Version 5.4.455 + + Performance and stability improvements on all platforms. + + +2016-08-18: Version 5.4.454 + + Performance and stability improvements on all platforms. + + +2016-08-18: Version 5.4.453 + + Performance and stability improvements on all platforms. + + +2016-08-18: Version 5.4.452 + + Performance and stability improvements on all platforms. + + +2016-08-18: Version 5.4.451 + + Performance and stability improvements on all platforms. + + +2016-08-18: Version 5.4.450 + + Performance and stability improvements on all platforms. + + +2016-08-17: Version 5.4.449 + + Performance and stability improvements on all platforms. + + +2016-08-17: Version 5.4.448 + + Performance and stability improvements on all platforms. + + +2016-08-17: Version 5.4.447 + + Performance and stability improvements on all platforms. + + +2016-08-17: Version 5.4.446 + + Performance and stability improvements on all platforms. + + +2016-08-17: Version 5.4.445 + + Performance and stability improvements on all platforms. + + +2016-08-17: Version 5.4.444 + + Performance and stability improvements on all platforms. + + +2016-08-17: Version 5.4.443 + + Performance and stability improvements on all platforms. + + +2016-08-17: Version 5.4.442 + + Performance and stability improvements on all platforms. + + +2016-08-17: Version 5.4.441 + + Performance and stability improvements on all platforms. + + +2016-08-17: Version 5.4.440 + + Performance and stability improvements on all platforms. + + +2016-08-16: Version 5.4.439 + + Performance and stability improvements on all platforms. + + +2016-08-16: Version 5.4.438 + + Performance and stability improvements on all platforms. + + +2016-08-16: Version 5.4.437 + + Performance and stability improvements on all platforms. + + +2016-08-16: Version 5.4.436 + + Performance and stability improvements on all platforms. + + +2016-08-16: Version 5.4.435 + + Performance and stability improvements on all platforms. + + +2016-08-16: Version 5.4.434 + + Performance and stability improvements on all platforms. + + +2016-08-16: Version 5.4.433 + + Performance and stability improvements on all platforms. + + +2016-08-16: Version 5.4.432 + + Performance and stability improvements on all platforms. + + +2016-08-16: Version 5.4.431 + + Performance and stability improvements on all platforms. + + +2016-08-16: Version 5.4.430 + + Performance and stability improvements on all platforms. + + +2016-08-16: Version 5.4.429 + + Performance and stability improvements on all platforms. + + +2016-08-16: Version 5.4.428 + + Performance and stability improvements on all platforms. + + +2016-08-15: Version 5.4.427 + + Performance and stability improvements on all platforms. + + +2016-08-15: Version 5.4.426 + + Performance and stability improvements on all platforms. + + +2016-08-15: Version 5.4.425 + + Performance and stability improvements on all platforms. + + +2016-08-15: Version 5.4.424 + + Performance and stability improvements on all platforms. + + +2016-08-15: Version 5.4.423 + + Performance and stability improvements on all platforms. + + +2016-08-14: Version 5.4.422 + + Performance and stability improvements on all platforms. + + +2016-08-14: Version 5.4.421 + + Performance and stability improvements on all platforms. + + +2016-08-13: Version 5.4.420 + + Performance and stability improvements on all platforms. + + +2016-08-12: Version 5.4.419 + + Performance and stability improvements on all platforms. + + +2016-08-12: Version 5.4.418 + + Performance and stability improvements on all platforms. + + +2016-08-12: Version 5.4.417 + + Performance and stability improvements on all platforms. + + +2016-08-12: Version 5.4.416 + + Performance and stability improvements on all platforms. + + +2016-08-12: Version 5.4.415 + + Performance and stability improvements on all platforms. + + +2016-08-12: Version 5.4.414 + + Performance and stability improvements on all platforms. + + +2016-08-12: Version 5.4.413 + + Performance and stability improvements on all platforms. + + +2016-08-12: Version 5.4.412 + + Performance and stability improvements on all platforms. + + +2016-08-12: Version 5.4.411 + + Performance and stability improvements on all platforms. + + +2016-08-12: Version 5.4.410 + + Performance and stability improvements on all platforms. + + +2016-08-12: Version 5.4.409 + + Performance and stability improvements on all platforms. + + +2016-08-12: Version 5.4.408 + + Performance and stability improvements on all platforms. + + +2016-08-12: Version 5.4.407 + + Performance and stability improvements on all platforms. + + +2016-08-11: Version 5.4.406 + + Performance and stability improvements on all platforms. + + +2016-08-11: Version 5.4.405 + + Performance and stability improvements on all platforms. + + +2016-08-11: Version 5.4.404 + + Performance and stability improvements on all platforms. + + +2016-08-11: Version 5.4.403 + + Performance and stability improvements on all platforms. + + +2016-08-11: Version 5.4.402 + + Performance and stability improvements on all platforms. + + +2016-08-11: Version 5.4.401 + + Performance and stability improvements on all platforms. + + +2016-08-11: Version 5.4.400 + + Performance and stability improvements on all platforms. + + +2016-08-11: Version 5.4.399 + + Performance and stability improvements on all platforms. + + +2016-08-10: Version 5.4.398 + + Performance and stability improvements on all platforms. + + +2016-08-10: Version 5.4.397 + + Performance and stability improvements on all platforms. + + +2016-08-10: Version 5.4.396 + + Performance and stability improvements on all platforms. + + +2016-08-10: Version 5.4.395 + + Performance and stability improvements on all platforms. + + +2016-08-10: Version 5.4.394 + + Performance and stability improvements on all platforms. + + +2016-08-10: Version 5.4.393 + + Performance and stability improvements on all platforms. + + +2016-08-10: Version 5.4.392 + + Performance and stability improvements on all platforms. + + +2016-08-09: Version 5.4.391 + + Performance and stability improvements on all platforms. + + +2016-08-09: Version 5.4.390 + + Performance and stability improvements on all platforms. + + +2016-08-09: Version 5.4.389 + + Performance and stability improvements on all platforms. + + +2016-08-09: Version 5.4.388 + + Performance and stability improvements on all platforms. + + +2016-08-09: Version 5.4.387 + + Performance and stability improvements on all platforms. + + +2016-08-09: Version 5.4.386 + + Performance and stability improvements on all platforms. + + +2016-08-09: Version 5.4.385 + + Performance and stability improvements on all platforms. + + +2016-08-09: Version 5.4.384 + + Performance and stability improvements on all platforms. + + +2016-08-09: Version 5.4.383 + + Performance and stability improvements on all platforms. + + +2016-08-09: Version 5.4.382 + + Performance and stability improvements on all platforms. + + +2016-08-09: Version 5.4.381 + + Performance and stability improvements on all platforms. + + +2016-08-09: Version 5.4.380 + + Performance and stability improvements on all platforms. + + +2016-08-09: Version 5.4.379 + + Performance and stability improvements on all platforms. + + +2016-08-09: Version 5.4.378 + + Performance and stability improvements on all platforms. + + +2016-08-08: Version 5.4.377 + + Performance and stability improvements on all platforms. + + +2016-08-08: Version 5.4.376 + + Performance and stability improvements on all platforms. + + +2016-08-08: Version 5.4.375 + + Performance and stability improvements on all platforms. + + +2016-08-08: Version 5.4.374 + + Performance and stability improvements on all platforms. + + +2016-08-08: Version 5.4.373 + + Performance and stability improvements on all platforms. + + +2016-08-08: Version 5.4.372 + + Performance and stability improvements on all platforms. + + +2016-08-08: Version 5.4.371 + + Performance and stability improvements on all platforms. + + +2016-08-08: Version 5.4.370 + + Performance and stability improvements on all platforms. + + +2016-08-08: Version 5.4.369 + + Performance and stability improvements on all platforms. + + +2016-08-08: Version 5.4.368 + + Performance and stability improvements on all platforms. + + +2016-08-08: Version 5.4.367 + + Performance and stability improvements on all platforms. + + +2016-08-05: Version 5.4.366 + + Performance and stability improvements on all platforms. + + +2016-08-05: Version 5.4.365 + + Performance and stability improvements on all platforms. + + +2016-08-05: Version 5.4.364 + + Performance and stability improvements on all platforms. + + +2016-08-05: Version 5.4.363 + + Performance and stability improvements on all platforms. + + +2016-08-05: Version 5.4.362 + + Performance and stability improvements on all platforms. + + +2016-08-05: Version 5.4.361 + + Performance and stability improvements on all platforms. + + +2016-08-05: Version 5.4.360 + + Performance and stability improvements on all platforms. + + +2016-08-05: Version 5.4.359 + + Performance and stability improvements on all platforms. + + +2016-08-05: Version 5.4.358 + + Performance and stability improvements on all platforms. + + +2016-08-05: Version 5.4.357 + + Performance and stability improvements on all platforms. + + +2016-08-05: Version 5.4.356 + + Performance and stability improvements on all platforms. + + +2016-08-04: Version 5.4.355 + + Performance and stability improvements on all platforms. + + +2016-08-04: Version 5.4.354 + + Performance and stability improvements on all platforms. + + +2016-08-04: Version 5.4.353 + + Performance and stability improvements on all platforms. + + +2016-08-04: Version 5.4.352 + + Performance and stability improvements on all platforms. + + +2016-08-04: Version 5.4.351 + + Performance and stability improvements on all platforms. + + +2016-08-04: Version 5.4.350 + + Performance and stability improvements on all platforms. + + +2016-08-04: Version 5.4.349 + + Performance and stability improvements on all platforms. + + +2016-08-03: Version 5.4.348 + + Performance and stability improvements on all platforms. + + +2016-08-03: Version 5.4.347 + + Performance and stability improvements on all platforms. + + +2016-08-03: Version 5.4.346 + + Performance and stability improvements on all platforms. + + +2016-08-03: Version 5.4.345 + + Performance and stability improvements on all platforms. + + +2016-08-03: Version 5.4.344 + + Performance and stability improvements on all platforms. + + +2016-08-03: Version 5.4.343 + + Performance and stability improvements on all platforms. + + +2016-08-03: Version 5.4.342 + + Performance and stability improvements on all platforms. + + +2016-08-03: Version 5.4.341 + + Performance and stability improvements on all platforms. + + +2016-08-03: Version 5.4.340 + + Performance and stability improvements on all platforms. + + +2016-08-03: Version 5.4.339 + + Performance and stability improvements on all platforms. + + +2016-08-03: Version 5.4.338 + + Performance and stability improvements on all platforms. + + +2016-08-03: Version 5.4.337 + + Performance and stability improvements on all platforms. + + +2016-08-02: Version 5.4.336 + + Performance and stability improvements on all platforms. + + +2016-08-02: Version 5.4.335 + + Performance and stability improvements on all platforms. + + +2016-08-02: Version 5.4.334 + + Performance and stability improvements on all platforms. + + +2016-08-02: Version 5.4.333 + + Performance and stability improvements on all platforms. + + +2016-08-02: Version 5.4.332 + + Performance and stability improvements on all platforms. + + +2016-08-02: Version 5.4.331 + + Performance and stability improvements on all platforms. + + +2016-08-02: Version 5.4.330 + + Performance and stability improvements on all platforms. + + +2016-08-02: Version 5.4.329 + + Performance and stability improvements on all platforms. + + +2016-08-02: Version 5.4.328 + + Performance and stability improvements on all platforms. + + +2016-08-02: Version 5.4.327 + + Performance and stability improvements on all platforms. + + +2016-08-02: Version 5.4.326 + + Performance and stability improvements on all platforms. + + +2016-08-02: Version 5.4.325 + + Performance and stability improvements on all platforms. + + +2016-08-02: Version 5.4.324 + + Performance and stability improvements on all platforms. + + +2016-08-02: Version 5.4.323 + + Performance and stability improvements on all platforms. + + +2016-08-02: Version 5.4.322 + + Performance and stability improvements on all platforms. + + +2016-08-02: Version 5.4.321 + + Performance and stability improvements on all platforms. + + +2016-08-01: Version 5.4.320 + + Performance and stability improvements on all platforms. + + +2016-08-01: Version 5.4.319 + + Performance and stability improvements on all platforms. + + +2016-08-01: Version 5.4.318 + + Performance and stability improvements on all platforms. + + +2016-08-01: Version 5.4.317 + + Performance and stability improvements on all platforms. + + +2016-08-01: Version 5.4.316 + + Performance and stability improvements on all platforms. + + +2016-08-01: Version 5.4.315 + + Performance and stability improvements on all platforms. + + +2016-08-01: Version 5.4.314 + + Performance and stability improvements on all platforms. + + +2016-08-01: Version 5.4.313 + + Performance and stability improvements on all platforms. + + +2016-08-01: Version 5.4.312 + + Performance and stability improvements on all platforms. + + +2016-08-01: Version 5.4.311 + + Performance and stability improvements on all platforms. + + +2016-08-01: Version 5.4.310 + + Performance and stability improvements on all platforms. + + +2016-08-01: Version 5.4.309 + + Performance and stability improvements on all platforms. + + +2016-08-01: Version 5.4.308 + + Performance and stability improvements on all platforms. + + +2016-08-01: Version 5.4.307 + + Performance and stability improvements on all platforms. + + +2016-08-01: Version 5.4.306 + + Performance and stability improvements on all platforms. + + +2016-07-31: Version 5.4.305 + + Performance and stability improvements on all platforms. + + +2016-07-31: Version 5.4.304 + + Performance and stability improvements on all platforms. + + +2016-07-30: Version 5.4.303 + + Performance and stability improvements on all platforms. + + +2016-07-30: Version 5.4.302 + + Performance and stability improvements on all platforms. + + +2016-07-29: Version 5.4.301 + + Performance and stability improvements on all platforms. + + +2016-07-29: Version 5.4.300 + + Performance and stability improvements on all platforms. + + +2016-07-29: Version 5.4.299 + + Performance and stability improvements on all platforms. + + +2016-07-29: Version 5.4.298 + + Performance and stability improvements on all platforms. + + +2016-07-29: Version 5.4.297 + + Performance and stability improvements on all platforms. + + +2016-07-29: Version 5.4.296 + + Performance and stability improvements on all platforms. + + +2016-07-29: Version 5.4.295 + + Performance and stability improvements on all platforms. + + +2016-07-29: Version 5.4.294 + + Performance and stability improvements on all platforms. + + +2016-07-29: Version 5.4.293 + + Performance and stability improvements on all platforms. + + +2016-07-29: Version 5.4.292 + + Performance and stability improvements on all platforms. + + +2016-07-29: Version 5.4.291 + + Performance and stability improvements on all platforms. + + +2016-07-29: Version 5.4.290 + + Performance and stability improvements on all platforms. + + +2016-07-29: Version 5.4.289 + + Performance and stability improvements on all platforms. + + +2016-07-29: Version 5.4.288 + + Performance and stability improvements on all platforms. + + +2016-07-28: Version 5.4.287 + + Performance and stability improvements on all platforms. + + +2016-07-28: Version 5.4.286 + + Performance and stability improvements on all platforms. + + +2016-07-28: Version 5.4.285 + + Performance and stability improvements on all platforms. + + +2016-07-28: Version 5.4.284 + + Performance and stability improvements on all platforms. + + +2016-07-28: Version 5.4.283 + + Performance and stability improvements on all platforms. + + +2016-07-28: Version 5.4.282 + + Performance and stability improvements on all platforms. + + +2016-07-28: Version 5.4.281 + + Performance and stability improvements on all platforms. + + +2016-07-27: Version 5.4.280 + + Performance and stability improvements on all platforms. + + +2016-07-27: Version 5.4.279 + + Performance and stability improvements on all platforms. + + +2016-07-27: Version 5.4.278 + + Performance and stability improvements on all platforms. + + +2016-07-27: Version 5.4.277 + + Performance and stability improvements on all platforms. + + +2016-07-27: Version 5.4.276 + + Performance and stability improvements on all platforms. + + +2016-07-27: Version 5.4.275 + + Performance and stability improvements on all platforms. + + +2016-07-27: Version 5.4.274 + + Performance and stability improvements on all platforms. + + +2016-07-27: Version 5.4.273 + + Performance and stability improvements on all platforms. + + +2016-07-27: Version 5.4.272 + + Performance and stability improvements on all platforms. + + +2016-07-27: Version 5.4.271 + + Performance and stability improvements on all platforms. + + +2016-07-27: Version 5.4.270 + + Performance and stability improvements on all platforms. + + +2016-07-27: Version 5.4.269 + + Performance and stability improvements on all platforms. + + +2016-07-27: Version 5.4.268 + + Performance and stability improvements on all platforms. + + +2016-07-27: Version 5.4.267 + + Performance and stability improvements on all platforms. + + +2016-07-26: Version 5.4.266 + + Performance and stability improvements on all platforms. + + +2016-07-26: Version 5.4.265 + + Performance and stability improvements on all platforms. + + +2016-07-26: Version 5.4.264 + + Performance and stability improvements on all platforms. + + +2016-07-26: Version 5.4.263 + + Performance and stability improvements on all platforms. + + +2016-07-26: Version 5.4.262 + + Performance and stability improvements on all platforms. + + +2016-07-26: Version 5.4.261 + + Performance and stability improvements on all platforms. + + +2016-07-26: Version 5.4.260 + + Performance and stability improvements on all platforms. + + +2016-07-26: Version 5.4.259 + + Performance and stability improvements on all platforms. + + +2016-07-26: Version 5.4.258 + + Performance and stability improvements on all platforms. + + +2016-07-26: Version 5.4.257 + + Performance and stability improvements on all platforms. + + +2016-07-26: Version 5.4.256 + + Performance and stability improvements on all platforms. + + +2016-07-26: Version 5.4.255 + + Performance and stability improvements on all platforms. + + +2016-07-26: Version 5.4.254 + + Performance and stability improvements on all platforms. + + +2016-07-26: Version 5.4.253 + + Performance and stability improvements on all platforms. + + +2016-07-26: Version 5.4.252 + + Performance and stability improvements on all platforms. + + +2016-07-26: Version 5.4.251 + + Performance and stability improvements on all platforms. + + +2016-07-26: Version 5.4.250 + + Performance and stability improvements on all platforms. + + +2016-07-25: Version 5.4.249 + + Performance and stability improvements on all platforms. + + +2016-07-25: Version 5.4.248 + + Performance and stability improvements on all platforms. + + +2016-07-25: Version 5.4.247 + + Performance and stability improvements on all platforms. + + +2016-07-25: Version 5.4.246 + + Performance and stability improvements on all platforms. + + +2016-07-25: Version 5.4.245 + + Performance and stability improvements on all platforms. + + +2016-07-25: Version 5.4.244 + + Performance and stability improvements on all platforms. + + +2016-07-25: Version 5.4.243 + + Performance and stability improvements on all platforms. + + +2016-07-25: Version 5.4.242 + + Performance and stability improvements on all platforms. + + +2016-07-25: Version 5.4.241 + + Performance and stability improvements on all platforms. + + +2016-07-25: Version 5.4.240 + + Performance and stability improvements on all platforms. + + +2016-07-25: Version 5.4.239 + + Performance and stability improvements on all platforms. + + +2016-07-25: Version 5.4.238 + + Performance and stability improvements on all platforms. + + +2016-07-25: Version 5.4.237 + + Performance and stability improvements on all platforms. + + +2016-07-25: Version 5.4.236 + + Performance and stability improvements on all platforms. + + +2016-07-25: Version 5.4.235 + + Performance and stability improvements on all platforms. + + +2016-07-24: Version 5.4.234 + + Performance and stability improvements on all platforms. + + +2016-07-24: Version 5.4.233 + + Performance and stability improvements on all platforms. + + +2016-07-23: Version 5.4.232 + + Performance and stability improvements on all platforms. + + +2016-07-22: Version 5.4.231 + + Performance and stability improvements on all platforms. + + +2016-07-22: Version 5.4.230 + + Performance and stability improvements on all platforms. + + +2016-07-22: Version 5.4.229 + + Performance and stability improvements on all platforms. + + +2016-07-22: Version 5.4.228 + + Performance and stability improvements on all platforms. + + +2016-07-22: Version 5.4.227 + + Performance and stability improvements on all platforms. + + +2016-07-22: Version 5.4.226 + + Performance and stability improvements on all platforms. + + +2016-07-22: Version 5.4.225 + + Performance and stability improvements on all platforms. + + +2016-07-22: Version 5.4.224 + + Performance and stability improvements on all platforms. + + +2016-07-22: Version 5.4.223 + + Performance and stability improvements on all platforms. + + +2016-07-22: Version 5.4.222 + + Performance and stability improvements on all platforms. + + +2016-07-22: Version 5.4.221 + + Performance and stability improvements on all platforms. + + +2016-07-22: Version 5.4.220 + + Performance and stability improvements on all platforms. + + +2016-07-22: Version 5.4.219 + + Performance and stability improvements on all platforms. + + +2016-07-22: Version 5.4.218 + + Performance and stability improvements on all platforms. + + +2016-07-21: Version 5.4.217 + + Performance and stability improvements on all platforms. + + +2016-07-21: Version 5.4.216 + + Performance and stability improvements on all platforms. + + +2016-07-21: Version 5.4.215 + + Performance and stability improvements on all platforms. + + +2016-07-21: Version 5.4.214 + + Performance and stability improvements on all platforms. + + +2016-07-21: Version 5.4.213 + + Performance and stability improvements on all platforms. + + +2016-07-21: Version 5.4.212 + + Performance and stability improvements on all platforms. + + +2016-07-21: Version 5.4.211 + + Performance and stability improvements on all platforms. + + +2016-07-21: Version 5.4.210 + + Performance and stability improvements on all platforms. + + +2016-07-21: Version 5.4.209 + + Performance and stability improvements on all platforms. + + +2016-07-21: Version 5.4.208 + + Performance and stability improvements on all platforms. + + +2016-07-21: Version 5.4.207 + + Performance and stability improvements on all platforms. + + +2016-07-21: Version 5.4.206 + + Performance and stability improvements on all platforms. + + +2016-07-21: Version 5.4.205 + + Performance and stability improvements on all platforms. + + +2016-07-21: Version 5.4.204 + + Performance and stability improvements on all platforms. + + +2016-07-21: Version 5.4.203 + + Performance and stability improvements on all platforms. + + +2016-07-21: Version 5.4.202 + + Performance and stability improvements on all platforms. + + +2016-07-21: Version 5.4.201 + + Performance and stability improvements on all platforms. + + +2016-07-20: Version 5.4.200 + + Performance and stability improvements on all platforms. + + +2016-07-20: Version 5.4.199 + + Performance and stability improvements on all platforms. + + +2016-07-20: Version 5.4.198 + + Performance and stability improvements on all platforms. + + +2016-07-20: Version 5.4.197 + + Performance and stability improvements on all platforms. + + +2016-07-20: Version 5.4.196 + + Performance and stability improvements on all platforms. + + +2016-07-20: Version 5.4.195 + + Performance and stability improvements on all platforms. + + +2016-07-20: Version 5.4.194 + + Performance and stability improvements on all platforms. + + +2016-07-20: Version 5.4.193 + + Performance and stability improvements on all platforms. + + +2016-07-20: Version 5.4.192 + + Performance and stability improvements on all platforms. + + +2016-07-20: Version 5.4.191 + + Performance and stability improvements on all platforms. + + +2016-07-19: Version 5.4.190 + + Performance and stability improvements on all platforms. + + +2016-07-19: Version 5.4.189 + + Performance and stability improvements on all platforms. + + +2016-07-18: Version 5.4.188 + + Performance and stability improvements on all platforms. + + +2016-07-18: Version 5.4.187 + + Performance and stability improvements on all platforms. + + +2016-07-18: Version 5.4.186 + + Performance and stability improvements on all platforms. + + +2016-07-18: Version 5.4.185 + + Performance and stability improvements on all platforms. + + +2016-07-18: Version 5.4.184 + + Performance and stability improvements on all platforms. + + +2016-07-18: Version 5.4.183 + + Performance and stability improvements on all platforms. + + +2016-07-18: Version 5.4.182 + + Performance and stability improvements on all platforms. + + +2016-07-18: Version 5.4.181 + + Performance and stability improvements on all platforms. + + +2016-07-18: Version 5.4.180 + + Performance and stability improvements on all platforms. + + +2016-07-18: Version 5.4.179 + + Performance and stability improvements on all platforms. + + +2016-07-18: Version 5.4.178 + + Performance and stability improvements on all platforms. + + +2016-07-18: Version 5.4.177 + + Performance and stability improvements on all platforms. + + +2016-07-18: Version 5.4.176 + + Performance and stability improvements on all platforms. + + +2016-07-18: Version 5.4.175 + + Performance and stability improvements on all platforms. + + +2016-07-17: Version 5.4.174 + + Performance and stability improvements on all platforms. + + +2016-07-17: Version 5.4.173 + + Performance and stability improvements on all platforms. + + +2016-07-17: Version 5.4.172 + + Performance and stability improvements on all platforms. + + +2016-07-16: Version 5.4.171 + + Performance and stability improvements on all platforms. + + +2016-07-16: Version 5.4.170 + + Performance and stability improvements on all platforms. + + +2016-07-16: Version 5.4.169 + + Performance and stability improvements on all platforms. + + +2016-07-15: Version 5.4.168 + + Performance and stability improvements on all platforms. + + +2016-07-15: Version 5.4.167 + + Performance and stability improvements on all platforms. + + +2016-07-15: Version 5.4.166 + + Performance and stability improvements on all platforms. + + +2016-07-15: Version 5.4.165 + + Performance and stability improvements on all platforms. + + +2016-07-15: Version 5.4.164 + + Performance and stability improvements on all platforms. + + +2016-07-15: Version 5.4.163 + + Performance and stability improvements on all platforms. + + +2016-07-15: Version 5.4.162 + + Performance and stability improvements on all platforms. + + +2016-07-15: Version 5.4.161 + + Performance and stability improvements on all platforms. + + +2016-07-15: Version 5.4.160 + + Performance and stability improvements on all platforms. + + +2016-07-15: Version 5.4.159 + + Performance and stability improvements on all platforms. + + +2016-07-15: Version 5.4.158 + + Performance and stability improvements on all platforms. + + +2016-07-15: Version 5.4.157 + + Performance and stability improvements on all platforms. + + +2016-07-14: Version 5.4.156 + + Performance and stability improvements on all platforms. + + +2016-07-14: Version 5.4.155 + + Performance and stability improvements on all platforms. + + +2016-07-14: Version 5.4.154 + + Performance and stability improvements on all platforms. + + +2016-07-14: Version 5.4.153 + + Performance and stability improvements on all platforms. + + +2016-07-14: Version 5.4.152 + + Performance and stability improvements on all platforms. + + +2016-07-14: Version 5.4.151 + + Performance and stability improvements on all platforms. + + +2016-07-14: Version 5.4.150 + + Performance and stability improvements on all platforms. + + +2016-07-14: Version 5.4.149 + + Performance and stability improvements on all platforms. + + +2016-07-14: Version 5.4.148 + + Performance and stability improvements on all platforms. + + +2016-07-14: Version 5.4.147 + + Performance and stability improvements on all platforms. + + +2016-07-14: Version 5.4.146 + + Performance and stability improvements on all platforms. + + +2016-07-14: Version 5.4.145 + + Performance and stability improvements on all platforms. + + +2016-07-14: Version 5.4.144 + + Performance and stability improvements on all platforms. + + +2016-07-14: Version 5.4.143 + + Performance and stability improvements on all platforms. + + +2016-07-14: Version 5.4.142 + + Performance and stability improvements on all platforms. + + +2016-07-14: Version 5.4.141 + + Performance and stability improvements on all platforms. + + +2016-07-14: Version 5.4.140 + + Performance and stability improvements on all platforms. + + +2016-07-14: Version 5.4.139 + + Performance and stability improvements on all platforms. + + +2016-07-14: Version 5.4.138 + + Performance and stability improvements on all platforms. + + +2016-07-14: Version 5.4.137 + + Performance and stability improvements on all platforms. + + +2016-07-14: Version 5.4.136 + + Performance and stability improvements on all platforms. + + +2016-07-14: Version 5.4.135 + + Performance and stability improvements on all platforms. + + +2016-07-13: Version 5.4.134 + + Performance and stability improvements on all platforms. + + +2016-07-13: Version 5.4.133 + + Performance and stability improvements on all platforms. + + +2016-07-13: Version 5.4.132 + + Performance and stability improvements on all platforms. + + +2016-07-13: Version 5.4.131 + + Performance and stability improvements on all platforms. + + +2016-07-13: Version 5.4.130 + + Performance and stability improvements on all platforms. + + +2016-07-13: Version 5.4.129 + + Performance and stability improvements on all platforms. + + +2016-07-13: Version 5.4.128 + + Performance and stability improvements on all platforms. + + +2016-07-13: Version 5.4.127 + + Performance and stability improvements on all platforms. + + +2016-07-13: Version 5.4.126 + + Performance and stability improvements on all platforms. + + +2016-07-13: Version 5.4.125 + + Performance and stability improvements on all platforms. + + +2016-07-13: Version 5.4.124 + + Performance and stability improvements on all platforms. + + +2016-07-13: Version 5.4.123 + + Performance and stability improvements on all platforms. + + +2016-07-13: Version 5.4.122 + + Performance and stability improvements on all platforms. + + +2016-07-13: Version 5.4.121 + + Performance and stability improvements on all platforms. + + +2016-07-13: Version 5.4.120 + + Performance and stability improvements on all platforms. + + +2016-07-13: Version 5.4.119 + + Performance and stability improvements on all platforms. + + +2016-07-13: Version 5.4.118 + + Performance and stability improvements on all platforms. + + +2016-07-13: Version 5.4.117 + + Performance and stability improvements on all platforms. + + +2016-07-13: Version 5.4.116 + + Performance and stability improvements on all platforms. + + +2016-07-13: Version 5.4.115 + + Performance and stability improvements on all platforms. + + +2016-07-13: Version 5.4.114 + + Performance and stability improvements on all platforms. + + +2016-07-13: Version 5.4.113 + + Performance and stability improvements on all platforms. + + +2016-07-13: Version 5.4.112 + + Performance and stability improvements on all platforms. + + +2016-07-13: Version 5.4.111 + + Performance and stability improvements on all platforms. + + +2016-07-12: Version 5.4.110 + + Performance and stability improvements on all platforms. + + +2016-07-12: Version 5.4.109 + + Performance and stability improvements on all platforms. + + +2016-07-12: Version 5.4.108 + + Performance and stability improvements on all platforms. + + +2016-07-12: Version 5.4.107 + + Performance and stability improvements on all platforms. + + +2016-07-12: Version 5.4.106 + + Performance and stability improvements on all platforms. + + +2016-07-12: Version 5.4.105 + + Performance and stability improvements on all platforms. + + +2016-07-12: Version 5.4.104 + + Performance and stability improvements on all platforms. + + +2016-07-12: Version 5.4.103 + + Performance and stability improvements on all platforms. + + +2016-07-12: Version 5.4.102 + + Performance and stability improvements on all platforms. + + +2016-07-12: Version 5.4.101 + + Performance and stability improvements on all platforms. + + +2016-07-12: Version 5.4.100 + + Performance and stability improvements on all platforms. + + +2016-07-12: Version 5.4.99 + + Performance and stability improvements on all platforms. + + +2016-07-12: Version 5.4.98 + + Performance and stability improvements on all platforms. + + +2016-07-12: Version 5.4.97 + + Performance and stability improvements on all platforms. + + +2016-07-12: Version 5.4.96 + + Performance and stability improvements on all platforms. + + +2016-07-12: Version 5.4.95 + + Performance and stability improvements on all platforms. + + +2016-07-12: Version 5.4.94 + + Performance and stability improvements on all platforms. + + +2016-07-12: Version 5.4.93 + + Performance and stability improvements on all platforms. + + +2016-07-11: Version 5.4.92 + + Performance and stability improvements on all platforms. + + +2016-07-11: Version 5.4.91 + + Performance and stability improvements on all platforms. + + +2016-07-11: Version 5.4.90 + + Performance and stability improvements on all platforms. + + +2016-07-11: Version 5.4.89 + + Performance and stability improvements on all platforms. + + +2016-07-11: Version 5.4.88 + + Recognize HTMLCloseComment after multiline comment (issue 5142). + + Performance and stability improvements on all platforms. + + +2016-07-11: Version 5.4.87 + + Performance and stability improvements on all platforms. + + +2016-07-11: Version 5.4.86 + + Performance and stability improvements on all platforms. + + +2016-07-11: Version 5.4.85 + + Performance and stability improvements on all platforms. + + +2016-07-11: Version 5.4.84 + + Performance and stability improvements on all platforms. + + +2016-07-11: Version 5.4.83 + + Performance and stability improvements on all platforms. + + +2016-07-11: Version 5.4.82 + + Performance and stability improvements on all platforms. + + +2016-07-11: Version 5.4.81 + + Performance and stability improvements on all platforms. + + +2016-07-11: Version 5.4.80 + + Performance and stability improvements on all platforms. + + +2016-07-11: Version 5.4.79 + + Performance and stability improvements on all platforms. + + +2016-07-11: Version 5.4.78 + + Performance and stability improvements on all platforms. + + +2016-07-11: Version 5.4.77 + + Performance and stability improvements on all platforms. + + +2016-07-11: Version 5.4.76 + + Performance and stability improvements on all platforms. + + +2016-07-11: Version 5.4.75 + + Performance and stability improvements on all platforms. + + +2016-07-11: Version 5.4.74 + + Performance and stability improvements on all platforms. + + +2016-07-11: Version 5.4.73 + + Performance and stability improvements on all platforms. + + +2016-07-11: Version 5.4.72 + + Performance and stability improvements on all platforms. + + +2016-07-11: Version 5.4.71 + + Performance and stability improvements on all platforms. + + +2016-07-08: Version 5.4.70 + + Performance and stability improvements on all platforms. + + +2016-07-08: Version 5.4.69 + + Performance and stability improvements on all platforms. + + +2016-07-08: Version 5.4.68 + + Performance and stability improvements on all platforms. + + +2016-07-08: Version 5.4.67 + + Performance and stability improvements on all platforms. + + +2016-07-08: Version 5.4.66 + + Performance and stability improvements on all platforms. + + +2016-07-08: Version 5.4.65 + + Performance and stability improvements on all platforms. + + +2016-07-08: Version 5.4.64 + + Performance and stability improvements on all platforms. + + +2016-07-08: Version 5.4.63 + + Performance and stability improvements on all platforms. + + +2016-07-08: Version 5.4.62 + + Performance and stability improvements on all platforms. + + +2016-07-08: Version 5.4.61 + + Performance and stability improvements on all platforms. + + +2016-07-08: Version 5.4.60 + + Performance and stability improvements on all platforms. + + +2016-07-07: Version 5.4.59 + + Performance and stability improvements on all platforms. + + +2016-07-07: Version 5.4.58 + + Performance and stability improvements on all platforms. + + +2016-07-07: Version 5.4.57 + + Performance and stability improvements on all platforms. + + +2016-07-07: Version 5.4.56 + + Performance and stability improvements on all platforms. + + +2016-07-07: Version 5.4.55 + + Performance and stability improvements on all platforms. + + +2016-07-07: Version 5.4.54 + + Performance and stability improvements on all platforms. + + +2016-07-07: Version 5.4.53 + + Performance and stability improvements on all platforms. + + +2016-07-07: Version 5.4.52 + + Performance and stability improvements on all platforms. + + +2016-07-07: Version 5.4.51 + + Performance and stability improvements on all platforms. + + +2016-07-07: Version 5.4.50 + + Performance and stability improvements on all platforms. + + +2016-07-07: Version 5.4.49 + + Performance and stability improvements on all platforms. + + +2016-07-07: Version 5.4.48 + + Performance and stability improvements on all platforms. + + +2016-07-07: Version 5.4.47 + + Performance and stability improvements on all platforms. + + +2016-07-07: Version 5.4.46 + + Performance and stability improvements on all platforms. + + +2016-07-06: Version 5.4.45 + + Performance and stability improvements on all platforms. + + +2016-07-06: Version 5.4.44 + + Performance and stability improvements on all platforms. + + +2016-07-06: Version 5.4.43 + + Performance and stability improvements on all platforms. + + +2016-07-06: Version 5.4.42 + + Performance and stability improvements on all platforms. + + +2016-07-06: Version 5.4.41 + + Performance and stability improvements on all platforms. + + +2016-07-06: Version 5.4.40 + + Performance and stability improvements on all platforms. + + +2016-07-06: Version 5.4.39 + + Performance and stability improvements on all platforms. + + +2016-07-06: Version 5.4.38 + + Performance and stability improvements on all platforms. + + +2016-07-06: Version 5.4.37 + + Performance and stability improvements on all platforms. + + +2016-07-06: Version 5.4.36 + + Performance and stability improvements on all platforms. + + +2016-07-06: Version 5.4.35 + + Performance and stability improvements on all platforms. + + +2016-07-06: Version 5.4.34 + + Performance and stability improvements on all platforms. + + +2016-07-06: Version 5.4.33 + + Performance and stability improvements on all platforms. + + +2016-07-06: Version 5.4.32 + + Performance and stability improvements on all platforms. + + +2016-07-06: Version 5.4.31 + + Performance and stability improvements on all platforms. + + +2016-07-05: Version 5.4.30 + + Performance and stability improvements on all platforms. + + +2016-07-05: Version 5.4.29 + + Performance and stability improvements on all platforms. + + +2016-07-05: Version 5.4.28 + + Performance and stability improvements on all platforms. + + +2016-07-05: Version 5.4.27 + + Performance and stability improvements on all platforms. + + +2016-07-05: Version 5.4.26 + + Performance and stability improvements on all platforms. + + +2016-07-05: Version 5.4.25 + + Performance and stability improvements on all platforms. + + +2016-07-05: Version 5.4.24 + + Performance and stability improvements on all platforms. + + +2016-07-05: Version 5.4.23 + + Performance and stability improvements on all platforms. + + +2016-07-05: Version 5.4.22 + + Performance and stability improvements on all platforms. + + +2016-07-04: Version 5.4.21 + + Performance and stability improvements on all platforms. + + +2016-07-04: Version 5.4.20 + + Performance and stability improvements on all platforms. + + +2016-07-04: Version 5.4.19 + + Performance and stability improvements on all platforms. + + +2016-07-04: Version 5.4.18 + + Performance and stability improvements on all platforms. + + +2016-07-04: Version 5.4.17 + + Performance and stability improvements on all platforms. + + +2016-07-04: Version 5.4.16 + + Performance and stability improvements on all platforms. + + +2016-07-04: Version 5.4.15 + + Performance and stability improvements on all platforms. + + +2016-07-04: Version 5.4.14 + + Performance and stability improvements on all platforms. + + +2016-07-04: Version 5.4.13 + + Performance and stability improvements on all platforms. + + +2016-07-04: Version 5.4.12 + + Performance and stability improvements on all platforms. + + +2016-07-04: Version 5.4.11 + + Performance and stability improvements on all platforms. + + +2016-07-04: Version 5.4.10 + + Performance and stability improvements on all platforms. + + +2016-07-04: Version 5.4.9 + + Performance and stability improvements on all platforms. + + +2016-07-04: Version 5.4.8 + + Performance and stability improvements on all platforms. + + +2016-07-03: Version 5.4.7 + + Performance and stability improvements on all platforms. + + +2016-07-03: Version 5.4.6 + + Performance and stability improvements on all platforms. + + +2016-07-03: Version 5.4.5 + + Performance and stability improvements on all platforms. + + +2016-07-03: Version 5.4.4 + + Performance and stability improvements on all platforms. + + +2016-07-01: Version 5.4.3 + + Performance and stability improvements on all platforms. + + +2016-07-01: Version 5.4.2 + + Performance and stability improvements on all platforms. + + +2016-07-01: Version 5.4.1 + + [stubs] GetPropertyStub added (issue 4911). + + [wasm] Fix receiver conversion for WASM->JS calls (Chromium issue + 624713). + + Performance and stability improvements on all platforms. + + +2016-06-30: Version 5.3.351 + + Performance and stability improvements on all platforms. + + +2016-06-30: Version 5.3.350 + + Performance and stability improvements on all platforms. + + +2016-06-29: Version 5.3.349 + + Performance and stability improvements on all platforms. + + +2016-06-29: Version 5.3.348 + + Performance and stability improvements on all platforms. + + +2016-06-29: Version 5.3.347 + + Performance and stability improvements on all platforms. + + +2016-06-29: Version 5.3.346 + + Performance and stability improvements on all platforms. + + +2016-06-29: Version 5.3.345 + + Performance and stability improvements on all platforms. + + +2016-06-29: Version 5.3.344 + + Performance and stability improvements on all platforms. + + +2016-06-29: Version 5.3.343 + + Performance and stability improvements on all platforms. + + +2016-06-29: Version 5.3.342 + + Performance and stability improvements on all platforms. + + +2016-06-29: Version 5.3.341 + + Performance and stability improvements on all platforms. + + +2016-06-29: Version 5.3.340 + + Performance and stability improvements on all platforms. + + +2016-06-29: Version 5.3.339 + + Performance and stability improvements on all platforms. + + +2016-06-29: Version 5.3.338 + + Performance and stability improvements on all platforms. + + +2016-06-29: Version 5.3.337 + + Performance and stability improvements on all platforms. + + +2016-06-29: Version 5.3.336 + + Performance and stability improvements on all platforms. + + +2016-06-29: Version 5.3.335 + + Allow trailing commas in function parameter lists (issue 5051). + + Performance and stability improvements on all platforms. + + +2016-06-28: Version 5.3.334 + + Performance and stability improvements on all platforms. + + +2016-06-28: Version 5.3.333 + + Performance and stability improvements on all platforms. + + +2016-06-27: Version 5.3.332 + + Performance and stability improvements on all platforms. + + +2016-06-27: Version 5.3.331 + + Performance and stability improvements on all platforms. + + +2016-06-27: Version 5.3.330 + + [stubs] Implementing CodeStubAssembler::GetOwnProperty() (issue 4911). + + Performance and stability improvements on all platforms. + + +2016-06-27: Version 5.3.329 + + Performance and stability improvements on all platforms. + + +2016-06-27: Version 5.3.328 + + Performance and stability improvements on all platforms. + + +2016-06-27: Version 5.3.327 + + Performance and stability improvements on all platforms. + + +2016-06-27: Version 5.3.326 + + Performance and stability improvements on all platforms. + + +2016-06-27: Version 5.3.325 + + Performance and stability improvements on all platforms. + + +2016-06-26: Version 5.3.324 + + Performance and stability improvements on all platforms. + + +2016-06-26: Version 5.3.323 + + Performance and stability improvements on all platforms. + + +2016-06-26: Version 5.3.322 + + Performance and stability improvements on all platforms. + + +2016-06-26: Version 5.3.321 + + Performance and stability improvements on all platforms. + + +2016-06-24: Version 5.3.320 + + Performance and stability improvements on all platforms. + + +2016-06-24: Version 5.3.319 + + Performance and stability improvements on all platforms. + + +2016-06-24: Version 5.3.318 + + Performance and stability improvements on all platforms. + + +2016-06-24: Version 5.3.317 + + Performance and stability improvements on all platforms. + + +2016-06-24: Version 5.3.316 + + Performance and stability improvements on all platforms. + + +2016-06-23: Version 5.3.315 + + Performance and stability improvements on all platforms. + + +2016-06-23: Version 5.3.314 + + Performance and stability improvements on all platforms. + + +2016-06-23: Version 5.3.313 + + Performance and stability improvements on all platforms. + + +2016-06-23: Version 5.3.312 + + Performance and stability improvements on all platforms. + + +2016-06-22: Version 5.3.311 + + Performance and stability improvements on all platforms. + + +2016-06-22: Version 5.3.310 + + Performance and stability improvements on all platforms. + + +2016-06-22: Version 5.3.309 + + Performance and stability improvements on all platforms. + + +2016-06-22: Version 5.3.308 + + Performance and stability improvements on all platforms. + + +2016-06-22: Version 5.3.307 + + Performance and stability improvements on all platforms. + + +2016-06-22: Version 5.3.306 + + Performance and stability improvements on all platforms. + + +2016-06-22: Version 5.3.305 + + Performance and stability improvements on all platforms. + + +2016-06-22: Version 5.3.304 + + Performance and stability improvements on all platforms. + + +2016-06-22: Version 5.3.303 + + Performance and stability improvements on all platforms. + + +2016-06-22: Version 5.3.302 + + Performance and stability improvements on all platforms. + + +2016-06-22: Version 5.3.301 + + Performance and stability improvements on all platforms. + + +2016-06-22: Version 5.3.300 + + Performance and stability improvements on all platforms. + + +2016-06-22: Version 5.3.299 + + Performance and stability improvements on all platforms. + + +2016-06-22: Version 5.3.298 + + Performance and stability improvements on all platforms. + + +2016-06-22: Version 5.3.297 + + Performance and stability improvements on all platforms. + + +2016-06-22: Version 5.3.296 + + Performance and stability improvements on all platforms. + + +2016-06-22: Version 5.3.295 + + Performance and stability improvements on all platforms. + + +2016-06-22: Version 5.3.294 + + Performance and stability improvements on all platforms. + + +2016-06-22: Version 5.3.293 + + Performance and stability improvements on all platforms. + + +2016-06-22: Version 5.3.292 + + Performance and stability improvements on all platforms. + + +2016-06-21: Version 5.3.291 + + Performance and stability improvements on all platforms. + + +2016-06-21: Version 5.3.290 + + Performance and stability improvements on all platforms. + + +2016-06-21: Version 5.3.289 + + Reland: change most cases of variable redeclaration from TypeError to + SyntaxError (issue 4955). + + Performance and stability improvements on all platforms. + + +2016-06-21: Version 5.3.288 + + Performance and stability improvements on all platforms. + + +2016-06-21: Version 5.3.287 + + Performance and stability improvements on all platforms. + + +2016-06-21: Version 5.3.286 + + Performance and stability improvements on all platforms. + + +2016-06-21: Version 5.3.285 + + Performance and stability improvements on all platforms. + + +2016-06-21: Version 5.3.284 + + Performance and stability improvements on all platforms. + + +2016-06-21: Version 5.3.283 + + Performance and stability improvements on all platforms. + + +2016-06-21: Version 5.3.282 + + Performance and stability improvements on all platforms. + + +2016-06-21: Version 5.3.281 + + Performance and stability improvements on all platforms. + + +2016-06-21: Version 5.3.280 + + Performance and stability improvements on all platforms. + + +2016-06-20: Version 5.3.279 + + Performance and stability improvements on all platforms. + + +2016-06-20: Version 5.3.278 + + Performance and stability improvements on all platforms. + + +2016-06-20: Version 5.3.277 + + Performance and stability improvements on all platforms. + + +2016-06-20: Version 5.3.276 + + Performance and stability improvements on all platforms. + + +2016-06-20: Version 5.3.275 + + Performance and stability improvements on all platforms. + + +2016-06-20: Version 5.3.274 + + Performance and stability improvements on all platforms. + + +2016-06-20: Version 5.3.273 + + Performance and stability improvements on all platforms. + + +2016-06-20: Version 5.3.272 + + Performance and stability improvements on all platforms. + + +2016-06-20: Version 5.3.271 + + Performance and stability improvements on all platforms. + + +2016-06-20: Version 5.3.270 + + Performance and stability improvements on all platforms. + + +2016-06-20: Version 5.3.269 + + Performance and stability improvements on all platforms. + + +2016-06-20: Version 5.3.268 + + Performance and stability improvements on all platforms. + + +2016-06-20: Version 5.3.267 + + Performance and stability improvements on all platforms. + + +2016-06-20: Version 5.3.266 + + Performance and stability improvements on all platforms. + + +2016-06-20: Version 5.3.265 + + Performance and stability improvements on all platforms. + + +2016-06-20: Version 5.3.264 + + Performance and stability improvements on all platforms. + + +2016-06-20: Version 5.3.263 + + Performance and stability improvements on all platforms. + + +2016-06-20: Version 5.3.262 + + Performance and stability improvements on all platforms. + + +2016-06-20: Version 5.3.261 + + Performance and stability improvements on all platforms. + + +2016-06-20: Version 5.3.260 + + Performance and stability improvements on all platforms. + + +2016-06-20: Version 5.3.259 + + Performance and stability improvements on all platforms. + + +2016-06-20: Version 5.3.258 + + Performance and stability improvements on all platforms. + + +2016-06-20: Version 5.3.257 + + Performance and stability improvements on all platforms. + + +2016-06-17: Version 5.3.256 + + Performance and stability improvements on all platforms. + + +2016-06-17: Version 5.3.255 + + Performance and stability improvements on all platforms. + + +2016-06-17: Version 5.3.254 + + Performance and stability improvements on all platforms. + + +2016-06-17: Version 5.3.253 + + Performance and stability improvements on all platforms. + + +2016-06-17: Version 5.3.252 + + Performance and stability improvements on all platforms. + + +2016-06-17: Version 5.3.251 + + Performance and stability improvements on all platforms. + + +2016-06-17: Version 5.3.250 + + Performance and stability improvements on all platforms. + + +2016-06-16: Version 5.3.249 + + Performance and stability improvements on all platforms. + + +2016-06-16: Version 5.3.248 + + Performance and stability improvements on all platforms. + + +2016-06-16: Version 5.3.247 + + Performance and stability improvements on all platforms. + + +2016-06-16: Version 5.3.246 + + [es8] Unstage syntactic tail calls (issue 4915). + + [ic] LoadICState cleanup (Chromium issue 576312). + + Performance and stability improvements on all platforms. + + +2016-06-16: Version 5.3.245 + + Performance and stability improvements on all platforms. + + +2016-06-16: Version 5.3.244 + + [ic] Remove --new-load-global-ic switch (Chromium issue 576312). + + Performance and stability improvements on all platforms. + + +2016-06-16: Version 5.3.243 + + Performance and stability improvements on all platforms. + + +2016-06-16: Version 5.3.242 + + Performance and stability improvements on all platforms. + + +2016-06-16: Version 5.3.241 + + Performance and stability improvements on all platforms. + + +2016-06-15: Version 5.3.240 + + Performance and stability improvements on all platforms. + + +2016-06-15: Version 5.3.239 + + Performance and stability improvements on all platforms. + + +2016-06-15: Version 5.3.238 + + Performance and stability improvements on all platforms. + + +2016-06-15: Version 5.3.237 + + Performance and stability improvements on all platforms. + + +2016-06-15: Version 5.3.236 + + Performance and stability improvements on all platforms. + + +2016-06-15: Version 5.3.235 + + [ic] Enable new LoadGlobalIC machinery (Chromium issue 576312). + + [ic] LoadGlobalIC is now able to cache PropertyCells in the feedback + vector (Chromium issue 576312). + + Performance and stability improvements on all platforms. + + +2016-06-15: Version 5.3.234 + + Performance and stability improvements on all platforms. + + +2016-06-15: Version 5.3.233 + + Performance and stability improvements on all platforms. + + +2016-06-15: Version 5.3.232 + + Performance and stability improvements on all platforms. + + +2016-06-15: Version 5.3.231 + + Performance and stability improvements on all platforms. + + +2016-06-15: Version 5.3.230 + + Performance and stability improvements on all platforms. + + +2016-06-14: Version 5.3.229 + + [stubs] Ensure that StoreTransitionStub does not bailout after the + properties backing store is enlarged (Chromium issue 601420). + + Performance and stability improvements on all platforms. + + +2016-06-14: Version 5.3.228 + + [ic] Split LoadIC into LoadGlobalIC and LoadIC (Chromium issue 576312). + + Performance and stability improvements on all platforms. + + +2016-06-14: Version 5.3.227 + + Performance and stability improvements on all platforms. + + +2016-06-14: Version 5.3.226 + + Performance and stability improvements on all platforms. + + +2016-06-13: Version 5.3.225 + + Performance and stability improvements on all platforms. + + +2016-06-13: Version 5.3.224 + + Performance and stability improvements on all platforms. + + +2016-06-13: Version 5.3.223 + + Performance and stability improvements on all platforms. + + +2016-06-13: Version 5.3.222 + + change most cases of variable redeclaration from TypeError to + SyntaxError (issue 4955). + + Performance and stability improvements on all platforms. + + +2016-06-13: Version 5.3.221 + + Performance and stability improvements on all platforms. + + +2016-06-13: Version 5.3.220 + + Performance and stability improvements on all platforms. + + +2016-06-13: Version 5.3.219 + + Performance and stability improvements on all platforms. + + +2016-06-13: Version 5.3.218 + + Performance and stability improvements on all platforms. + + +2016-06-13: Version 5.3.217 + + Performance and stability improvements on all platforms. + + +2016-06-13: Version 5.3.216 + + Performance and stability improvements on all platforms. + + +2016-06-12: Version 5.3.215 + + Performance and stability improvements on all platforms. + + +2016-06-12: Version 5.3.214 + + Performance and stability improvements on all platforms. + + +2016-06-10: Version 5.3.213 + + Performance and stability improvements on all platforms. + + +2016-06-10: Version 5.3.212 + + Performance and stability improvements on all platforms. + + +2016-06-10: Version 5.3.211 + + Performance and stability improvements on all platforms. + + +2016-06-10: Version 5.3.210 + + Performance and stability improvements on all platforms. + + +2016-06-10: Version 5.3.209 + + Performance and stability improvements on all platforms. + + +2016-06-10: Version 5.3.208 + + Performance and stability improvements on all platforms. + + +2016-06-10: Version 5.3.207 + + Performance and stability improvements on all platforms. + + +2016-06-10: Version 5.3.206 + + Performance and stability improvements on all platforms. + + +2016-06-10: Version 5.3.205 + + Performance and stability improvements on all platforms. + + +2016-06-10: Version 5.3.204 + + Performance and stability improvements on all platforms. + + +2016-06-10: Version 5.3.203 + + Performance and stability improvements on all platforms. + + +2016-06-10: Version 5.3.202 + + Performance and stability improvements on all platforms. + + +2016-06-10: Version 5.3.201 + + Performance and stability improvements on all platforms. + + +2016-06-09: Version 5.3.200 + + Performance and stability improvements on all platforms. + + +2016-06-09: Version 5.3.199 + + Performance and stability improvements on all platforms. + + +2016-06-09: Version 5.3.198 + + Performance and stability improvements on all platforms. + + +2016-06-09: Version 5.3.197 + + Performance and stability improvements on all platforms. + + +2016-06-09: Version 5.3.196 + + [ic] [stubs] Remove InlineCacheState field from the code flags (Chromium + issue 618701). + + Performance and stability improvements on all platforms. + + +2016-06-09: Version 5.3.195 + + Performance and stability improvements on all platforms. + + +2016-06-09: Version 5.3.194 + + Performance and stability improvements on all platforms. + + +2016-06-09: Version 5.3.193 + + Performance and stability improvements on all platforms. + + +2016-06-09: Version 5.3.192 + + [build] Use icu data file by default (Chromium issue 616033). + + Performance and stability improvements on all platforms. + + +2016-06-09: Version 5.3.191 + + Performance and stability improvements on all platforms. + + +2016-06-09: Version 5.3.190 + + Performance and stability improvements on all platforms. + + +2016-06-09: Version 5.3.189 + + Performance and stability improvements on all platforms. + + +2016-06-09: Version 5.3.188 + + Performance and stability improvements on all platforms. + + +2016-06-08: Version 5.3.187 + + Performance and stability improvements on all platforms. + + +2016-06-08: Version 5.3.186 + + Performance and stability improvements on all platforms. + + +2016-06-08: Version 5.3.185 + + Performance and stability improvements on all platforms. + + +2016-06-08: Version 5.3.184 + + Performance and stability improvements on all platforms. + + +2016-06-08: Version 5.3.183 + + [build] Use sysroot for linux compilation with clang (Chromium issues + 474921, 616032). + + Performance and stability improvements on all platforms. + + +2016-06-08: Version 5.3.182 + + Performance and stability improvements on all platforms. + + +2016-06-08: Version 5.3.181 + + Performance and stability improvements on all platforms. + + +2016-06-08: Version 5.3.180 + + Performance and stability improvements on all platforms. + + +2016-06-08: Version 5.3.179 + + Performance and stability improvements on all platforms. + + +2016-06-08: Version 5.3.178 + + [icu] Support loading data file from default location (Chromium issue + 616033). + + Performance and stability improvements on all platforms. + + +2016-06-08: Version 5.3.177 + + Performance and stability improvements on all platforms. + + +2016-06-08: Version 5.3.176 + + Performance and stability improvements on all platforms. + + +2016-06-08: Version 5.3.175 + + Performance and stability improvements on all platforms. + + +2016-06-08: Version 5.3.174 + + Performance and stability improvements on all platforms. + + +2016-06-08: Version 5.3.173 + + Performance and stability improvements on all platforms. + + +2016-06-08: Version 5.3.172 + + Performance and stability improvements on all platforms. + + +2016-06-08: Version 5.3.171 + + Performance and stability improvements on all platforms. + + +2016-06-07: Version 5.3.170 + + Performance and stability improvements on all platforms. + + +2016-06-07: Version 5.3.169 + + Performance and stability improvements on all platforms. + + +2016-06-07: Version 5.3.168 + + Performance and stability improvements on all platforms. + + +2016-06-07: Version 5.3.167 + + Performance and stability improvements on all platforms. + + +2016-06-07: Version 5.3.166 + + Performance and stability improvements on all platforms. + + +2016-06-07: Version 5.3.165 + + Performance and stability improvements on all platforms. + + +2016-06-07: Version 5.3.164 + + Performance and stability improvements on all platforms. + + +2016-06-07: Version 5.3.163 + + Performance and stability improvements on all platforms. + + +2016-06-07: Version 5.3.162 + + Performance and stability improvements on all platforms. + + +2016-06-07: Version 5.3.161 + + Performance and stability improvements on all platforms. + + +2016-06-07: Version 5.3.160 + + [runtime] Don't use ElementsTransitionAndStoreStub for transitions that + involve instance rewriting (issue 5009, Chromium issue 617524). + + Performance and stability improvements on all platforms. + + +2016-06-07: Version 5.3.159 + + Performance and stability improvements on all platforms. + + +2016-06-07: Version 5.3.158 + + Performance and stability improvements on all platforms. + + +2016-06-07: Version 5.3.157 + + Performance and stability improvements on all platforms. + + +2016-06-07: Version 5.3.156 + + Performance and stability improvements on all platforms. + + +2016-06-07: Version 5.3.155 + + Performance and stability improvements on all platforms. + + +2016-06-07: Version 5.3.154 + + Performance and stability improvements on all platforms. + + +2016-06-06: Version 5.3.153 + + Performance and stability improvements on all platforms. + + +2016-06-06: Version 5.3.152 + + Performance and stability improvements on all platforms. + + +2016-06-06: Version 5.3.151 + + Performance and stability improvements on all platforms. + + +2016-06-06: Version 5.3.150 + + Performance and stability improvements on all platforms. + + +2016-06-06: Version 5.3.149 + + Performance and stability improvements on all platforms. + + +2016-06-06: Version 5.3.148 + + Performance and stability improvements on all platforms. + + +2016-06-06: Version 5.3.147 + + Performance and stability improvements on all platforms. + + +2016-06-06: Version 5.3.146 + + Performance and stability improvements on all platforms. + + +2016-06-06: Version 5.3.145 + + Performance and stability improvements on all platforms. + + +2016-06-06: Version 5.3.144 + + Performance and stability improvements on all platforms. + + +2016-06-06: Version 5.3.143 + + Performance and stability improvements on all platforms. + + +2016-06-06: Version 5.3.142 + + Performance and stability improvements on all platforms. + + +2016-06-06: Version 5.3.141 + + Performance and stability improvements on all platforms. + + +2016-06-06: Version 5.3.140 + + [build] Use sysroot for linux compilation with clang (Chromium issues + 474921, 616032). + + Performance and stability improvements on all platforms. + + +2016-06-05: Version 5.3.139 + + Performance and stability improvements on all platforms. + + +2016-06-04: Version 5.3.138 + + Performance and stability improvements on all platforms. + + +2016-06-03: Version 5.3.137 + + Performance and stability improvements on all platforms. + + +2016-06-03: Version 5.3.136 + + Performance and stability improvements on all platforms. + + +2016-06-03: Version 5.3.135 + + Performance and stability improvements on all platforms. + + +2016-06-03: Version 5.3.134 + + Performance and stability improvements on all platforms. + + +2016-06-03: Version 5.3.133 + + Performance and stability improvements on all platforms. + + +2016-06-03: Version 5.3.132 + + Performance and stability improvements on all platforms. + + +2016-06-03: Version 5.3.131 + + Performance and stability improvements on all platforms. - Ship --harmony-regexp-exec (issue 4602). + +2016-06-03: Version 5.3.130 + + Performance and stability improvements on all platforms. + + +2016-06-03: Version 5.3.129 + + Performance and stability improvements on all platforms. + + +2016-06-03: Version 5.3.128 + + Performance and stability improvements on all platforms. + + +2016-06-03: Version 5.3.127 Performance and stability improvements on all platforms. -2016-04-05: Version 5.1.278 +2016-06-03: Version 5.3.126 - [V8] Removed debugger V8::PromiseEvent (Chromium issue 526811). + Performance and stability improvements on all platforms. - [asm.js] Fix typing bug for non-literals in heap access (Chromium issue - 599825). - Ensure CreateDataProperty works correctly on TypedArrays (Chromium issue - 596394). +2016-06-03: Version 5.3.125 Performance and stability improvements on all platforms. -2016-04-05: Version 5.1.277 +2016-06-03: Version 5.3.124 Performance and stability improvements on all platforms. -2016-04-05: Version 5.1.276 +2016-06-03: Version 5.3.123 Performance and stability improvements on all platforms. -2016-04-05: Version 5.1.275 +2016-06-03: Version 5.3.122 Performance and stability improvements on all platforms. -2016-04-05: Version 5.1.274 +2016-06-03: Version 5.3.121 Performance and stability improvements on all platforms. -2016-04-05: Version 5.1.273 +2016-06-02: Version 5.3.120 Performance and stability improvements on all platforms. -2016-04-05: Version 5.1.272 +2016-06-02: Version 5.3.119 Performance and stability improvements on all platforms. -2016-04-05: Version 5.1.271 +2016-06-02: Version 5.3.118 Performance and stability improvements on all platforms. -2016-04-04: Version 5.1.270 +2016-06-02: Version 5.3.117 Performance and stability improvements on all platforms. -2016-04-04: Version 5.1.269 +2016-06-02: Version 5.3.116 Performance and stability improvements on all platforms. -2016-04-04: Version 5.1.268 +2016-06-02: Version 5.3.115 Performance and stability improvements on all platforms. -2016-04-04: Version 5.1.267 +2016-06-02: Version 5.3.114 + + [stubs] Extend HasProperty stub with dictionary-mode, string wrapper and + double-elements objects support (issue 2743). + + Performance and stability improvements on all platforms. + - [api] Restrict Template::Set to take templates or primitive values. +2016-06-02: Version 5.3.113 Performance and stability improvements on all platforms. -2016-04-04: Version 5.1.266 +2016-06-02: Version 5.3.112 Performance and stability improvements on all platforms. -2016-04-04: Version 5.1.265 +2016-06-02: Version 5.3.111 Performance and stability improvements on all platforms. -2016-04-04: Version 5.1.264 +2016-06-02: Version 5.3.110 Performance and stability improvements on all platforms. -2016-04-04: Version 5.1.263 +2016-06-02: Version 5.3.109 Performance and stability improvements on all platforms. -2016-04-04: Version 5.1.262 +2016-06-02: Version 5.3.108 Performance and stability improvements on all platforms. -2016-04-04: Version 5.1.261 +2016-06-02: Version 5.3.107 Performance and stability improvements on all platforms. -2016-04-04: Version 5.1.260 +2016-06-01: Version 5.3.106 Performance and stability improvements on all platforms. -2016-04-04: Version 5.1.259 +2016-06-01: Version 5.3.105 - Further ES2015 RegExp spec compliance fixes (issue 4602). + Extend HasProperty stub with dictionary-mode, string wrapper and double- + elements objects support (issue 2743). Performance and stability improvements on all platforms. -2016-04-03: Version 5.1.258 +2016-06-01: Version 5.3.104 Performance and stability improvements on all platforms. -2016-04-02: Version 5.1.257 +2016-06-01: Version 5.3.103 Performance and stability improvements on all platforms. -2016-04-02: Version 5.1.256 +2016-06-01: Version 5.3.102 Performance and stability improvements on all platforms. -2016-04-02: Version 5.1.255 +2016-06-01: Version 5.3.101 + + [runtime] Ensure that all elements kind transitions are chained to the + root map (issue 5009). Performance and stability improvements on all platforms. -2016-04-01: Version 5.1.254 +2016-06-01: Version 5.3.100 Performance and stability improvements on all platforms. -2016-04-01: Version 5.1.253 +2016-06-01: Version 5.3.99 Performance and stability improvements on all platforms. -2016-04-01: Version 5.1.252 +2016-06-01: Version 5.3.98 Performance and stability improvements on all platforms. -2016-04-01: Version 5.1.251 +2016-06-01: Version 5.3.97 Performance and stability improvements on all platforms. -2016-04-01: Version 5.1.250 +2016-06-01: Version 5.3.96 Performance and stability improvements on all platforms. -2016-04-01: Version 5.1.249 +2016-06-01: Version 5.3.95 Performance and stability improvements on all platforms. -2016-04-01: Version 5.1.248 +2016-06-01: Version 5.3.94 Performance and stability improvements on all platforms. -2016-04-01: Version 5.1.247 +2016-06-01: Version 5.3.93 Performance and stability improvements on all platforms. -2016-04-01: Version 5.1.246 +2016-05-31: Version 5.3.92 Performance and stability improvements on all platforms. -2016-04-01: Version 5.1.245 +2016-05-31: Version 5.3.91 Performance and stability improvements on all platforms. -2016-04-01: Version 5.1.244 +2016-05-31: Version 5.3.90 Performance and stability improvements on all platforms. -2016-04-01: Version 5.1.243 +2016-05-31: Version 5.3.89 Performance and stability improvements on all platforms. -2016-04-01: Version 5.1.242 +2016-05-31: Version 5.3.88 Performance and stability improvements on all platforms. -2016-04-01: Version 5.1.241 +2016-05-31: Version 5.3.87 + + Performance and stability improvements on all platforms. - [GN] Define USE_EABI_HARDFLOAT=1 when arm_float_abi=="hard" (Chromium - issue 592660). - Ship --harmony-regexp-exec (issue 4602). +2016-05-31: Version 5.3.86 Performance and stability improvements on all platforms. -2016-03-31: Version 5.1.240 +2016-05-31: Version 5.3.85 Performance and stability improvements on all platforms. -2016-03-31: Version 5.1.239 +2016-05-31: Version 5.3.84 Performance and stability improvements on all platforms. -2016-03-31: Version 5.1.238 +2016-05-31: Version 5.3.83 Performance and stability improvements on all platforms. -2016-03-31: Version 5.1.237 +2016-05-30: Version 5.3.82 Performance and stability improvements on all platforms. -2016-03-31: Version 5.1.236 +2016-05-30: Version 5.3.81 + + [api] Remove deprectated memory allocation callback API (issue 4813). Performance and stability improvements on all platforms. -2016-03-31: Version 5.1.235 +2016-05-30: Version 5.3.80 Performance and stability improvements on all platforms. -2016-03-31: Version 5.1.234 +2016-05-30: Version 5.3.79 + + Performance and stability improvements on all platforms. + - [arm/Linux] Don't rely on KUSER_HELPERS feature (Chromium issue 599051). +2016-05-30: Version 5.3.78 Performance and stability improvements on all platforms. -2016-03-31: Version 5.1.233 +2016-05-30: Version 5.3.77 Performance and stability improvements on all platforms. -2016-03-31: Version 5.1.232 +2016-05-30: Version 5.3.76 Performance and stability improvements on all platforms. -2016-03-31: Version 5.1.231 +2016-05-30: Version 5.3.75 + + Performance and stability improvements on all platforms. + - Turn scavenge_reclaim_unmodified_objects on by default (Chromium issue - 4880). +2016-05-30: Version 5.3.74 Performance and stability improvements on all platforms. -2016-03-31: Version 5.1.230 +2016-05-30: Version 5.3.73 Performance and stability improvements on all platforms. -2016-03-31: Version 5.1.229 +2016-05-30: Version 5.3.72 Performance and stability improvements on all platforms. -2016-03-31: Version 5.1.228 +2016-05-30: Version 5.3.71 Performance and stability improvements on all platforms. -2016-03-31: Version 5.1.227 +2016-05-30: Version 5.3.70 Performance and stability improvements on all platforms. -2016-03-31: Version 5.1.226 +2016-05-30: Version 5.3.69 Performance and stability improvements on all platforms. -2016-03-31: Version 5.1.225 +2016-05-30: Version 5.3.68 Performance and stability improvements on all platforms. -2016-03-31: Version 5.1.224 +2016-05-29: Version 5.3.67 + + Performance and stability improvements on all platforms. - Raise minimum Mac OS version to 10.7 (issue 4847). + +2016-05-28: Version 5.3.66 Performance and stability improvements on all platforms. -2016-03-31: Version 5.1.223 +2016-05-28: Version 5.3.65 Performance and stability improvements on all platforms. -2016-03-30: Version 5.1.222 +2016-05-27: Version 5.3.64 Performance and stability improvements on all platforms. -2016-03-30: Version 5.1.221 +2016-05-27: Version 5.3.63 Performance and stability improvements on all platforms. -2016-03-30: Version 5.1.220 +2016-05-27: Version 5.3.62 - Stage --harmony-regexp-exec (issue 4602). + Performance and stability improvements on all platforms. - Add fast paths for native RegExps in ES2015 subclass-aware code (issue - 4602). - [V8] Add FunctionMirror.prototype.contextDebugId method (Chromium issue - 595206). +2016-05-27: Version 5.3.61 Performance and stability improvements on all platforms. -2016-03-30: Version 5.1.219 +2016-05-27: Version 5.3.60 - Remove RegExp.prototype.source getter compat workaround (issue 4827, - Chromium issue 581577). + Performance and stability improvements on all platforms. - Check for proper types from error handling code (Chromium issue 596718). - Add ES2015 RegExp full subclassing semantics behind a flag (issue 4602). +2016-05-27: Version 5.3.59 Performance and stability improvements on all platforms. -2016-03-24: Version 5.1.218 +2016-05-27: Version 5.3.58 Performance and stability improvements on all platforms. -2016-03-24: Version 5.1.217 +2016-05-27: Version 5.3.57 + + Performance and stability improvements on all platforms. + - [esnext] implement String padding proposal. +2016-05-26: Version 5.3.56 Performance and stability improvements on all platforms. -2016-03-24: Version 5.1.216 +2016-05-26: Version 5.3.55 Performance and stability improvements on all platforms. -2016-03-24: Version 5.1.215 +2016-05-26: Version 5.3.54 Performance and stability improvements on all platforms. -2016-03-24: Version 5.1.214 +2016-05-26: Version 5.3.53 Performance and stability improvements on all platforms. -2016-03-23: Version 5.1.213 +2016-05-25: Version 5.3.52 + + Performance and stability improvements on all platforms. - Implement ES2015 labelled function declaration restrictions (Chromium - issue 595309). + +2016-05-25: Version 5.3.51 Performance and stability improvements on all platforms. -2016-03-23: Version 5.1.212 +2016-05-25: Version 5.3.50 + + TypedArray: Make byteOffset, byteLength, and length configurable (issue + 4902). + + Make %ThrowTypeError% function(s) strict (issue 4925). Performance and stability improvements on all platforms. -2016-03-23: Version 5.1.211 +2016-05-25: Version 5.3.49 Performance and stability improvements on all platforms. -2016-03-23: Version 5.1.210 +2016-05-25: Version 5.3.48 Performance and stability improvements on all platforms. -2016-03-23: Version 5.1.209 +2016-05-25: Version 5.3.47 Performance and stability improvements on all platforms. -2016-03-23: Version 5.1.208 +2016-05-25: Version 5.3.46 Performance and stability improvements on all platforms. -2016-03-23: Version 5.1.207 +2016-05-25: Version 5.3.45 Performance and stability improvements on all platforms. -2016-03-23: Version 5.1.206 +2016-05-25: Version 5.3.44 Performance and stability improvements on all platforms. -2016-03-23: Version 5.1.205 +2016-05-25: Version 5.3.43 Performance and stability improvements on all platforms. -2016-03-23: Version 5.1.204 +2016-05-25: Version 5.3.42 Performance and stability improvements on all platforms. -2016-03-23: Version 5.1.203 +2016-05-25: Version 5.3.41 Performance and stability improvements on all platforms. -2016-03-23: Version 5.1.202 +2016-05-25: Version 5.3.40 Performance and stability improvements on all platforms. -2016-03-23: Version 5.1.201 +2016-05-25: Version 5.3.39 Performance and stability improvements on all platforms. -2016-03-23: Version 5.1.200 +2016-05-24: Version 5.3.38 Performance and stability improvements on all platforms. -2016-03-22: Version 5.1.199 +2016-05-24: Version 5.3.37 Performance and stability improvements on all platforms. -2016-03-22: Version 5.1.198 +2016-05-24: Version 5.3.36 Performance and stability improvements on all platforms. -2016-03-22: Version 5.1.197 +2016-05-24: Version 5.3.35 Performance and stability improvements on all platforms. -2016-03-22: Version 5.1.196 +2016-05-24: Version 5.3.34 Performance and stability improvements on all platforms. -2016-03-22: Version 5.1.195 +2016-05-24: Version 5.3.33 Performance and stability improvements on all platforms. -2016-03-22: Version 5.1.194 +2016-05-24: Version 5.3.32 + + Performance and stability improvements on all platforms. + - Fix match default behavior on strings for ES2015 semantics (issue 4602). +2016-05-24: Version 5.3.31 Performance and stability improvements on all platforms. -2016-03-22: Version 5.1.193 +2016-05-24: Version 5.3.30 Performance and stability improvements on all platforms. -2016-03-22: Version 5.1.192 +2016-05-24: Version 5.3.29 Performance and stability improvements on all platforms. -2016-03-22: Version 5.1.191 +2016-05-24: Version 5.3.28 + + Performance and stability improvements on all platforms. - [Interpreter] TurboFan implementation of intrinsics (issue 4822). + +2016-05-24: Version 5.3.27 Performance and stability improvements on all platforms. -2016-03-22: Version 5.1.190 +2016-05-24: Version 5.3.26 Performance and stability improvements on all platforms. -2016-03-21: Version 5.1.189 +2016-05-24: Version 5.3.25 Performance and stability improvements on all platforms. -2016-03-21: Version 5.1.188 +2016-05-24: Version 5.3.24 Performance and stability improvements on all platforms. -2016-03-21: Version 5.1.187 +2016-05-24: Version 5.3.23 Performance and stability improvements on all platforms. -2016-03-21: Version 5.1.186 +2016-05-24: Version 5.3.22 Performance and stability improvements on all platforms. -2016-03-21: Version 5.1.185 +2016-05-23: Version 5.3.21 Performance and stability improvements on all platforms. -2016-03-21: Version 5.1.184 +2016-05-23: Version 5.3.20 Performance and stability improvements on all platforms. -2016-03-21: Version 5.1.183 +2016-05-23: Version 5.3.19 Performance and stability improvements on all platforms. -2016-03-21: Version 5.1.182 +2016-05-23: Version 5.3.18 Performance and stability improvements on all platforms. -2016-03-21: Version 5.1.181 +2016-05-23: Version 5.3.17 + + Performance and stability improvements on all platforms. + - Temporarily undeprecate ForceSet (Chromium issue 595601). +2016-05-23: Version 5.3.16 Performance and stability improvements on all platforms. -2016-03-21: Version 5.1.180 +2016-05-23: Version 5.3.15 Performance and stability improvements on all platforms. -2016-03-20: Version 5.1.179 +2016-05-23: Version 5.3.14 Performance and stability improvements on all platforms. -2016-03-20: Version 5.1.178 +2016-05-23: Version 5.3.13 Performance and stability improvements on all platforms. -2016-03-20: Version 5.1.177 +2016-05-23: Version 5.3.12 Performance and stability improvements on all platforms. -2016-03-19: Version 5.1.176 +2016-05-23: Version 5.3.11 Performance and stability improvements on all platforms. -2016-03-18: Version 5.1.175 +2016-05-23: Version 5.3.10 Performance and stability improvements on all platforms. -2016-03-18: Version 5.1.174 +2016-05-23: Version 5.3.9 Performance and stability improvements on all platforms. -2016-03-18: Version 5.1.173 +2016-05-21: Version 5.3.8 + + Performance and stability improvements on all platforms. - Parser: Make skipping HTML comments optional (Chromium issue 573887). - [es7] implement exponentiation operator proposal (issue 3915). +2016-05-21: Version 5.3.7 Performance and stability improvements on all platforms. -2016-03-18: Version 5.1.172 +2016-05-21: Version 5.3.6 Performance and stability improvements on all platforms. -2016-03-18: Version 5.1.171 +2016-05-20: Version 5.3.5 Performance and stability improvements on all platforms. -2016-03-18: Version 5.1.170 +2016-05-20: Version 5.3.4 Performance and stability improvements on all platforms. -2016-03-18: Version 5.1.169 +2016-05-20: Version 5.3.3 + + Move case conversion with ICU to 'staged' (issues 4476, 4477). Performance and stability improvements on all platforms. -2016-03-17: Version 5.1.168 +2016-05-20: Version 5.3.2 Performance and stability improvements on all platforms. -2016-03-17: Version 5.1.167 +2016-05-20: Version 5.3.1 + + Move case conversion with ICU to 'staged' (issues 4476, 4477). + + Performance and stability improvements on all platforms. + - Throw the right exceptions from setting elements in - Array.prototype.concat (Chromium issue 595319). +2016-05-19: Version 5.2.371 Performance and stability improvements on all platforms. -2016-03-17: Version 5.1.166 +2016-05-19: Version 5.2.370 + + Performance and stability improvements on all platforms. + - Throw exceptions from CreateDataProperty when should_throw (Chromium - issue 595319). +2016-05-19: Version 5.2.369 Performance and stability improvements on all platforms. -2016-03-17: Version 5.1.165 +2016-05-19: Version 5.2.368 Performance and stability improvements on all platforms. -2016-03-17: Version 5.1.164 +2016-05-18: Version 5.2.367 Performance and stability improvements on all platforms. -2016-03-17: Version 5.1.163 +2016-05-18: Version 5.2.366 Performance and stability improvements on all platforms. -2016-03-17: Version 5.1.162 +2016-05-18: Version 5.2.365 Performance and stability improvements on all platforms. -2016-03-17: Version 5.1.161 +2016-05-18: Version 5.2.364 Performance and stability improvements on all platforms. -2016-03-17: Version 5.1.160 +2016-05-18: Version 5.2.363 Performance and stability improvements on all platforms. -2016-03-17: Version 5.1.159 +2016-05-18: Version 5.2.362 Performance and stability improvements on all platforms. -2016-03-17: Version 5.1.158 +2016-05-18: Version 5.2.361 Performance and stability improvements on all platforms. -2016-03-17: Version 5.1.157 +2016-05-18: Version 5.2.360 Performance and stability improvements on all platforms. -2016-03-17: Version 5.1.156 +2016-05-18: Version 5.2.359 Performance and stability improvements on all platforms. -2016-03-17: Version 5.1.155 +2016-05-18: Version 5.2.358 Performance and stability improvements on all platforms. -2016-03-17: Version 5.1.154 +2016-05-18: Version 5.2.357 Performance and stability improvements on all platforms. -2016-03-17: Version 5.1.153 +2016-05-18: Version 5.2.356 Performance and stability improvements on all platforms. -2016-03-17: Version 5.1.152 +2016-05-18: Version 5.2.355 Performance and stability improvements on all platforms. -2016-03-17: Version 5.1.151 +2016-05-18: Version 5.2.354 - Move FastAccessorAssembler from RawMachineAssembler to CodeStubAssembler - (Chromium issue 508898). + Performance and stability improvements on all platforms. + + +2016-05-18: Version 5.2.353 Performance and stability improvements on all platforms. -2016-03-17: Version 5.1.150 +2016-05-18: Version 5.2.352 + + Performance and stability improvements on all platforms. + + +2016-05-18: Version 5.2.351 + + Performance and stability improvements on all platforms. + + +2016-05-18: Version 5.2.350 + + Performance and stability improvements on all platforms. + + +2016-05-18: Version 5.2.349 + + Performance and stability improvements on all platforms. + + +2016-05-18: Version 5.2.348 + + Performance and stability improvements on all platforms. + + +2016-05-17: Version 5.2.347 + + Performance and stability improvements on all platforms. + + +2016-05-17: Version 5.2.346 + + Performance and stability improvements on all platforms. - [serializer] Add API to warm up startup snapshot with an additional - script (issue 4836). + +2016-05-17: Version 5.2.345 Performance and stability improvements on all platforms. -2016-03-17: Version 5.1.149 +2016-05-17: Version 5.2.344 Performance and stability improvements on all platforms. -2016-03-17: Version 5.1.148 +2016-05-17: Version 5.2.343 Performance and stability improvements on all platforms. -2016-03-17: Version 5.1.147 +2016-05-17: Version 5.2.342 Performance and stability improvements on all platforms. -2016-03-16: Version 5.1.146 +2016-05-17: Version 5.2.341 + + Performance and stability improvements on all platforms. + - Ship ES2015 restrictions on function declaration locations (issue 4824). +2016-05-17: Version 5.2.340 Performance and stability improvements on all platforms. -2016-03-16: Version 5.1.145 +2016-05-17: Version 5.2.339 + + [wasm] remove extra nops in asm-wasm (issue 4203). Performance and stability improvements on all platforms. -2016-03-16: Version 5.1.144 +2016-05-17: Version 5.2.338 Performance and stability improvements on all platforms. -2016-03-16: Version 5.1.143 +2016-05-17: Version 5.2.337 Performance and stability improvements on all platforms. -2016-03-16: Version 5.1.142 +2016-05-17: Version 5.2.336 Performance and stability improvements on all platforms. -2016-03-16: Version 5.1.141 +2016-05-17: Version 5.2.335 Performance and stability improvements on all platforms. -2016-03-16: Version 5.1.140 +2016-05-17: Version 5.2.334 + + Performance and stability improvements on all platforms. + - Put RegExp js code in strict mode (issue 4504). +2016-05-17: Version 5.2.333 Performance and stability improvements on all platforms. -2016-03-15: Version 5.1.139 +2016-05-17: Version 5.2.332 Performance and stability improvements on all platforms. -2016-03-15: Version 5.1.138 +2016-05-16: Version 5.2.331 + + Performance and stability improvements on all platforms. + - [builtins] Fix Array.prototype.concat bug (Chromium issue 594574). +2016-05-16: Version 5.2.330 Performance and stability improvements on all platforms. -2016-03-15: Version 5.1.137 +2016-05-16: Version 5.2.329 Performance and stability improvements on all platforms. -2016-03-15: Version 5.1.136 +2016-05-16: Version 5.2.328 + + Add UseCounter for decimal with leading zero (issue 4973). + + [esnext] implement frontend changes for async/await proposal (issue + 4483). Performance and stability improvements on all platforms. -2016-03-15: Version 5.1.135 +2016-05-16: Version 5.2.327 + + Performance and stability improvements on all platforms. + - Ship Array.prototype.values (issue 4247). +2016-05-15: Version 5.2.326 Performance and stability improvements on all platforms. -2016-03-15: Version 5.1.134 +2016-05-14: Version 5.2.325 Performance and stability improvements on all platforms. -2016-03-15: Version 5.1.133 +2016-05-14: Version 5.2.324 Performance and stability improvements on all platforms. -2016-03-15: Version 5.1.132 +2016-05-13: Version 5.2.323 Performance and stability improvements on all platforms. -2016-03-15: Version 5.1.131 +2016-05-13: Version 5.2.322 Performance and stability improvements on all platforms. -2016-03-15: Version 5.1.130 +2016-05-13: Version 5.2.321 Performance and stability improvements on all platforms. -2016-03-15: Version 5.1.129 +2016-05-13: Version 5.2.320 Performance and stability improvements on all platforms. -2016-03-15: Version 5.1.128 +2016-05-13: Version 5.2.319 Performance and stability improvements on all platforms. -2016-03-14: Version 5.1.127 +2016-05-13: Version 5.2.318 Performance and stability improvements on all platforms. -2016-03-14: Version 5.1.126 +2016-05-13: Version 5.2.317 + + Performance and stability improvements on all platforms. + - Remove --harmony-modules flag and let embedder decide when modules are - used (issue 1569, Chromium issue 594639). +2016-05-13: Version 5.2.316 Performance and stability improvements on all platforms. -2016-03-14: Version 5.1.125 +2016-05-13: Version 5.2.315 + + Performance and stability improvements on all platforms. + - Make test262 test runner check for which exception is thrown (issue - 4803). +2016-05-13: Version 5.2.314 Performance and stability improvements on all platforms. -2016-03-14: Version 5.1.124 +2016-05-13: Version 5.2.313 Performance and stability improvements on all platforms. -2016-03-14: Version 5.1.123 +2016-05-13: Version 5.2.312 Performance and stability improvements on all platforms. -2016-03-14: Version 5.1.122 +2016-05-13: Version 5.2.311 Performance and stability improvements on all platforms. -2016-03-14: Version 5.1.121 +2016-05-13: Version 5.2.310 + + [api] Clarify expectations of ArrayBuffer::Allocator in API (Chromium + issue 611688). Performance and stability improvements on all platforms. -2016-03-14: Version 5.1.120 +2016-05-13: Version 5.2.309 Performance and stability improvements on all platforms. -2016-03-14: Version 5.1.119 +2016-05-13: Version 5.2.308 Performance and stability improvements on all platforms. -2016-03-13: Version 5.1.118 +2016-05-13: Version 5.2.307 + + In parallel to the strict octal check that would reject `012` in strict + mode, this patch collects UseCounters for `089` in strict mode. The spec + says this should be an error, but this patch does not report it as such + (issue 4973). Performance and stability improvements on all platforms. -2016-03-11: Version 5.1.117 +2016-05-12: Version 5.2.306 Performance and stability improvements on all platforms. -2016-03-11: Version 5.1.116 +2016-05-12: Version 5.2.305 Performance and stability improvements on all platforms. -2016-03-11: Version 5.1.115 +2016-05-12: Version 5.2.304 Performance and stability improvements on all platforms. -2016-03-11: Version 5.1.114 +2016-05-12: Version 5.2.303 + + Performance and stability improvements on all platforms. + - [arm64] Fix i/d cache line size confusion typo (Chromium issue 593867). +2016-05-12: Version 5.2.302 Performance and stability improvements on all platforms. -2016-03-11: Version 5.1.113 +2016-05-12: Version 5.2.301 + + Performance and stability improvements on all platforms. + - Fix expression positions for for-loops (issue 4690). +2016-05-12: Version 5.2.300 Performance and stability improvements on all platforms. -2016-03-11: Version 5.1.112 +2016-05-12: Version 5.2.299 Performance and stability improvements on all platforms. -2016-03-11: Version 5.1.111 +2016-05-12: Version 5.2.298 Performance and stability improvements on all platforms. -2016-03-10: Version 5.1.110 +2016-05-12: Version 5.2.297 + + Performance and stability improvements on all platforms. - Minor library function fixes for TypedArray spec compliance (issue - 4785). - Check that Promise subclasses have callable resolve/reject (issue 4633). +2016-05-12: Version 5.2.296 Performance and stability improvements on all platforms. -2016-03-10: Version 5.1.109 +2016-05-12: Version 5.2.295 Performance and stability improvements on all platforms. -2016-03-10: Version 5.1.108 +2016-05-11: Version 5.2.294 Performance and stability improvements on all platforms. -2016-03-10: Version 5.1.107 +2016-05-11: Version 5.2.293 Performance and stability improvements on all platforms. -2016-03-10: Version 5.1.106 +2016-05-11: Version 5.2.292 Performance and stability improvements on all platforms. -2016-03-10: Version 5.1.105 +2016-05-11: Version 5.2.291 + + Use ICU case conversion/transliterator for case conversion (issues 4476, + 4477). Performance and stability improvements on all platforms. -2016-03-10: Version 5.1.104 +2016-05-11: Version 5.2.290 Performance and stability improvements on all platforms. -2016-03-10: Version 5.1.103 +2016-05-11: Version 5.2.289 Performance and stability improvements on all platforms. -2016-03-10: Version 5.1.102 +2016-05-11: Version 5.2.288 Performance and stability improvements on all platforms. -2016-03-10: Version 5.1.101 +2016-05-11: Version 5.2.287 Performance and stability improvements on all platforms. -2016-03-10: Version 5.1.100 +2016-05-11: Version 5.2.286 + + Performance and stability improvements on all platforms. + - [strong] Remove all remainders of strong mode (issue 3956). +2016-05-11: Version 5.2.285 Performance and stability improvements on all platforms. -2016-03-10: Version 5.1.99 +2016-05-11: Version 5.2.284 + + Performance and stability improvements on all platforms. + - Marks the label associated with the runtime call in - CodeStubAssembler::Allocate as deferred (Chromium issue 593359). +2016-05-10: Version 5.2.283 Performance and stability improvements on all platforms. -2016-03-10: Version 5.1.98 +2016-05-10: Version 5.2.282 - Implement iterator finalization in array destructuring (issue 3566). + Fix Map::AsArray to properly iterate over the backing store (issue + 4946). Performance and stability improvements on all platforms. -2016-03-10: Version 5.1.97 +2016-05-10: Version 5.2.281 + + Remove LOG line checking from presubmit. Performance and stability improvements on all platforms. -2016-03-10: Version 5.1.96 +2016-05-10: Version 5.2.280 Performance and stability improvements on all platforms. -2016-03-10: Version 5.1.95 +2016-05-10: Version 5.2.279 - String.prototype[Symbol.iterator] does RequireObjectCoercible(this) - (issue 4348). + Performance and stability improvements on all platforms. - Stage restrictive declarations flag (issue 4824). - Expose Array.prototype.values behind a flag and stage it (issue 4247). +2016-05-10: Version 5.2.278 Performance and stability improvements on all platforms. -2016-03-09: Version 5.1.94 +2016-05-10: Version 5.2.277 Performance and stability improvements on all platforms. -2016-03-09: Version 5.1.93 +2016-05-10: Version 5.2.276 + + Performance and stability improvements on all platforms. + - Ensure appropriate bounds checking for Array subclass concat (Chromium - issue 592340). +2016-05-10: Version 5.2.275 Performance and stability improvements on all platforms. -2016-03-09: Version 5.1.92 +2016-05-10: Version 5.2.274 Performance and stability improvements on all platforms. -2016-03-09: Version 5.1.91 +2016-05-10: Version 5.2.273 Performance and stability improvements on all platforms. -2016-03-09: Version 5.1.90 +2016-05-10: Version 5.2.272 Performance and stability improvements on all platforms. -2016-03-09: Version 5.1.89 +2016-05-10: Version 5.2.271 Performance and stability improvements on all platforms. -2016-03-09: Version 5.1.88 +2016-05-10: Version 5.2.270 Performance and stability improvements on all platforms. -2016-03-09: Version 5.1.87 +2016-05-10: Version 5.2.269 Performance and stability improvements on all platforms. -2016-03-09: Version 5.1.86 +2016-05-10: Version 5.2.268 Performance and stability improvements on all platforms. -2016-03-09: Version 5.1.85 +2016-05-10: Version 5.2.267 + + Various species micro-optimizations (Chromium issue 609739). Performance and stability improvements on all platforms. -2016-03-09: Version 5.1.84 +2016-05-09: Version 5.2.266 Performance and stability improvements on all platforms. -2016-03-08: Version 5.1.83 +2016-05-09: Version 5.2.265 Performance and stability improvements on all platforms. -2016-03-08: Version 5.1.82 +2016-05-09: Version 5.2.264 + + Fix TypedArray Property optimizations (Chromium issue 593634). Performance and stability improvements on all platforms. -2016-03-08: Version 5.1.81 +2016-05-09: Version 5.2.263 + + Performance and stability improvements on all platforms. - Optimize new TypedArray(typedArray) constructor (Chromium issue 592007). - Ensure the @@species protector is updated for accessors (issue 4093). +2016-05-09: Version 5.2.262 - Add UseCounters for various RegExp compatibility issues (Chromium issue - 581577). + [V8] Add v8::Value::TypeOf to API (Chromium issue 595206). Performance and stability improvements on all platforms. -2016-03-08: Version 5.1.80 +2016-05-09: Version 5.2.261 Performance and stability improvements on all platforms. -2016-03-08: Version 5.1.79 +2016-05-09: Version 5.2.260 Performance and stability improvements on all platforms. -2016-03-08: Version 5.1.78 +2016-05-09: Version 5.2.259 + + Expose IsConstructor to the C++ API (issue 4993). Performance and stability improvements on all platforms. -2016-03-08: Version 5.1.77 +2016-05-09: Version 5.2.258 Performance and stability improvements on all platforms. -2016-03-08: Version 5.1.76 +2016-05-09: Version 5.2.257 Performance and stability improvements on all platforms. -2016-03-08: Version 5.1.75 +2016-05-09: Version 5.2.256 Performance and stability improvements on all platforms. -2016-03-08: Version 5.1.74 +2016-05-09: Version 5.2.255 Performance and stability improvements on all platforms. -2016-03-08: Version 5.1.73 +2016-05-09: Version 5.2.254 Performance and stability improvements on all platforms. -2016-03-08: Version 5.1.72 +2016-05-08: Version 5.2.253 Performance and stability improvements on all platforms. -2016-03-08: Version 5.1.71 +2016-05-07: Version 5.2.252 + + fix Set::AsArray to not leave undefined holes in output array (issue + 4946). Performance and stability improvements on all platforms. -2016-03-07: Version 5.1.70 +2016-05-06: Version 5.2.251 Performance and stability improvements on all platforms. -2016-03-07: Version 5.1.69 +2016-05-06: Version 5.2.250 Performance and stability improvements on all platforms. -2016-03-07: Version 5.1.68 +2016-05-06: Version 5.2.249 + + Performance and stability improvements on all platforms. - [key-accumulator] Starting to reimplement the key-accumulator (issue - 4758, Chromium issue 545503). + +2016-05-06: Version 5.2.248 Performance and stability improvements on all platforms. -2016-03-07: Version 5.1.67 +2016-05-06: Version 5.2.247 Performance and stability improvements on all platforms. -2016-03-07: Version 5.1.66 +2016-05-06: Version 5.2.246 Performance and stability improvements on all platforms. -2016-03-07: Version 5.1.65 +2016-05-06: Version 5.2.245 + + Performance and stability improvements on all platforms. + - [key-accumulator] Starting to reimplement the key-accumulator (issue - 4758, Chromium issue 545503). +2016-05-06: Version 5.2.244 Performance and stability improvements on all platforms. -2016-03-07: Version 5.1.64 +2016-05-06: Version 5.2.243 Performance and stability improvements on all platforms. -2016-03-07: Version 5.1.63 +2016-05-04: Version 5.2.242 Performance and stability improvements on all platforms. -2016-03-07: Version 5.1.62 +2016-05-04: Version 5.2.241 Performance and stability improvements on all platforms. -2016-03-07: Version 5.1.61 +2016-05-04: Version 5.2.240 Performance and stability improvements on all platforms. -2016-03-07: Version 5.1.60 +2016-05-04: Version 5.2.239 Performance and stability improvements on all platforms. -2016-03-07: Version 5.1.59 +2016-05-04: Version 5.2.238 + + Performance and stability improvements on all platforms. - Use v8::kGCCallbackFlagCollectAllAvailableGarbage in - Heap::CollectAllAvailableGarbage (Chromium issue 591463). - [key-accumulator] Starting to reimplement the key-accumulator (issue - 4758, Chromium issue 545503). +2016-05-04: Version 5.2.237 Performance and stability improvements on all platforms. -2016-03-07: Version 5.1.58 +2016-05-04: Version 5.2.236 - [regexp] Fix off-by-one in CharacterRange::Negate (Chromium issue - 592343). + S390: Add HasProperty code stub that tries simple lookups or jumps to + runtime otherwise (issue 2743). Performance and stability improvements on all platforms. -2016-03-07: Version 5.1.57 +2016-05-04: Version 5.2.235 Performance and stability improvements on all platforms. -2016-03-07: Version 5.1.56 +2016-05-04: Version 5.2.234 + + Make array __proto__ manipulations not disturb the species protector + (Chromium issue 606207). + + Add v8::Object::GetOwnPropertyNames(context, filter) method (issue 3861, + Chromium issue 581495). + + Performance and stability improvements on all platforms. + - Use v8::kGCCallbackFlagCollectAllAvailableGarbage in - Heap::CollectAllAvailableGarbage (Chromium issue 591463). +2016-05-04: Version 5.2.233 Performance and stability improvements on all platforms. -2016-03-06: Version 5.1.55 +2016-05-04: Version 5.2.232 Performance and stability improvements on all platforms. -2016-03-06: Version 5.1.54 +2016-05-04: Version 5.2.231 Performance and stability improvements on all platforms. -2016-03-04: Version 5.1.53 +2016-05-04: Version 5.2.230 Performance and stability improvements on all platforms. -2016-03-04: Version 5.1.52 +2016-05-04: Version 5.2.229 Performance and stability improvements on all platforms. -2016-03-04: Version 5.1.51 +2016-05-04: Version 5.2.228 Performance and stability improvements on all platforms. -2016-03-04: Version 5.1.50 +2016-05-04: Version 5.2.227 + + MIPS64: Fix [turbofan] Length and index2 are unsigned in + CheckedLoad/CheckedStore (Chromium issue 599717). Performance and stability improvements on all platforms. -2016-03-04: Version 5.1.49 +2016-05-04: Version 5.2.226 Performance and stability improvements on all platforms. -2016-03-04: Version 5.1.48 +2016-05-04: Version 5.2.225 Performance and stability improvements on all platforms. -2016-03-04: Version 5.1.47 +2016-05-04: Version 5.2.224 Performance and stability improvements on all platforms. -2016-03-04: Version 5.1.46 +2016-05-04: Version 5.2.223 + + Performance and stability improvements on all platforms. + - Introduce v8::MicrotasksScope (Chromium issue 585949). +2016-05-04: Version 5.2.222 Performance and stability improvements on all platforms. -2016-03-04: Version 5.1.45 +2016-05-04: Version 5.2.221 Performance and stability improvements on all platforms. -2016-03-04: Version 5.1.44 +2016-05-04: Version 5.2.220 - Use a different GCCallbackFlag for GCs triggered by - CollectAllAvailableGarbage (Chromium issue 591463). + [wasm] Fix for 608630: allow proxies as FFI (Chromium issue 608630). Performance and stability improvements on all platforms. -2016-03-04: Version 5.1.43 +2016-05-04: Version 5.2.219 Performance and stability improvements on all platforms. -2016-03-04: Version 5.1.42 +2016-05-03: Version 5.2.218 Performance and stability improvements on all platforms. -2016-03-04: Version 5.1.41 +2016-05-03: Version 5.2.217 Performance and stability improvements on all platforms. -2016-03-04: Version 5.1.40 +2016-05-03: Version 5.2.216 + + [wasm] Disallow runtime calls in asm.js modules (Chromium issue 592352). + + [API] remove (deprecated) hidden properties. + + [wasm] Fix bug with empty input to Wasm.instantiateModuleFromAsm() + (Chromium issue 605488). + + Add HasProperty code stub that tries simple lookups or jumps to runtime + otherwise (issue 2743). + + Fix ExternalTwobyteStringUtf16CharacterStream::PushBack(kEndOfInput) + (Chromium issue 607903). Performance and stability improvements on all platforms. -2016-03-04: Version 5.1.39 +2016-05-03: Version 5.2.215 + + Performance and stability improvements on all platforms. - Ship ES2015 Function.name reform (issue 3699, Chromium issue 588803). - Introduce v8::MicrotasksScope (Chromium issue 585949). +2016-05-03: Version 5.2.214 Performance and stability improvements on all platforms. -2016-03-04: Version 5.1.38 +2016-05-03: Version 5.2.213 Performance and stability improvements on all platforms. -2016-03-03: Version 5.1.37 +2016-05-03: Version 5.2.212 + + Performance and stability improvements on all platforms. - Restrict FunctionDeclarations in Statement position (issue 4647). + +2016-05-03: Version 5.2.211 Performance and stability improvements on all platforms. -2016-03-03: Version 5.1.36 +2016-05-02: Version 5.2.210 Performance and stability improvements on all platforms. -2016-03-03: Version 5.1.35 +2016-05-02: Version 5.2.209 Performance and stability improvements on all platforms. -2016-03-03: Version 5.1.34 +2016-05-02: Version 5.2.208 Performance and stability improvements on all platforms. -2016-03-03: Version 5.1.33 +2016-05-02: Version 5.2.207 Performance and stability improvements on all platforms. -2016-03-03: Version 5.1.32 +2016-05-02: Version 5.2.206 Performance and stability improvements on all platforms. -2016-03-03: Version 5.1.31 +2016-05-02: Version 5.2.205 Performance and stability improvements on all platforms. -2016-03-03: Version 5.1.30 +2016-05-02: Version 5.2.204 + + [debugger] Add JSProxy support in Runtime::GetInternalProperties + (Chromium issue 588705). + + Performance and stability improvements on all platforms. - Implement TypedArray(typedarray) constructor (issue 4726). + +2016-05-02: Version 5.2.203 Performance and stability improvements on all platforms. -2016-03-02: Version 5.1.29 +2016-05-02: Version 5.2.202 Performance and stability improvements on all platforms. -2016-03-02: Version 5.1.28 +2016-05-02: Version 5.2.201 + + Performance and stability improvements on all platforms. + - [turbofan] Adds an Allocate macro to the CodeStubAssembler (Chromium - issue 588692). +2016-05-02: Version 5.2.200 Performance and stability improvements on all platforms. -2016-03-02: Version 5.1.27 +2016-05-02: Version 5.2.199 Performance and stability improvements on all platforms. -2016-03-02: Version 5.1.26 +2016-05-02: Version 5.2.198 Performance and stability improvements on all platforms. -2016-03-02: Version 5.1.25 +2016-05-02: Version 5.2.197 Performance and stability improvements on all platforms. -2016-03-02: Version 5.1.24 +2016-05-02: Version 5.2.196 + + Performance and stability improvements on all platforms. - Devtools: expose scopes source location to debugger (Chromium issue - 327092). - CodeStubAssembler can generate code for builtins (issue 4614). +2016-05-02: Version 5.2.195 Performance and stability improvements on all platforms. -2016-03-01: Version 5.1.23 +2016-05-02: Version 5.2.194 Performance and stability improvements on all platforms. -2016-03-01: Version 5.1.22 +2016-05-02: Version 5.2.193 Performance and stability improvements on all platforms. -2016-03-01: Version 5.1.21 +2016-05-02: Version 5.2.192 Performance and stability improvements on all platforms. -2016-03-01: Version 5.1.20 +2016-05-02: Version 5.2.191 Performance and stability improvements on all platforms. -2016-03-01: Version 5.1.19 +2016-05-01: Version 5.2.190 Performance and stability improvements on all platforms. -2016-03-01: Version 5.1.18 +2016-05-01: Version 5.2.189 Performance and stability improvements on all platforms. -2016-03-01: Version 5.1.17 +2016-04-30: Version 5.2.188 Performance and stability improvements on all platforms. -2016-03-01: Version 5.1.16 +2016-04-30: Version 5.2.187 Performance and stability improvements on all platforms. -2016-03-01: Version 5.1.15 +2016-04-30: Version 5.2.186 Performance and stability improvements on all platforms. -2016-03-01: Version 5.1.14 +2016-04-29: Version 5.2.185 Performance and stability improvements on all platforms. -2016-03-01: Version 5.1.13 +2016-04-29: Version 5.2.184 Performance and stability improvements on all platforms. -2016-03-01: Version 5.1.12 +2016-04-29: Version 5.2.183 Performance and stability improvements on all platforms. -2016-03-01: Version 5.1.11 +2016-04-29: Version 5.2.182 + + Performance and stability improvements on all platforms. - Make %TypedArray%.from spec-compliant (issue 4782). + +2016-04-29: Version 5.2.181 Performance and stability improvements on all platforms. -2016-02-29: Version 5.1.10 +2016-04-29: Version 5.2.180 Performance and stability improvements on all platforms. -2016-02-29: Version 5.1.9 +2016-04-29: Version 5.2.179 Performance and stability improvements on all platforms. -2016-02-28: Version 5.1.8 +2016-04-29: Version 5.2.178 Performance and stability improvements on all platforms. -2016-02-28: Version 5.1.7 +2016-04-29: Version 5.2.177 + + Fix overflow issue in Zone::New (Chromium issue 606115). Performance and stability improvements on all platforms. -2016-02-28: Version 5.1.6 +2016-04-29: Version 5.2.176 Performance and stability improvements on all platforms. -2016-02-28: Version 5.1.5 +2016-04-29: Version 5.2.175 + + [wasm] Binary 11: Bump module version to 0xB. [wasm] Binary 11: Swap the + order of section name / section length. [wasm] Binary 11: Shorter + section names. [wasm] Binary 11: Add a prefix for function type + declarations. [wasm] Binary 11: Function types encoded as pcount, p*, + rcount, r* [wasm] Fix numeric names for functions (Chromium issue + 575167). + + [wasm] Binary 11: WASM AST is now postorder. [wasm] Binary 11: br_table + takes a value. [wasm] Binary 11: Add implicit blocks to if arms. [wasm] + Binary 11: Add arities to call, return, and breaks [wasm] Binary 11: Add + experimental version (Chromium issue 575167). Performance and stability improvements on all platforms. -2016-02-28: Version 5.1.4 +2016-04-29: Version 5.2.174 + + Add checks for detached ArrayBuffers to ArrayBuffer.prototype.slice + (issue 4964). Performance and stability improvements on all platforms. -2016-02-28: Version 5.1.3 +2016-04-28: Version 5.2.173 Performance and stability improvements on all platforms. -2016-02-28: Version 5.1.2 +2016-04-28: Version 5.2.172 Performance and stability improvements on all platforms. -2016-02-27: Version 5.1.1 +2016-04-28: Version 5.2.171 - Fix strict mode function error message (issue 2198). + Ship for-in initializer deprecation (issue 4942). + + Performance and stability improvements on all platforms. - Reland of Make Intl install properties more like how other builtins do - (patchset #1 id:1 of https://codereview.chromium.org/1733293003/ ) - (issue 4778). - [turbofan] Bailout if LoadBuffer typing assumption doesn't hold - (Chromium issue 589792). +2016-04-28: Version 5.2.170 + + Add GC request to libFuzzers in attempt to avoid parasitic coverage + (Chromium issue 584819). Performance and stability improvements on all platforms. -2016-02-26: Version 5.0.104 +2016-04-28: Version 5.2.169 Performance and stability improvements on all platforms. -2016-02-26: Version 5.0.103 +2016-04-28: Version 5.2.168 + + Prevent unnecessary memory (de-)allocations in LiteralBuffer::CopyFrom + (issue 4947). + + Performance and stability improvements on all platforms. - Make Intl install properties more like how other builtins do (issue - 4778). + +2016-04-28: Version 5.2.167 Performance and stability improvements on all platforms. -2016-02-26: Version 5.0.102 +2016-04-28: Version 5.2.166 + + Performance and stability improvements on all platforms. + - Make TypedArray.from and TypedArray.of writable and configurable (issue - 4315). +2016-04-28: Version 5.2.165 Performance and stability improvements on all platforms. -2016-02-25: Version 5.0.101 +2016-04-28: Version 5.2.164 Performance and stability improvements on all platforms. -2016-02-25: Version 5.0.100 +2016-04-27: Version 5.2.163 + + Performance and stability improvements on all platforms. + - Ship ES2015 iterator finalization (issue 3566). +2016-04-27: Version 5.2.162 Performance and stability improvements on all platforms. -2016-02-25: Version 5.0.99 +2016-04-27: Version 5.2.161 + + [esnext] stage --harmony-string-padding (issue 4954). - Introduce MicrotasksCompletedCallback (Chromium issue 585949). + Disallow generator declarations in certain locations (issue 4824). Performance and stability improvements on all platforms. -2016-02-25: Version 5.0.98 +2016-04-27: Version 5.2.160 Performance and stability improvements on all platforms. -2016-02-25: Version 5.0.97 +2016-04-27: Version 5.2.159 + + [api] Expose FunctionCallbackInfo::NewTarget (issue 4261). Performance and stability improvements on all platforms. -2016-02-25: Version 5.0.96 +2016-04-27: Version 5.2.158 Performance and stability improvements on all platforms. -2016-02-25: Version 5.0.95 +2016-04-27: Version 5.2.157 Performance and stability improvements on all platforms. -2016-02-25: Version 5.0.94 +2016-04-27: Version 5.2.156 + + [es8] Report proper syntax error for tail call expressions in for-in and + for-of bodies (issue 4915). Performance and stability improvements on all platforms. -2016-02-25: Version 5.0.93 +2016-04-27: Version 5.2.155 Performance and stability improvements on all platforms. -2016-02-25: Version 5.0.92 +2016-04-27: Version 5.2.154 Performance and stability improvements on all platforms. -2016-02-25: Version 5.0.91 +2016-04-27: Version 5.2.153 Performance and stability improvements on all platforms. -2016-02-25: Version 5.0.90 +2016-04-27: Version 5.2.152 Performance and stability improvements on all platforms. -2016-02-25: Version 5.0.89 +2016-04-27: Version 5.2.151 Performance and stability improvements on all platforms. -2016-02-25: Version 5.0.88 +2016-04-26: Version 5.2.150 Performance and stability improvements on all platforms. -2016-02-25: Version 5.0.87 +2016-04-26: Version 5.2.149 Performance and stability improvements on all platforms. -2016-02-25: Version 5.0.86 +2016-04-26: Version 5.2.148 Performance and stability improvements on all platforms. -2016-02-25: Version 5.0.85 +2016-04-26: Version 5.2.147 + + Do not penalize performance when --harmony-species is off (Chromium + issue 606207). Performance and stability improvements on all platforms. -2016-02-24: Version 5.0.84 +2016-04-26: Version 5.2.146 + + [es8] Initial set of changes to support syntactic tail calls (issue + 4915). Performance and stability improvements on all platforms. -2016-02-24: Version 5.0.83 +2016-04-26: Version 5.2.145 Performance and stability improvements on all platforms. -2016-02-24: Version 5.0.82 +2016-04-26: Version 5.2.144 + + Performance and stability improvements on all platforms. - Ensure IteratorClose is called for errors in non-declaring assignments - (issue 4776). - Fix priority of exceptions being thrown from for-of loops (issue 4775). +2016-04-26: Version 5.2.143 Performance and stability improvements on all platforms. -2016-02-24: Version 5.0.81 +2016-04-26: Version 5.2.142 Performance and stability improvements on all platforms. -2016-02-24: Version 5.0.80 +2016-04-26: Version 5.2.141 + + Performance and stability improvements on all platforms. - Encode interpreter::SourcePositionTable as variable-length ints (issue - 4690). - Stage ES2015 iterator finalization (issue 3566). +2016-04-26: Version 5.2.140 Performance and stability improvements on all platforms. -2016-02-24: Version 5.0.79 +2016-04-26: Version 5.2.139 Performance and stability improvements on all platforms. -2016-02-24: Version 5.0.78 +2016-04-26: Version 5.2.138 + + [es6] Fix tail call elimination in single-expression arrow functions + (issue 4698). Performance and stability improvements on all platforms. -2016-02-24: Version 5.0.77 +2016-04-26: Version 5.2.137 Performance and stability improvements on all platforms. -2016-02-24: Version 5.0.76 +2016-04-25: Version 5.2.136 Performance and stability improvements on all platforms. -2016-02-24: Version 5.0.75 +2016-04-25: Version 5.2.135 + + Widen --harmony-for-in flag to throw errors in PreParser (issue 4942). Performance and stability improvements on all platforms. -2016-02-24: Version 5.0.74 +2016-04-25: Version 5.2.134 Performance and stability improvements on all platforms. -2016-02-23: Version 5.0.73 +2016-04-25: Version 5.2.133 - Intl: Use private symbols to memoize bound functions (issue 3785). + Performance and stability improvements on all platforms. - Ensure Array.prototype.indexOf returns +0 rather than -0. - Ship ES2015 Symbol.species (issue 4093). +2016-04-25: Version 5.2.132 Performance and stability improvements on all platforms. -2016-02-23: Version 5.0.72 +2016-04-25: Version 5.2.131 Performance and stability improvements on all platforms. -2016-02-23: Version 5.0.71 +2016-04-25: Version 5.2.130 Performance and stability improvements on all platforms. -2016-02-23: Version 5.0.70 +2016-04-25: Version 5.2.129 Performance and stability improvements on all platforms. -2016-02-23: Version 5.0.69 +2016-04-25: Version 5.2.128 Performance and stability improvements on all platforms. -2016-02-23: Version 5.0.68 +2016-04-25: Version 5.2.127 Performance and stability improvements on all platforms. -2016-02-23: Version 5.0.67 +2016-04-25: Version 5.2.126 Performance and stability improvements on all platforms. -2016-02-23: Version 5.0.66 +2016-04-25: Version 5.2.125 Performance and stability improvements on all platforms. -2016-02-22: Version 5.0.65 +2016-04-25: Version 5.2.124 Performance and stability improvements on all platforms. -2016-02-22: Version 5.0.64 +2016-04-25: Version 5.2.123 + + Performance and stability improvements on all platforms. - ES2015 web compat workaround: RegExp.prototype.flags => "" (Chromium - issue 581577). - Remove the Proxy enumerate trap (issue 4768). +2016-04-25: Version 5.2.122 Performance and stability improvements on all platforms. -2016-02-22: Version 5.0.63 +2016-04-22: Version 5.2.121 Performance and stability improvements on all platforms. -2016-02-22: Version 5.0.62 +2016-04-22: Version 5.2.120 + + Performance and stability improvements on all platforms. + - Remove Reflect.enumerate (issue 4768). +2016-04-22: Version 5.2.119 Performance and stability improvements on all platforms. -2016-02-22: Version 5.0.61 +2016-04-22: Version 5.2.118 Performance and stability improvements on all platforms. -2016-02-22: Version 5.0.60 +2016-04-22: Version 5.2.117 + + [debugger] Hide scopes that originate from desugaring (Chromium issue + 604458). Performance and stability improvements on all platforms. -2016-02-22: Version 5.0.59 +2016-04-22: Version 5.2.116 Performance and stability improvements on all platforms. -2016-02-22: Version 5.0.58 +2016-04-22: Version 5.2.115 Performance and stability improvements on all platforms. -2016-02-22: Version 5.0.57 +2016-04-21: Version 5.2.114 Performance and stability improvements on all platforms. -2016-02-22: Version 5.0.56 +2016-04-21: Version 5.2.113 Performance and stability improvements on all platforms. -2016-02-22: Version 5.0.55 +2016-04-21: Version 5.2.112 + + [ic] Restore PROPERTY key tracking in keyed ICs (Chromium issue 594183). Performance and stability improvements on all platforms. -2016-02-22: Version 5.0.54 +2016-04-21: Version 5.2.111 Performance and stability improvements on all platforms. -2016-02-21: Version 5.0.53 +2016-04-21: Version 5.2.110 Performance and stability improvements on all platforms. -2016-02-21: Version 5.0.52 +2016-04-21: Version 5.2.109 Performance and stability improvements on all platforms. -2016-02-21: Version 5.0.51 +2016-04-21: Version 5.2.108 Performance and stability improvements on all platforms. -2016-02-21: Version 5.0.50 +2016-04-21: Version 5.2.107 Performance and stability improvements on all platforms. -2016-02-21: Version 5.0.49 +2016-04-21: Version 5.2.106 Performance and stability improvements on all platforms. -2016-02-21: Version 5.0.48 +2016-04-21: Version 5.2.105 Performance and stability improvements on all platforms. -2016-02-20: Version 5.0.47 +2016-04-21: Version 5.2.104 Performance and stability improvements on all platforms. -2016-02-20: Version 5.0.46 +2016-04-21: Version 5.2.103 Performance and stability improvements on all platforms. -2016-02-19: Version 5.0.45 +2016-04-21: Version 5.2.102 Performance and stability improvements on all platforms. -2016-02-19: Version 5.0.44 +2016-04-20: Version 5.2.101 + + Performance and stability improvements on all platforms. - Return undefined from RegExp.prototype.compile (Chromium issue 585775). + +2016-04-20: Version 5.2.100 Performance and stability improvements on all platforms. -2016-02-19: Version 5.0.43 +2016-04-20: Version 5.2.99 + + Performance and stability improvements on all platforms. - Disable --harmony-object-observe (Chromium issue 552100). + +2016-04-20: Version 5.2.98 Performance and stability improvements on all platforms. -2016-02-19: Version 5.0.42 +2016-04-20: Version 5.2.97 + + Performance and stability improvements on all platforms. + - Introduce BeforeCallEnteredCallback (Chromium issue 585949). +2016-04-20: Version 5.2.96 Performance and stability improvements on all platforms. -2016-02-19: Version 5.0.41 +2016-04-20: Version 5.2.95 Performance and stability improvements on all platforms. -2016-02-19: Version 5.0.40 +2016-04-20: Version 5.2.94 Performance and stability improvements on all platforms. -2016-02-19: Version 5.0.39 +2016-04-20: Version 5.2.93 Performance and stability improvements on all platforms. -2016-02-19: Version 5.0.38 +2016-04-20: Version 5.2.92 + + Performance and stability improvements on all platforms. + - [wasm] Add support for import section (Chromium issue 575167). +2016-04-20: Version 5.2.91 Performance and stability improvements on all platforms. -2016-02-19: Version 5.0.37 +2016-04-20: Version 5.2.90 Performance and stability improvements on all platforms. -2016-02-19: Version 5.0.36 +2016-04-20: Version 5.2.89 Performance and stability improvements on all platforms. -2016-02-19: Version 5.0.35 +2016-04-20: Version 5.2.88 + + [turbofan] Length and index2 are unsigned in CheckedLoad/CheckedStore + (Chromium issue 599717). + + Prevent un-parsed LiteralFunction reaching the compiler (Chromium issue + 604044). Performance and stability improvements on all platforms. -2016-02-19: Version 5.0.34 +2016-04-20: Version 5.2.87 Performance and stability improvements on all platforms. -2016-02-19: Version 5.0.33 +2016-04-20: Version 5.2.86 Performance and stability improvements on all platforms. -2016-02-19: Version 5.0.32 +2016-04-19: Version 5.2.85 Performance and stability improvements on all platforms. -2016-02-19: Version 5.0.31 +2016-04-19: Version 5.2.84 Performance and stability improvements on all platforms. -2016-02-19: Version 5.0.30 +2016-04-19: Version 5.2.83 + + Performance and stability improvements on all platforms. + - Mark old SetAccessCheckCallback as deprecated. +2016-04-19: Version 5.2.82 Performance and stability improvements on all platforms. -2016-02-19: Version 5.0.29 +2016-04-19: Version 5.2.81 Performance and stability improvements on all platforms. -2016-02-19: Version 5.0.28 +2016-04-19: Version 5.2.80 Performance and stability improvements on all platforms. -2016-02-19: Version 5.0.27 +2016-04-19: Version 5.2.79 Performance and stability improvements on all platforms. -2016-02-19: Version 5.0.26 +2016-04-19: Version 5.2.78 Performance and stability improvements on all platforms. -2016-02-18: Version 5.0.25 +2016-04-19: Version 5.2.77 Performance and stability improvements on all platforms. -2016-02-18: Version 5.0.24 +2016-04-19: Version 5.2.76 + + Performance and stability improvements on all platforms. + - Make Date.prototype.toGMTString an alias for Date.prototype.toUTCString - (issue 4708). +2016-04-19: Version 5.2.75 Performance and stability improvements on all platforms. -2016-02-18: Version 5.0.23 +2016-04-19: Version 5.2.74 Performance and stability improvements on all platforms. -2016-02-18: Version 5.0.22 +2016-04-19: Version 5.2.73 Performance and stability improvements on all platforms. -2016-02-18: Version 5.0.21 +2016-04-19: Version 5.2.72 Performance and stability improvements on all platforms. -2016-02-18: Version 5.0.20 +2016-04-19: Version 5.2.71 Performance and stability improvements on all platforms. -2016-02-18: Version 5.0.19 +2016-04-19: Version 5.2.70 Performance and stability improvements on all platforms. -2016-02-18: Version 5.0.18 +2016-04-19: Version 5.2.69 Performance and stability improvements on all platforms. -2016-02-18: Version 5.0.17 +2016-04-19: Version 5.2.68 Performance and stability improvements on all platforms. -2016-02-18: Version 5.0.16 +2016-04-19: Version 5.2.67 + + Performance and stability improvements on all platforms. + - [es6] Implement for-of iterator finalization (issue 2214). +2016-04-19: Version 5.2.66 Performance and stability improvements on all platforms. -2016-02-18: Version 5.0.15 +2016-04-18: Version 5.2.65 Performance and stability improvements on all platforms. -2016-02-18: Version 5.0.14 +2016-04-18: Version 5.2.64 + + Performance and stability improvements on all platforms. - Use displayName in Error.stack rendering if present (issue 4761). + +2016-04-18: Version 5.2.63 Performance and stability improvements on all platforms. -2016-02-18: Version 5.0.13 +2016-04-18: Version 5.2.62 Performance and stability improvements on all platforms. -2016-02-18: Version 5.0.12 +2016-04-18: Version 5.2.61 + + [Atomics] Remove Atomics code stubs; use TF ops (issue 4614). Performance and stability improvements on all platforms. -2016-02-18: Version 5.0.11 +2016-04-18: Version 5.2.60 Performance and stability improvements on all platforms. -2016-02-17: Version 5.0.10 +2016-04-18: Version 5.2.59 + + Performance and stability improvements on all platforms. - [Atomics] Add dmb/dsb/isb instructions to ARM (issue 4614). + +2016-04-18: Version 5.2.58 Performance and stability improvements on all platforms. -2016-02-17: Version 5.0.9 +2016-04-18: Version 5.2.57 Performance and stability improvements on all platforms. -2016-02-17: Version 5.0.8 +2016-04-18: Version 5.2.56 Performance and stability improvements on all platforms. -2016-02-17: Version 5.0.7 +2016-04-18: Version 5.2.55 Performance and stability improvements on all platforms. -2016-02-17: Version 5.0.6 +2016-04-18: Version 5.2.54 Performance and stability improvements on all platforms. -2016-02-17: Version 5.0.5 +2016-04-18: Version 5.2.53 Performance and stability improvements on all platforms. -2016-02-17: Version 5.0.4 +2016-04-18: Version 5.2.52 Performance and stability improvements on all platforms. -2016-02-17: Version 5.0.3 +2016-04-18: Version 5.2.51 Performance and stability improvements on all platforms. -2016-02-17: Version 5.0.2 +2016-04-18: Version 5.2.50 + + [Atomics] Remove Atomics code stubs; use TF ops (issue 4614). Performance and stability improvements on all platforms. -2016-02-17: Version 5.0.1 +2016-04-18: Version 5.2.49 + + [api] Bring back finalizers on global handles. Performance and stability improvements on all platforms. +2016-02-17: Sentinel + + The ChangeLog file is no longer maintained on master. This + sentinel should stay on top of this list. + 2016-02-17: Version 4.10.253 Performance and stability improvements on all platforms. @@ -7268,12 +11197,6 @@ Performance and stability improvements on all platforms. -2015-05-17: Sentinel - - The ChangeLog file is no longer maintained on bleeding_edge. This - sentinel should stay on top of this list. - - 2015-05-17: Version 4.5.2 Performance and stability improvements on all platforms. diff --git a/deps/v8/DEPS b/deps/v8/DEPS index 0559523283f74e..6cac01d5974c44 100644 --- a/deps/v8/DEPS +++ b/deps/v8/DEPS @@ -7,16 +7,28 @@ vars = { } deps = { - "v8/build/gyp": - Var("git_url") + "/external/gyp.git" + "@" + "4ec6c4e3a94bd04a6da2858163d40b2429b8aad1", + "v8/build": + Var("git_url") + "/chromium/src/build.git" + "@" + "59daf502c36f20b5c9292f4bd9af85791f8a5884", + "v8/tools/gyp": + Var("git_url") + "/external/gyp.git" + "@" + "702ac58e477214c635d9b541932e75a95d349352", "v8/third_party/icu": - Var("git_url") + "/chromium/deps/icu.git" + "@" + "c291cde264469b20ca969ce8832088acb21e0c48", + Var("git_url") + "/chromium/deps/icu.git" + "@" + "2341038bf72869a5683a893a2b319a48ffec7f62", + "v8/third_party/instrumented_libraries": + Var("git_url") + "/chromium/src/third_party/instrumented_libraries.git" + "@" + "f15768d7fdf68c0748d20738184120c8ab2e6db7", "v8/buildtools": - Var("git_url") + "/chromium/buildtools.git" + "@" + "80b5126f91be4eb359248d28696746ef09d5be67", + Var("git_url") + "/chromium/buildtools.git" + "@" + "adb8bf4e8fc92aa1717bf151b862d58e6f27c4f2", "v8/base/trace_event/common": - Var("git_url") + "/chromium/src/base/trace_event/common.git" + "@" + "c8c8665c2deaf1cc749d9f8e153256d4f67bf1b8", + Var("git_url") + "/chromium/src/base/trace_event/common.git" + "@" + "315bf1e2d45be7d53346c31cfcc37424a32c30c8", + "v8/third_party/WebKit/Source/platform/inspector_protocol": + Var("git_url") + "/chromium/src/third_party/WebKit/Source/platform/inspector_protocol.git" + "@" + "547960151fb364dd9a382fa79ffc9abfb184e3d1", + "v8/third_party/jinja2": + Var("git_url") + "/chromium/src/third_party/jinja2.git" + "@" + "2222b31554f03e62600cd7e383376a7c187967a1", + "v8/third_party/markupsafe": + Var("git_url") + "/chromium/src/third_party/markupsafe.git" + "@" + "484a5661041cac13bfc688a26ec5434b05d18961", + "v8/tools/mb": + Var('git_url') + '/chromium/src/tools/mb.git' + '@' + "99788b8b516c44d7db25cfb68695bc234fdee5ed", "v8/tools/swarming_client": - Var('git_url') + '/external/swarming.client.git' + '@' + "df6e95e7669883c8fe9ef956c69a544154701a49", + Var('git_url') + '/external/swarming.client.git' + '@' + "e4288c3040a32f2e7ad92f957668f2ee3d36e5a6", "v8/testing/gtest": Var("git_url") + "/external/github.com/google/googletest.git" + "@" + "6f8a66431cb592dad629028a50b3dd418a408c87", "v8/testing/gmock": @@ -25,17 +37,19 @@ deps = { Var("git_url") + "/v8/deps/third_party/benchmarks.git" + "@" + "05d7188267b4560491ff9155c5ee13e207ecd65f", "v8/test/mozilla/data": Var("git_url") + "/v8/deps/third_party/mozilla-tests.git" + "@" + "f6c578a10ea707b1a8ab0b88943fe5115ce2b9be", - "v8/test/simdjs/data": Var("git_url") + "/external/github.com/tc39/ecmascript_simd.git" + "@" + "c8ef63c728283debc25891123eb00482fee4b8cd", + "v8/test/simdjs/data": Var("git_url") + "/external/github.com/tc39/ecmascript_simd.git" + "@" + "baf493985cb9ea7cdbd0d68704860a8156de9556", "v8/test/test262/data": - Var("git_url") + "/external/github.com/tc39/test262.git" + "@" + "57d3e2216fa86ad63b6c0a54914ba9dcbff96003", + Var("git_url") + "/external/github.com/tc39/test262.git" + "@" + "88bc7fe7586f161201c5f14f55c9c489f82b1b67", + "v8/test/test262/harness": + Var("git_url") + "/external/github.com/test262-utils/test262-harness-py.git" + "@" + "cbd968f54f7a95c6556d53ba852292a4c49d11d8", "v8/tools/clang": - Var("git_url") + "/chromium/src/tools/clang.git" + "@" + "faee82e064e04e5cbf60cc7327e7a81d2a4557ad", + Var("git_url") + "/chromium/src/tools/clang.git" + "@" + "3afb04a8153e40ff00f9eaa14337851c3ab4a368", } deps_os = { "android": { "v8/third_party/android_tools": - Var("git_url") + "/android_tools.git" + "@" + "adfd31794011488cd0fc716b53558b2d8a67af8b", + Var("git_url") + "/android_tools.git" + "@" + "af1c5a4cd6329ccdcf8c2bc93d9eea02f9d74869", }, "win": { "v8/third_party/cygwin": @@ -43,6 +57,8 @@ deps_os = { } } +recursedeps = [ 'v8/third_party/android_tools' ] + include_rules = [ # Everybody can use some things. "+include", @@ -53,6 +69,7 @@ include_rules = [ # checkdeps.py shouldn't check for includes in these directories: skip_child_includes = [ "build", + "gypfiles", "third_party", ] @@ -65,7 +82,7 @@ hooks = [ 'pattern': '.', 'action': [ 'python', - 'v8/build/landmines.py', + 'v8/gypfiles/landmines.py', ], }, # Pull clang-format binaries using checked-in hashes. @@ -186,11 +203,33 @@ hooks = [ "-s", "v8/buildtools/linux64/gn.sha1", ], }, + { + # 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', + 'pattern': '.', + 'action': [ + 'python', + 'v8/build/linux/sysroot_scripts/install-sysroot.py', + '--running-as-hook', + ], + }, + { + # Pull sanitizer-instrumented third-party libraries if requested via + # GYP_DEFINES. + 'name': 'instrumented_libraries', + 'pattern': '\\.sha1', + 'action': [ + 'python', + 'v8/third_party/instrumented_libraries/scripts/download_binaries.py', + ], + }, { # Update the Windows toolchain if necessary. 'name': 'win_toolchain', 'pattern': '.', - 'action': ['python', 'v8/build/vs_toolchain.py', 'update'], + 'action': ['python', 'v8/gypfiles/vs_toolchain.py', 'update'], }, # Pull binutils for linux, enabled debug fission for faster linking / # debugging when used with clang on Ubuntu Precise. @@ -208,7 +247,7 @@ hooks = [ # Note: This must run before the clang update. 'name': 'gold_plugin', 'pattern': '.', - 'action': ['python', 'v8/build/download_gold_plugin.py'], + 'action': ['python', 'v8/gypfiles/download_gold_plugin.py'], }, { # Pull clang if needed or requested via GYP_DEFINES. @@ -220,6 +259,6 @@ hooks = [ { # A change to a .gyp, .gypi, or to GYP itself should run the generator. "pattern": ".", - "action": ["python", "v8/build/gyp_v8"], + "action": ["python", "v8/gypfiles/gyp_v8"], }, ] diff --git a/deps/v8/src/third_party/fdlibm/LICENSE b/deps/v8/LICENSE.fdlibm similarity index 100% rename from deps/v8/src/third_party/fdlibm/LICENSE rename to deps/v8/LICENSE.fdlibm diff --git a/deps/v8/Makefile b/deps/v8/Makefile index a0c08a6d9634c7..a6d4d135da3da1 100644 --- a/deps/v8/Makefile +++ b/deps/v8/Makefile @@ -33,7 +33,6 @@ GYPFLAGS ?= TESTFLAGS ?= ANDROID_NDK_HOST_ARCH ?= ANDROID_V8 ?= /data/local/tmp/v8 -NACL_SDK_ROOT ?= # Special build flags. Use them like this: "make library=shared" @@ -122,10 +121,6 @@ endif ifeq ($(werror), no) GYPFLAGS += -Dwerror='' endif -# presubmit=no -ifeq ($(presubmit), no) - TESTFLAGS += --no-presubmit -endif # strictaliasing=off (workaround for GCC-4.5) ifeq ($(strictaliasing), off) GYPFLAGS += -Dv8_no_strict_aliasing=1 @@ -227,6 +222,11 @@ 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: -------------------- # - "grokdump": rebuilds heap constants lists used by grokdump # - any arch listed in ARCHES (see below) @@ -235,7 +235,6 @@ endif # - "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 -# - "nacl" : cross-compile for Native Client (ia32 and x64) # - default (no target specified): build all DEFAULT_ARCHES and MODES # - "check": build all targets and run all tests # - ".clean" for any in ARCHES @@ -245,21 +244,22 @@ endif # Architectures and modes to be compiled. Consider these to be internal # variables, don't override them (use the targets instead). -ARCHES = ia32 x64 x32 arm arm64 mips mipsel mips64 mips64el x87 ppc ppc64 \ - s390 s390x +ARCHES = ia32 x64 arm arm64 mips mipsel mips64 mips64el x87 ppc ppc64 s390 \ + s390x +ARCHES32 = ia32 arm mips mipsel x87 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 android_x87 -NACL_ARCHES = nacl_ia32 nacl_x64 # List of files that trigger Makefile regeneration: GYPFILES = third_party/icu/icu.gypi third_party/icu/icu.gyp \ - build/shim_headers.gypi build/features.gypi build/standalone.gypi \ - build/toolchain.gypi build/all.gyp build/mac/asan.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 tools/gyp/v8.gyp \ + test/unittests/unittests.gyp src/v8.gyp \ tools/parser-shell.gyp testing/gmock.gyp testing/gtest.gyp \ buildtools/third_party/libc++abi/libc++abi.gyp \ buildtools/third_party/libc++/libc++.gyp samples/samples.gyp \ @@ -273,13 +273,10 @@ endif BUILDS = $(foreach mode,$(MODES),$(addsuffix .$(mode),$(ARCHES))) ANDROID_BUILDS = $(foreach mode,$(MODES), \ $(addsuffix .$(mode),$(ANDROID_ARCHES))) -NACL_BUILDS = $(foreach mode,$(MODES), \ - $(addsuffix .$(mode),$(NACL_ARCHES))) # Generates corresponding test targets, e.g. "ia32.release.check". CHECKS = $(addsuffix .check,$(BUILDS)) QUICKCHECKS = $(addsuffix .quickcheck,$(BUILDS)) ANDROID_CHECKS = $(addsuffix .check,$(ANDROID_BUILDS)) -NACL_CHECKS = $(addsuffix .check,$(NACL_BUILDS)) # File where previously used GYPFLAGS are stored. ENVFILE = $(OUTDIR)/environment @@ -288,9 +285,7 @@ ENVFILE = $(OUTDIR)/environment $(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) \ - $(NACL_ARCHES) $(NACL_BUILDS) $(NACL_CHECKS) \ - must-set-NACL_SDK_ROOT + $(ANDROID_ARCHES) $(ANDROID_BUILDS) $(ANDROID_CHECKS) # Target definitions. "all" is the default. all: $(DEFAULT_MODES) @@ -329,16 +324,6 @@ $(ANDROID_BUILDS): $(GYPFILES) $(ENVFILE) Makefile.android OUTDIR="$(OUTDIR)" \ GYPFLAGS="$(GYPFLAGS)" -$(NACL_ARCHES): $(addprefix $$@.,$(MODES)) - -$(NACL_BUILDS): $(GYPFILES) $(ENVFILE) \ - Makefile.nacl must-set-NACL_SDK_ROOT - @$(MAKE) -f Makefile.nacl $@ \ - ARCH="$(basename $@)" \ - MODE="$(subst .,,$(suffix $@))" \ - OUTDIR="$(OUTDIR)" \ - GYPFLAGS="$(GYPFLAGS)" - # Test targets. check: all @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \ @@ -382,15 +367,6 @@ $(addsuffix .check, $(ANDROID_BUILDS)): $$(basename $$@).sync $(addsuffix .check, $(ANDROID_ARCHES)): \ $(addprefix $$(basename $$@).,$(MODES)).check -$(addsuffix .check, $(NACL_BUILDS)): $$(basename $$@) - @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \ - --arch-and-mode=$(basename $@) \ - --timeout=600 --nopresubmit --noi18n \ - --command-prefix="tools/nacl-run.py" - -$(addsuffix .check, $(NACL_ARCHES)): \ - $(addprefix $$(basename $$@).,$(MODES)).check - native.check: native @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR)/native \ --arch-and-mode=. $(TESTFLAGS) @@ -420,7 +396,7 @@ turbocheck: $(subst $(COMMA),$(SPACE),$(FASTCOMPILEMODES)) tc: turbocheck # Clean targets. You can clean each architecture individually, or everything. -$(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES) $(NACL_ARCHES)): +$(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES)): rm -f $(OUTDIR)/Makefile.$(basename $@)* rm -rf $(OUTDIR)/$(basename $@).release rm -rf $(OUTDIR)/$(basename $@).debug @@ -432,7 +408,7 @@ native.clean: rm -rf $(OUTDIR)/native find $(OUTDIR) -regex '.*\(host\|target\)\.native\.mk' -delete -clean: $(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES) $(NACL_ARCHES)) native.clean gtags.clean +clean: $(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES)) native.clean gtags.clean tags.clean # GYP file generation targets. OUT_MAKEFILES = $(addprefix $(OUTDIR)/Makefile.,$(BUILDS)) @@ -441,34 +417,28 @@ $(OUT_MAKEFILES): $(GYPFILES) $(ENVFILE) 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)/build:$(PYTHONPATH):$(shell pwd)/build/gyp/pylib:$(PYTHONPATH)" \ + PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(shell pwd)/gypfiles:$(PYTHONPATH):$(shell pwd)/tools/gyp/pylib:$(PYTHONPATH)" \ GYP_GENERATORS=make \ - build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \ - -Ibuild/standalone.gypi --depth=. \ + 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),) \ + -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)/build:$(PYTHONPATH):$(shell pwd)/build/gyp/pylib:$(PYTHONPATH)" \ + PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(shell pwd)/gypfiles:$(PYTHONPATH):$(shell pwd)/tools/gyp/pylib:$(PYTHONPATH)" \ GYP_GENERATORS=make \ - build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \ - -Ibuild/standalone.gypi --depth=. -S.native $(GYPFLAGS) - -# Note that NACL_SDK_ROOT must be set to point to an appropriate -# Native Client SDK before using this makefile. You can download -# an SDK here: -# https://developers.google.com/native-client/sdk/download -# The path indicated by NACL_SDK_ROOT will typically end with -# a folder for a pepper version such as "pepper_25" that should -# have "tools" and "toolchain" subdirectories. -must-set-NACL_SDK_ROOT: -ifndef NACL_SDK_ROOT - $(error NACL_SDK_ROOT must be set) -endif + 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. @@ -497,11 +467,21 @@ gtags.files: $(GYPFILES) $(ENVFILE) # 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. -GPATH GRTAGS GSYMS GTAGS: gtags.files $(shell cat gtags.files 2> /dev/null) +# 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 index c49cb85b9b6514..417152177d73c2 100644 --- a/deps/v8/Makefile.android +++ b/deps/v8/Makefile.android @@ -66,7 +66,7 @@ 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)/build:$(PYTHONPATH)" \ - build/gyp/gyp --generator-output="${OUTDIR}" build/all.gyp \ - -Ibuild/standalone.gypi --depth=. \ + 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/Makefile.nacl b/deps/v8/Makefile.nacl deleted file mode 100644 index 3459c42c0d865c..00000000000000 --- a/deps/v8/Makefile.nacl +++ /dev/null @@ -1,97 +0,0 @@ -# -# Copyright 2013 the V8 project authors. All rights reserved. -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following -# disclaimer in the documentation and/or other materials provided -# with the distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -# Those definitions should be consistent with the main Makefile -NACL_ARCHES = nacl_ia32 nacl_x64 -MODES = release debug - -# Generates all combinations of NACL ARCHES and MODES, -# e.g. "nacl_ia32.release" or "nacl_x64.release" -NACL_BUILDS = $(foreach mode,$(MODES), \ - $(addsuffix .$(mode),$(NACL_ARCHES))) - -HOST_OS = $(shell uname -s | sed -e 's/Linux/linux/;s/Darwin/mac/') -TOOLCHAIN_PATH = $(realpath ${NACL_SDK_ROOT}/toolchain) -NACL_TOOLCHAIN ?= ${TOOLCHAIN_PATH}/linux_pnacl - -ifeq ($(wildcard $(NACL_TOOLCHAIN)),) - $(error Cannot find Native Client toolchain in "${NACL_TOOLCHAIN}") -endif - -ifeq ($(ARCH), nacl_ia32) - GYPENV = nacl_target_arch=nacl_ia32 v8_target_arch=arm v8_host_arch=ia32 - NACL_CC = "$(NACL_TOOLCHAIN)/bin/pnacl-clang" - NACL_CXX = "$(NACL_TOOLCHAIN)/bin/pnacl-clang++" - NACL_LINK = "$(NACL_TOOLCHAIN)/bin/pnacl-clang++ --pnacl-allow-native -arch x86-32" -else - ifeq ($(ARCH), nacl_x64) - GYPENV = nacl_target_arch=nacl_x64 v8_target_arch=arm v8_host_arch=ia32 - NACL_CC = "$(NACL_TOOLCHAIN)/bin/pnacl-clang" - NACL_CXX = "$(NACL_TOOLCHAIN)/bin/pnacl-clang++" - NACL_LINK = "$(NACL_TOOLCHAIN)/bin/pnacl-clang++ --pnacl-allow-native -arch x86-64" - else - $(error Target architecture "${ARCH}" is not supported) - endif -endif - -# For mksnapshot host generation. -GYPENV += host_os=${HOST_OS} - -# ICU doesn't support NaCl. -GYPENV += v8_enable_i18n_support=0 - -# Disable strict aliasing - v8 code often relies on undefined behavior of C++. -GYPENV += v8_no_strict_aliasing=1 - -NACL_MAKEFILES = $(addprefix $(OUTDIR)/Makefile.,$(NACL_BUILDS)) -.SECONDEXPANSION: -# For some reason the $$(basename $$@) expansion didn't work here... -$(NACL_BUILDS): $(NACL_MAKEFILES) - @$(MAKE) -C "$(OUTDIR)" -f Makefile.$@ \ - CC=${NACL_CC} \ - CXX=${NACL_CXX} \ - AR="$(NACL_TOOLCHAIN)/bin/pnacl-ar" \ - RANLIB="$(NACL_TOOLCHAIN)/bin/pnacl-ranlib" \ - LD="$(NACL_TOOLCHAIN)/bin/pnacl-ld" \ - LINK=${NACL_LINK} \ - BUILDTYPE=$(shell echo $(subst .,,$(suffix $@)) | \ - python -c "print raw_input().capitalize()") \ - builddir="$(shell pwd)/$(OUTDIR)/$@" - -# NACL GYP file generation targets. -$(NACL_MAKEFILES): - GYP_GENERATORS=make \ - GYP_DEFINES="${GYPENV}" \ - CC=${NACL_CC} \ - CXX=${NACL_CXX} \ - LINK=${NACL_LINK} \ - PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(shell pwd)/build:$(PYTHONPATH)" \ - build/gyp/gyp --generator-output="${OUTDIR}" build/all.gyp \ - -Ibuild/standalone.gypi --depth=. \ - -S$(suffix $(basename $@))$(suffix $@) $(GYPFLAGS) \ - -Dwno_array_bounds=-Wno-array-bounds diff --git a/deps/v8/OWNERS b/deps/v8/OWNERS index 3f2caecd498284..26701eef59b1b3 100644 --- a/deps/v8/OWNERS +++ b/deps/v8/OWNERS @@ -1,6 +1,9 @@ adamk@chromium.org ahaas@chromium.org +bbudge@chromium.org +binji@chromium.org bmeurer@chromium.org +bradnelson@chromium.org cbruni@chromium.org danno@chromium.org epertoso@chromium.org @@ -15,6 +18,7 @@ machenbach@chromium.org marja@chromium.org mlippautz@chromium.org mstarzinger@chromium.org +mtrofin@chromium.org mvstanton@chromium.org mythria@chromium.org neis@chromium.org diff --git a/deps/v8/PRESUBMIT.py b/deps/v8/PRESUBMIT.py index f8516afc44ef50..5255ca11fa257b 100644 --- a/deps/v8/PRESUBMIT.py +++ b/deps/v8/PRESUBMIT.py @@ -223,6 +223,8 @@ def _CommonChecks(input_api, output_api): 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( + input_api, output_api)) results.extend(_V8PresubmitChecks(input_api, output_api)) results.extend(_CheckUnwantedDependencies(input_api, output_api)) results.extend( @@ -242,32 +244,15 @@ def _SkipTreeCheck(input_api, output_api): return input_api.environ.get('PRESUBMIT_TREE_CHECK') == 'skip' -def _CheckChangeLogFlag(input_api, output_api, warn): - """Checks usage of LOG= flag in the commit message.""" - results = [] - if (input_api.change.BUG and input_api.change.BUG != 'none' and - not 'LOG' in input_api.change.tags): - text = ('An issue reference (BUG=) requires a change log flag (LOG=). ' - 'Use LOG=Y for including this commit message in the change log. ' - 'Use LOG=N or leave blank otherwise.') - if warn: - results.append(output_api.PresubmitPromptWarning(text)) - else: - results.append(output_api.PresubmitError(text)) - return results - - def CheckChangeOnUpload(input_api, output_api): results = [] results.extend(_CommonChecks(input_api, output_api)) - results.extend(_CheckChangeLogFlag(input_api, output_api, True)) return results def CheckChangeOnCommit(input_api, output_api): results = [] results.extend(_CommonChecks(input_api, output_api)) - results.extend(_CheckChangeLogFlag(input_api, output_api, False)) results.extend(input_api.canned_checks.CheckChangeHasDescription( input_api, output_api)) if not _SkipTreeCheck(input_api, output_api): diff --git a/deps/v8/WATCHLISTS b/deps/v8/WATCHLISTS index 29b957b0917f00..bd07d318dadd55 100644 --- a/deps/v8/WATCHLISTS +++ b/deps/v8/WATCHLISTS @@ -44,7 +44,6 @@ }, 'interpreter': { 'filepath': 'src/interpreter/' \ - '|src/compiler/interpreter' \ '|src/compiler/bytecode' \ '|test/cctest/interpreter/' \ '|test/unittests/interpreter/', @@ -60,6 +59,9 @@ }, 'ia32': { 'filepath': '/ia32/', + }, + 'merges': { + 'filepath': '.', } }, @@ -91,5 +93,9 @@ 'ia32': [ 'v8-x87-ports@googlegroups.com', ], + 'merges': [ + # Only enabled on branches created with tools/release/create_release.py + 'v8-merges@googlegroups.com', + ], }, } diff --git a/deps/v8/base/trace_event/common/trace_event_common.h b/deps/v8/base/trace_event/common/trace_event_common.h index 7a1533ed822e88..0c16e7b72382d3 100644 --- a/deps/v8/base/trace_event/common/trace_event_common.h +++ b/deps/v8/base/trace_event/common/trace_event_common.h @@ -612,6 +612,13 @@ TRACE_EVENT_PHASE_ASYNC_BEGIN, category_group, name, id, \ TRACE_EVENT_API_CURRENT_THREAD_ID, timestamp, TRACE_EVENT_FLAG_NONE, \ arg1_name, arg1_val) +#define TRACE_EVENT_ASYNC_BEGIN_WITH_TIMESTAMP2(category_group, name, id, \ + timestamp, arg1_name, \ + arg1_val, arg2_name, arg2_val) \ + INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP( \ + TRACE_EVENT_PHASE_ASYNC_BEGIN, category_group, name, id, \ + TRACE_EVENT_API_CURRENT_THREAD_ID, timestamp, TRACE_EVENT_FLAG_NONE, \ + arg1_name, arg1_val, arg2_name, arg2_val) #define TRACE_EVENT_COPY_ASYNC_BEGIN_WITH_TIMESTAMP0(category_group, name, id, \ timestamp) \ INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP( \ @@ -701,6 +708,13 @@ TRACE_EVENT_PHASE_ASYNC_END, category_group, name, id, \ TRACE_EVENT_API_CURRENT_THREAD_ID, timestamp, TRACE_EVENT_FLAG_NONE, \ arg1_name, arg1_val) +#define TRACE_EVENT_ASYNC_END_WITH_TIMESTAMP2(category_group, name, id, \ + timestamp, arg1_name, arg1_val, \ + arg2_name, arg2_val) \ + INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP( \ + TRACE_EVENT_PHASE_ASYNC_END, category_group, name, id, \ + TRACE_EVENT_API_CURRENT_THREAD_ID, timestamp, TRACE_EVENT_FLAG_NONE, \ + arg1_name, arg1_val, arg2_name, arg2_val) // NESTABLE_ASYNC_* APIs are used to describe an async operation, which can // be nested within a NESTABLE_ASYNC event and/or have inner NESTABLE_ASYNC @@ -928,12 +942,8 @@ // Special trace event macro to trace task execution with the location where it // was posted from. -#define TRACE_TASK_EXECUTION(run_function, task) \ - TRACE_EVENT2("toplevel", run_function, "src_file", \ - (task).posted_from.file_name(), "src_func", \ - (task).posted_from.function_name()); \ - TRACE_EVENT_API_SCOPED_TASK_EXECUTION_EVENT INTERNAL_TRACE_EVENT_UID( \ - task_event)((task).posted_from.file_name()); +#define TRACE_TASK_EXECUTION(run_function, task) \ + INTERNAL_TRACE_TASK_EXECUTION(run_function, task) // TRACE_EVENT_METADATA* events are information related to other // injected events, not events in their own right. @@ -991,6 +1001,17 @@ INTERNAL_TRACE_EVENT_SCOPED_CONTEXT(category_group, name, \ TRACE_ID_DONT_MANGLE(context)) +// Macro to specify that two trace IDs are identical. For example, +// TRACE_BIND_IDS( +// "category", "name", +// TRACE_ID_WITH_SCOPE("net::URLRequest", 0x1000), +// TRACE_ID_WITH_SCOPE("blink::ResourceFetcher::FetchRequest", 0x2000)) +// tells the trace consumer that events with ID ("net::URLRequest", 0x1000) from +// the current process have the same ID as events with ID +// ("blink::ResourceFetcher::FetchRequest", 0x2000). +#define TRACE_BIND_IDS(category_group, name, id, bind_id) \ + INTERNAL_TRACE_EVENT_ADD_BIND_IDS(category_group, name, id, bind_id); + // Macro to efficiently determine if a given category group is enabled. #define TRACE_EVENT_CATEGORY_GROUP_ENABLED(category_group, ret) \ do { \ @@ -1056,6 +1077,7 @@ #define TRACE_EVENT_PHASE_CLOCK_SYNC ('c') #define TRACE_EVENT_PHASE_ENTER_CONTEXT ('(') #define TRACE_EVENT_PHASE_LEAVE_CONTEXT (')') +#define TRACE_EVENT_PHASE_BIND_IDS ('=') // Flags for changing the behavior of TRACE_EVENT_API_ADD_TRACE_EVENT. #define TRACE_EVENT_FLAG_NONE (static_cast(0)) diff --git a/deps/v8/build/has_valgrind.py b/deps/v8/build/has_valgrind.py deleted file mode 100755 index 83a848d50b3049..00000000000000 --- a/deps/v8/build/has_valgrind.py +++ /dev/null @@ -1,21 +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 - -BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) -VALGRIND_DIR = os.path.join(BASE_DIR, 'third_party', 'valgrind') -LINUX32_DIR = os.path.join(VALGRIND_DIR, 'linux_x86') -LINUX64_DIR = os.path.join(VALGRIND_DIR, 'linux_x64') - - -def DoMain(_): - """Hook to be called from gyp without starting a separate python - interpreter.""" - return int(os.path.exists(LINUX32_DIR) and os.path.exists(LINUX64_DIR)) - - -if __name__ == '__main__': - print DoMain([]) diff --git a/deps/v8/build_overrides/build.gni b/deps/v8/build_overrides/build.gni new file mode 100644 index 00000000000000..da6d3e0ded6e6e --- /dev/null +++ b/deps/v8/build_overrides/build.gni @@ -0,0 +1,18 @@ +# 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. + +mac_sdk_min_build_override = "10.10" +mac_deployment_target_build_override = "10.7" + +# Variable that can be used to support multiple build scenarios, like having +# Chromium specific targets in a client project's GN file etc. +build_with_chromium = false + +# Uncomment these to specify a different NDK location and version in +# non-Chromium builds. +# default_android_ndk_root = "//third_party/android_tools/ndk" +# default_android_ndk_version = "r10e" + +# Some non-Chromium builds don't support building java targets. +enable_java_templates = false diff --git a/deps/v8/build_overrides/gtest.gni b/deps/v8/build_overrides/gtest.gni new file mode 100644 index 00000000000000..54c16b149b4f47 --- /dev/null +++ b/deps/v8/build_overrides/gtest.gni @@ -0,0 +1,15 @@ +# 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. + +# Exclude support for registering main function in multi-process tests. +gtest_include_multiprocess = false + +# Exclude support for platform-specific operations across unit tests. +gtest_include_platform_test = false + +# Exclude support for testing Objective C code on OS X and iOS. +gtest_include_objc_support = false + +# Exclude support for flushing coverage files on iOS. +gtest_include_ios_coverage = false diff --git a/deps/v8/build_overrides/v8.gni b/deps/v8/build_overrides/v8.gni new file mode 100644 index 00000000000000..fc4a70e579b78d --- /dev/null +++ b/deps/v8/build_overrides/v8.gni @@ -0,0 +1,26 @@ +# Copyright 2015 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("//build/config/features.gni") +import("//build/config/ui.gni") +import("//build/config/v8_target_cpu.gni") +import("//gni/v8.gni") + +if (is_android) { + import("//build/config/android/config.gni") +} + +if (((v8_current_cpu == "x86" || + v8_current_cpu == "x64" || + v8_current_cpu=="x87") && + (is_linux || is_mac)) || + (v8_current_cpu == "ppc64" && is_linux)) { + v8_enable_gdbjit_default = true +} + +v8_imminent_deprecation_warnings_default = true + +# Add simple extras solely for the purpose of the cctests. +v8_extra_library_files = [ "//test/cctest/test-extra.js" ] +v8_experimental_extra_library_files = [ "//test/cctest/test-experimental-extra.js" ] diff --git a/deps/v8/gni/isolate.gni b/deps/v8/gni/isolate.gni new file mode 100644 index 00000000000000..93c828d2cdf0fb --- /dev/null +++ b/deps/v8/gni/isolate.gni @@ -0,0 +1,175 @@ +# 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("//build/config/sanitizers/sanitizers.gni") +import("//third_party/icu/config.gni") +import("v8.gni") + +declare_args() { + # Sets the test isolation mode (noop|prepare|check). + v8_test_isolation_mode = "noop" +} + +template("v8_isolate_run") { + # Remember target name as within the action scope the target name will be + # different. + name = target_name + if (name != "" && invoker.isolate != "" && invoker.deps != [] && + v8_test_isolation_mode != "noop") { + action(name + "_run") { + testonly = true + + deps = invoker.deps + + script = "//tools/isolate_driver.py" + + sources = [ + invoker.isolate, + ] + + inputs = [ + # Files that are known to be involved in this step. + "//tools/swarming_client/isolate.py", + "//tools/swarming_client/run_isolated.py", + ] + + if (v8_test_isolation_mode == "prepare") { + outputs = [ + "$root_out_dir/$name.isolated.gen.json", + ] + } else if (v8_test_isolation_mode == "check") { + outputs = [ + "$root_out_dir/$name.isolated", + "$root_out_dir/$name.isolated.state", + ] + } + + # Translate gn to gyp variables. + if (is_asan) { + asan = "1" + } else { + asan = "0" + } + if (is_msan) { + msan = "1" + } else { + msan = "0" + } + if (is_tsan) { + tsan = "1" + } else { + tsan = "0" + } + if (is_cfi) { + cfi_vptr = "1" + } else { + cfi_vptr = "0" + } + if (target_cpu == "x86") { + target_arch = "ia32" + } else { + target_arch = target_cpu + } + if (is_debug) { + configuration_name = "Debug" + } else { + configuration_name = "Release" + } + if (is_component_build) { + component = "shared_library" + } else { + component = "static_library" + } + if (icu_use_data_file) { + icu_use_data_file_flag = "1" + } else { + icu_use_data_file_flag = "0" + } + if (v8_use_external_startup_data) { + use_external_startup_data = "1" + } else { + use_external_startup_data = "0" + } + if (v8_use_snapshot) { + use_snapshot = "true" + } else { + use_snapshot = "false" + } + if (v8_has_valgrind) { + has_valgrind = "1" + } else { + has_valgrind = "0" + } + if (v8_gcmole) { + gcmole = "1" + } else { + gcmole = "0" + } + + + # Note, all paths will be rebased in isolate_driver.py to be relative to + # the isolate file. + args = [ + v8_test_isolation_mode, + "--isolated", + rebase_path("$root_out_dir/$name.isolated", root_build_dir), + "--isolate", + rebase_path(invoker.isolate, root_build_dir), + + # Path variables are used to replace file paths when loading a .isolate + # file + "--path-variable", + "DEPTH", + rebase_path("//", root_build_dir), + "--path-variable", + "PRODUCT_DIR", + rebase_path(root_out_dir, root_build_dir), + + # TODO(machenbach): Set variables for remaining features. + "--config-variable", + "CONFIGURATION_NAME=$configuration_name", + "--config-variable", + "OS=$target_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=0", + "--config-variable", + "sanitizer_coverage=0", + "--config-variable", + "component=$component", + "--config-variable", + "target_arch=$target_arch", + "--config-variable", + "v8_use_external_startup_data=$use_external_startup_data", + "--config-variable", + "v8_use_snapshot=$use_snapshot", + ] + + if (is_win) { + args += [ + "--config-variable", + "msvs_version=2013", + ] + } else { + args += [ + "--config-variable", + "msvs_version=0", + ] + } + } + } +} diff --git a/deps/v8/gni/v8.gni b/deps/v8/gni/v8.gni new file mode 100644 index 00000000000000..7ff7f6fb89ac36 --- /dev/null +++ b/deps/v8/gni/v8.gni @@ -0,0 +1,108 @@ +# 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("//build/config/sanitizers/sanitizers.gni") +import("//build/config/v8_target_cpu.gni") + +declare_args() { + # Indicate if valgrind was fetched as a custom deps to make it available on + # swarming. + v8_has_valgrind = false + + # Indicate if gcmole was fetched as a hook to make it available on swarming. + v8_gcmole = false + + # Turns on compiler optimizations in V8 in Debug build. + v8_optimized_debug = true + + # Support for backtrace_symbols on linux. + v8_enable_backtrace = "" + + # Enable the snapshot feature, for fast context creation. + # http://v8project.blogspot.com/2015/09/custom-startup-snapshots.html + v8_use_snapshot = true + + # Use external files for startup data blobs: + # the JS builtins sources and the start snapshot. + v8_use_external_startup_data = "" +} + +if (v8_use_external_startup_data == "") { + # If not specified as a gn arg, use external startup data by default if + # a snapshot is used and if we're not on ios. + v8_use_external_startup_data = v8_use_snapshot && !is_ios +} + +if (v8_enable_backtrace == "") { + v8_enable_backtrace = is_debug && !v8_optimized_debug +} + +############################################################################### +# Templates +# + +# Points to // in v8 stand-alone or to //v8/ in chromium. We need absolute +# paths for all configs in templates as they are shared in different +# subdirectories. +v8_path_prefix = get_path_info("../", "abspath") + +# Common configs to remove or add in all v8 targets. +v8_remove_configs = [ "//build/config/compiler:chromium_code" ] +v8_add_configs = [ + "//build/config/compiler:no_chromium_code", + v8_path_prefix + ":features", + v8_path_prefix + ":toolchain", +] + +if (is_debug && !v8_optimized_debug) { + v8_remove_configs += [ "//build/config/compiler:default_optimization" ] + v8_add_configs += [ "//build/config/compiler:no_optimize" ] +} else { + v8_remove_configs += [ "//build/config/compiler:default_optimization" ] + + # TODO(crbug.com/621335) Rework this so that we don't have the confusion + # between "optimize_speed" and "optimize_max". + if (is_posix && !is_android && !using_sanitizer) { + v8_add_configs += [ "//build/config/compiler:optimize_speed" ] + } else { + v8_add_configs += [ "//build/config/compiler:optimize_max" ] + } +} + +if (is_posix && v8_enable_backtrace) { + v8_remove_configs += [ "//build/config/gcc:symbol_visibility_hidden" ] + v8_add_configs += [ "//build/config/gcc:symbol_visibility_default" ] +} + +# All templates should be kept in sync. +template("v8_source_set") { + source_set(target_name) { + forward_variables_from(invoker, "*", [ "configs" ]) + configs += invoker.configs + configs -= v8_remove_configs + configs += v8_add_configs + } +} + +template("v8_executable") { + executable(target_name) { + forward_variables_from(invoker, "*", [ "configs" ]) + configs += invoker.configs + configs -= v8_remove_configs + configs += v8_add_configs + if (is_linux) { + # For enabling ASLR. + ldflags = [ "-pie" ] + } + } +} + +template("v8_component") { + component(target_name) { + forward_variables_from(invoker, "*", [ "configs" ]) + configs += invoker.configs + configs -= v8_remove_configs + configs += v8_add_configs + } +} diff --git a/deps/v8/build/OWNERS b/deps/v8/gypfiles/OWNERS similarity index 100% rename from deps/v8/build/OWNERS rename to deps/v8/gypfiles/OWNERS diff --git a/deps/v8/build/README.txt b/deps/v8/gypfiles/README.txt similarity index 100% rename from deps/v8/build/README.txt rename to deps/v8/gypfiles/README.txt diff --git a/deps/v8/build/all.gyp b/deps/v8/gypfiles/all.gyp similarity index 80% rename from deps/v8/build/all.gyp rename to deps/v8/gypfiles/all.gyp index feaf4fecccabf5..6b4ef82d6906c1 100644 --- a/deps/v8/build/all.gyp +++ b/deps/v8/gypfiles/all.gyp @@ -8,11 +8,7 @@ 'target_name': 'All', 'type': 'none', 'dependencies': [ - '../samples/samples.gyp:*', '../src/d8.gyp:d8', - '../test/cctest/cctest.gyp:*', - '../test/fuzzer/fuzzer.gyp:*', - '../test/unittests/unittests.gyp:*', ], 'conditions': [ ['component!="shared_library"', { @@ -20,12 +16,20 @@ '../tools/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/default.gyp:*', - '../test/ignition.gyp:*', '../test/intl/intl.gyp:*', '../test/message/message.gyp:*', '../test/mjsunit/mjsunit.gyp:*', diff --git a/deps/v8/build/config/win/msvs_dependencies.isolate b/deps/v8/gypfiles/config/win/msvs_dependencies.isolate similarity index 100% rename from deps/v8/build/config/win/msvs_dependencies.isolate rename to deps/v8/gypfiles/config/win/msvs_dependencies.isolate diff --git a/deps/v8/build/coverage_wrapper.py b/deps/v8/gypfiles/coverage_wrapper.py similarity index 100% rename from deps/v8/build/coverage_wrapper.py rename to deps/v8/gypfiles/coverage_wrapper.py diff --git a/deps/v8/build/detect_v8_host_arch.py b/deps/v8/gypfiles/detect_v8_host_arch.py similarity index 100% rename from deps/v8/build/detect_v8_host_arch.py rename to deps/v8/gypfiles/detect_v8_host_arch.py diff --git a/deps/v8/build/download_gold_plugin.py b/deps/v8/gypfiles/download_gold_plugin.py similarity index 100% rename from deps/v8/build/download_gold_plugin.py rename to deps/v8/gypfiles/download_gold_plugin.py diff --git a/deps/v8/build/features.gypi b/deps/v8/gypfiles/features.gypi similarity index 100% rename from deps/v8/build/features.gypi rename to deps/v8/gypfiles/features.gypi diff --git a/deps/v8/build/get_landmines.py b/deps/v8/gypfiles/get_landmines.py similarity index 95% rename from deps/v8/build/get_landmines.py rename to deps/v8/gypfiles/get_landmines.py index 2bbf7a61bfe290..9fcca4b968a888 100755 --- a/deps/v8/build/get_landmines.py +++ b/deps/v8/gypfiles/get_landmines.py @@ -27,6 +27,7 @@ def main(): print 'Switching to pinned msvs toolchain.' print 'Clobbering to hopefully resolve problem with mksnapshot' print 'Clobber after ICU roll.' + print 'Clobber after Android NDK update.' return 0 diff --git a/deps/v8/build/gyp_environment.py b/deps/v8/gypfiles/gyp_environment.py similarity index 90% rename from deps/v8/build/gyp_environment.py rename to deps/v8/gypfiles/gyp_environment.py index 7a4e6221482688..76ae841ffb6a08 100644 --- a/deps/v8/build/gyp_environment.py +++ b/deps/v8/gypfiles/gyp_environment.py @@ -31,6 +31,7 @@ def apply_gyp_environment(file_path=None): supported_vars = ( 'V8_GYP_FILE', 'V8_GYP_SYNTAX_CHECK', 'GYP_DEFINES', + 'GYP_GENERATORS', 'GYP_GENERATOR_FLAGS', 'GYP_GENERATOR_OUTPUT', ) for var in supported_vars: @@ -51,4 +52,9 @@ def set_environment(): # Update the environment based on v8.gyp_env gyp_env_path = os.path.join(os.path.dirname(V8_ROOT), 'v8.gyp_env') apply_gyp_environment(gyp_env_path) + + if not os.environ.get('GYP_GENERATORS'): + # Default to ninja on all platforms. + os.environ['GYP_GENERATORS'] = 'ninja' + vs_toolchain.SetEnvironmentAndGetRuntimeDllDirs() diff --git a/deps/v8/build/gyp_v8 b/deps/v8/gypfiles/gyp_v8 similarity index 95% rename from deps/v8/build/gyp_v8 rename to deps/v8/gypfiles/gyp_v8 index 8813f2c12162ba..8be39d961536f1 100755 --- a/deps/v8/build/gyp_v8 +++ b/deps/v8/gypfiles/gyp_v8 @@ -43,7 +43,7 @@ import vs_toolchain script_dir = os.path.dirname(os.path.realpath(__file__)) v8_root = os.path.abspath(os.path.join(script_dir, os.pardir)) -sys.path.insert(0, os.path.join(v8_root, 'build', 'gyp', 'pylib')) +sys.path.insert(0, os.path.join(v8_root, 'tools', 'gyp', 'pylib')) import gyp # Add paths so that pymod_do_main(...) can import files. @@ -90,7 +90,7 @@ def additional_include_files(args=[]): result.append(path) # Always include standalone.gypi - AddInclude(os.path.join(v8_root, 'build', 'standalone.gypi')) + AddInclude(os.path.join(v8_root, 'gypfiles', 'standalone.gypi')) # Optionally add supplemental .gypi files if present. supplements = glob.glob(os.path.join(v8_root, '*', 'supplement.gypi')) @@ -118,6 +118,10 @@ def run_gyp(args): if __name__ == '__main__': args = sys.argv[1:] + if int(os.environ.get('GYP_CHROMIUM_NO_ACTION', 0)): + print 'Skipping gyp_v8 due to GYP_CHROMIUM_NO_ACTION env var.' + sys.exit(0) + gyp_environment.set_environment() # This could give false positives since it doesn't actually do real option diff --git a/deps/v8/build/gyp_v8.py b/deps/v8/gypfiles/gyp_v8.py similarity index 100% rename from deps/v8/build/gyp_v8.py rename to deps/v8/gypfiles/gyp_v8.py diff --git a/deps/v8/build/isolate.gypi b/deps/v8/gypfiles/isolate.gypi similarity index 92% rename from deps/v8/build/isolate.gypi rename to deps/v8/gypfiles/isolate.gypi index 4cfbbfddd100d7..149818c8d0636f 100644 --- a/deps/v8/build/isolate.gypi +++ b/deps/v8/gypfiles/isolate.gypi @@ -17,7 +17,7 @@ # 'foo_test', # ], # 'includes': [ -# '../build/isolate.gypi', +# '../gypfiles/isolate.gypi', # ], # 'sources': [ # 'foo_test.isolate', @@ -73,15 +73,13 @@ '--config-variable', 'cfi_vptr=<(cfi_vptr)', '--config-variable', 'gcmole=<(gcmole)', '--config-variable', 'has_valgrind=<(has_valgrind)', - '--config-variable', 'icu_use_data_file_flag=0', + '--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', 'use_custom_libcxx=<(use_custom_libcxx)', - '--config-variable', 'v8_separate_ignition_snapshot=<(v8_separate_ignition_snapshot)', '--config-variable', 'v8_use_external_startup_data=<(v8_use_external_startup_data)', '--config-variable', 'v8_use_snapshot=<(v8_use_snapshot)', ], diff --git a/deps/v8/build/landmine_utils.py b/deps/v8/gypfiles/landmine_utils.py similarity index 100% rename from deps/v8/build/landmine_utils.py rename to deps/v8/gypfiles/landmine_utils.py diff --git a/deps/v8/build/landmines.py b/deps/v8/gypfiles/landmines.py similarity index 99% rename from deps/v8/build/landmines.py rename to deps/v8/gypfiles/landmines.py index 97c63901c1a904..2a81c66d1a6529 100755 --- a/deps/v8/build/landmines.py +++ b/deps/v8/gypfiles/landmines.py @@ -198,7 +198,7 @@ def process_options(): parser = optparse.OptionParser() parser.add_option( '-s', '--landmine-scripts', action='append', - default=[os.path.join(SRC_DIR, 'build', 'get_landmines.py')], + 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.') diff --git a/deps/v8/build/mac/asan.gyp b/deps/v8/gypfiles/mac/asan.gyp similarity index 100% rename from deps/v8/build/mac/asan.gyp rename to deps/v8/gypfiles/mac/asan.gyp diff --git a/deps/v8/gypfiles/set_clang_warning_flags.gypi b/deps/v8/gypfiles/set_clang_warning_flags.gypi new file mode 100644 index 00000000000000..63d5f1435ccb51 --- /dev/null +++ b/deps/v8/gypfiles/set_clang_warning_flags.gypi @@ -0,0 +1,59 @@ +# Copyright 2016 the V8 project authors. All rights reserved. +# Copyright (c) 2014 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 to set clang-specific compiler flags. +# To use this the following variable can be defined: +# clang_warning_flags: list: Compiler flags to pass to clang. +# clang_warning_flags_unset: list: Compiler flags to not pass to clang. +# +# Only use this in third-party code. In chromium_code, fix your code to not +# warn instead! +# +# Note that the gypi file is included in target_defaults, so it does not need +# to be explicitly included. +# +# Warning flags set by this will be used on all platforms. If you want to set +# warning flags on only some platforms, you have to do so manually. +# +# To use this, create a gyp target with the following form: +# { +# 'target_name': 'my_target', +# 'variables': { +# 'clang_warning_flags': ['-Wno-awesome-warning'], +# 'clang_warning_flags_unset': ['-Wpreviously-set-flag'], +# } +# } + +{ + 'variables': { + 'clang_warning_flags_unset%': [], # Provide a default value. + }, + 'conditions': [ + ['clang==1', { + # This uses >@ instead of @< to also see clang_warning_flags set in + # targets directly, not just the clang_warning_flags in target_defaults. + 'cflags': [ '>@(clang_warning_flags)' ], + 'cflags!': [ '>@(clang_warning_flags_unset)' ], + 'xcode_settings': { + 'WARNING_CFLAGS': ['>@(clang_warning_flags)'], + 'WARNING_CFLAGS!': ['>@(clang_warning_flags_unset)'], + }, + 'msvs_settings': { + 'VCCLCompilerTool': { + 'AdditionalOptions': [ '>@(clang_warning_flags)' ], + 'AdditionalOptions!': [ '>@(clang_warning_flags_unset)' ], + }, + }, + }], + ['clang==0 and host_clang==1', { + 'target_conditions': [ + ['_toolset=="host"', { + 'cflags': [ '>@(clang_warning_flags)' ], + 'cflags!': [ '>@(clang_warning_flags_unset)' ], + }], + ], + }], + ], +} diff --git a/deps/v8/build/shim_headers.gypi b/deps/v8/gypfiles/shim_headers.gypi similarity index 100% rename from deps/v8/build/shim_headers.gypi rename to deps/v8/gypfiles/shim_headers.gypi diff --git a/deps/v8/build/standalone.gypi b/deps/v8/gypfiles/standalone.gypi similarity index 85% rename from deps/v8/build/standalone.gypi rename to deps/v8/gypfiles/standalone.gypi index 6c88409dbee892..6599bb83512173 100644 --- a/deps/v8/build/standalone.gypi +++ b/deps/v8/gypfiles/standalone.gypi @@ -49,35 +49,70 @@ 'variables': { 'variables': { 'variables': { - 'conditions': [ - ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or \ - OS=="netbsd" or OS=="mac" or OS=="qnx" or OS=="aix"', { - # This handles the Unix platforms we generally deal with. - # Anything else gets passed through, which probably won't work - # very well; such hosts should pass an explicit target_arch - # to gyp. - 'host_arch%': ' +#include +#include + +namespace v8 { +namespace platform { +namespace tracing { + +const int kTraceMaxNumArgs = 2; + +class TraceObject { + public: + union ArgValue { + bool as_bool; + uint64_t as_uint; + int64_t as_int; + double as_double; + const void* as_pointer; + const char* as_string; + }; + + TraceObject() {} + ~TraceObject(); + void Initialize(char phase, const uint8_t* category_enabled_flag, + const char* name, const char* scope, uint64_t id, + uint64_t bind_id, int num_args, const char** arg_names, + const uint8_t* arg_types, const uint64_t* arg_values, + unsigned int flags); + void UpdateDuration(); + void InitializeForTesting(char phase, const uint8_t* category_enabled_flag, + const char* name, const char* scope, uint64_t id, + uint64_t bind_id, int num_args, + const char** arg_names, const uint8_t* arg_types, + const uint64_t* arg_values, unsigned int flags, + int pid, int tid, int64_t ts, int64_t tts, + uint64_t duration, uint64_t cpu_duration); + + int pid() const { return pid_; } + int tid() const { return tid_; } + char phase() const { return phase_; } + const uint8_t* category_enabled_flag() const { + return category_enabled_flag_; + } + const char* name() const { return name_; } + const char* scope() const { return scope_; } + uint64_t id() const { return id_; } + uint64_t bind_id() const { return bind_id_; } + int num_args() const { return num_args_; } + const char** arg_names() { return arg_names_; } + uint8_t* arg_types() { return arg_types_; } + ArgValue* arg_values() { return arg_values_; } + unsigned int flags() const { return flags_; } + int64_t ts() { return ts_; } + int64_t tts() { return tts_; } + uint64_t duration() { return duration_; } + uint64_t cpu_duration() { return cpu_duration_; } + + private: + int pid_; + int tid_; + char phase_; + const char* name_; + const char* scope_; + const uint8_t* category_enabled_flag_; + uint64_t id_; + uint64_t bind_id_; + int num_args_; + const char* arg_names_[kTraceMaxNumArgs]; + uint8_t arg_types_[kTraceMaxNumArgs]; + ArgValue arg_values_[kTraceMaxNumArgs]; + char* parameter_copy_storage_ = nullptr; + unsigned int flags_; + int64_t ts_; + int64_t tts_; + uint64_t duration_; + uint64_t cpu_duration_; + + // Disallow copy and assign + TraceObject(const TraceObject&) = delete; + void operator=(const TraceObject&) = delete; +}; + +class TraceWriter { + public: + TraceWriter() {} + virtual ~TraceWriter() {} + virtual void AppendTraceEvent(TraceObject* trace_event) = 0; + virtual void Flush() = 0; + + static TraceWriter* CreateJSONTraceWriter(std::ostream& stream); + + private: + // Disallow copy and assign + TraceWriter(const TraceWriter&) = delete; + void operator=(const TraceWriter&) = delete; +}; + +class TraceBufferChunk { + public: + explicit TraceBufferChunk(uint32_t seq); + + void Reset(uint32_t new_seq); + bool IsFull() const { return next_free_ == kChunkSize; } + TraceObject* AddTraceEvent(size_t* event_index); + TraceObject* GetEventAt(size_t index) { return &chunk_[index]; } + + uint32_t seq() const { return seq_; } + size_t size() const { return next_free_; } + + static const size_t kChunkSize = 64; + + private: + size_t next_free_ = 0; + TraceObject chunk_[kChunkSize]; + uint32_t seq_; + + // Disallow copy and assign + TraceBufferChunk(const TraceBufferChunk&) = delete; + void operator=(const TraceBufferChunk&) = delete; +}; + +class TraceBuffer { + public: + TraceBuffer() {} + virtual ~TraceBuffer() {} + + virtual TraceObject* AddTraceEvent(uint64_t* handle) = 0; + virtual TraceObject* GetEventByHandle(uint64_t handle) = 0; + virtual bool Flush() = 0; + + static const size_t kRingBufferChunks = 1024; + + static TraceBuffer* CreateTraceBufferRingBuffer(size_t max_chunks, + TraceWriter* trace_writer); + + private: + // Disallow copy and assign + TraceBuffer(const TraceBuffer&) = delete; + void operator=(const TraceBuffer&) = delete; +}; + +// Options determines how the trace buffer stores data. +enum TraceRecordMode { + // Record until the trace buffer is full. + RECORD_UNTIL_FULL, + + // Record until the user ends the trace. The trace buffer is a fixed size + // and we use it as a ring buffer during recording. + RECORD_CONTINUOUSLY, + + // Record until the trace buffer is full, but with a huge buffer size. + RECORD_AS_MUCH_AS_POSSIBLE, + + // Echo to console. Events are discarded. + ECHO_TO_CONSOLE, +}; + +class TraceConfig { + public: + typedef std::vector StringList; + + static TraceConfig* CreateDefaultTraceConfig(); + + TraceConfig() + : enable_sampling_(false), + enable_systrace_(false), + enable_argument_filter_(false) {} + TraceRecordMode GetTraceRecordMode() const { return record_mode_; } + bool IsSamplingEnabled() const { return enable_sampling_; } + bool IsSystraceEnabled() const { return enable_systrace_; } + bool IsArgumentFilterEnabled() const { return enable_argument_filter_; } + + void SetTraceRecordMode(TraceRecordMode mode) { record_mode_ = mode; } + void EnableSampling() { enable_sampling_ = true; } + void EnableSystrace() { enable_systrace_ = true; } + void EnableArgumentFilter() { enable_argument_filter_ = true; } + + void AddIncludedCategory(const char* included_category); + void AddExcludedCategory(const char* excluded_category); + + bool IsCategoryGroupEnabled(const char* category_group) const; + + private: + TraceRecordMode record_mode_; + bool enable_sampling_ : 1; + bool enable_systrace_ : 1; + bool enable_argument_filter_ : 1; + StringList included_categories_; + StringList excluded_categories_; + + // Disallow copy and assign + TraceConfig(const TraceConfig&) = delete; + void operator=(const TraceConfig&) = delete; +}; + +class TracingController { + public: + enum Mode { DISABLED = 0, RECORDING_MODE }; + + // The pointer returned from GetCategoryGroupEnabledInternal() points to a + // value with zero or more of the following bits. Used in this class only. + // The TRACE_EVENT macros should only use the value as a bool. + // These values must be in sync with macro values in TraceEvent.h in Blink. + enum CategoryGroupEnabledFlags { + // Category group enabled for the recording mode. + ENABLED_FOR_RECORDING = 1 << 0, + // Category group enabled by SetEventCallbackEnabled(). + ENABLED_FOR_EVENT_CALLBACK = 1 << 2, + // Category group enabled to export events to ETW. + ENABLED_FOR_ETW_EXPORT = 1 << 3 + }; + + TracingController() {} + void Initialize(TraceBuffer* trace_buffer); + const uint8_t* GetCategoryGroupEnabled(const char* category_group); + static const char* GetCategoryGroupName(const uint8_t* category_enabled_flag); + uint64_t AddTraceEvent(char phase, const uint8_t* category_enabled_flag, + const char* name, const char* scope, uint64_t id, + uint64_t bind_id, int32_t num_args, + const char** arg_names, const uint8_t* arg_types, + const uint64_t* arg_values, unsigned int flags); + void UpdateTraceEventDuration(const uint8_t* category_enabled_flag, + const char* name, uint64_t handle); + + void StartTracing(TraceConfig* trace_config); + void StopTracing(); + + private: + const uint8_t* GetCategoryGroupEnabledInternal(const char* category_group); + void UpdateCategoryGroupEnabledFlag(size_t category_index); + void UpdateCategoryGroupEnabledFlags(); + + std::unique_ptr trace_buffer_; + std::unique_ptr trace_config_; + Mode mode_ = DISABLED; + + // Disallow copy and assign + TracingController(const TracingController&) = delete; + void operator=(const TracingController&) = delete; +}; + +} // namespace tracing +} // namespace platform +} // namespace v8 + +#endif // V8_LIBPLATFORM_V8_TRACING_H_ diff --git a/deps/v8/include/v8-debug.h b/deps/v8/include/v8-debug.h index 50314501e3b3b9..6385a31d85e80f 100644 --- a/deps/v8/include/v8-debug.h +++ b/deps/v8/include/v8-debug.h @@ -18,13 +18,11 @@ enum DebugEvent { Exception = 2, NewFunction = 3, BeforeCompile = 4, - AfterCompile = 5, + AfterCompile = 5, CompileError = 6, - PromiseEvent = 7, - AsyncTaskEvent = 8, + AsyncTaskEvent = 7, }; - class V8_EXPORT Debug { public: /** @@ -127,6 +125,8 @@ class V8_EXPORT Debug { */ virtual ClientData* GetClientData() const = 0; + virtual Isolate* GetIsolate() const = 0; + virtual ~EventDetails() {} }; @@ -157,9 +157,6 @@ class V8_EXPORT Debug { static bool SetDebugEventListener(Isolate* isolate, EventCallback that, Local data = Local()); - V8_DEPRECATED("Use version with an Isolate", - static bool SetDebugEventListener( - EventCallback that, Local data = Local())); // Schedule a debugger break to happen when JavaScript code is run // in the given isolate. @@ -174,8 +171,6 @@ class V8_EXPORT Debug { // Message based interface. The message protocol is JSON. static void SetMessageHandler(Isolate* isolate, MessageHandler handler); - V8_DEPRECATED("Use version with an Isolate", - static void SetMessageHandler(MessageHandler handler)); static void SendCommand(Isolate* isolate, const uint16_t* command, int length, @@ -199,9 +194,6 @@ class V8_EXPORT Debug { * } * \endcode */ - static V8_DEPRECATED("Use maybe version", - Local Call(v8::Local fun, - Local data = Local())); // TODO(dcarney): data arg should be a MaybeLocal static MaybeLocal Call(Local context, v8::Local fun, @@ -210,8 +202,6 @@ class V8_EXPORT Debug { /** * Returns a mirror object for the given object. */ - static V8_DEPRECATED("Use maybe version", - Local GetMirror(v8::Local obj)); static MaybeLocal GetMirror(Local context, v8::Local obj); @@ -247,8 +237,6 @@ class V8_EXPORT Debug { * of this method. */ static void ProcessDebugMessages(Isolate* isolate); - V8_DEPRECATED("Use version with an Isolate", - static void ProcessDebugMessages()); /** * Debugger is running in its own context which is entered while debugger @@ -258,9 +246,12 @@ class V8_EXPORT Debug { * least one DebugEventListener or MessageHandler is set. */ static Local GetDebugContext(Isolate* isolate); - V8_DEPRECATED("Use version with an Isolate", - static Local GetDebugContext()); + /** + * While in the debug context, this method returns the top-most non-debug + * context, if it exists. + */ + static MaybeLocal GetDebuggedContext(Isolate* isolate); /** * Enable/disable LiveEdit functionality for the given Isolate diff --git a/deps/v8/include/v8-experimental.h b/deps/v8/include/v8-experimental.h index 294ba647f03df9..1773345e09add4 100644 --- a/deps/v8/include/v8-experimental.h +++ b/deps/v8/include/v8-experimental.h @@ -31,13 +31,17 @@ class V8_EXPORT FastAccessorBuilder { ValueId IntegerConstant(int int_constant); ValueId GetReceiver(); ValueId LoadInternalField(ValueId value_id, int field_no); + ValueId LoadInternalFieldUnchecked(ValueId value_id, int field_no); ValueId LoadValue(ValueId value_id, int offset); ValueId LoadObject(ValueId value_id, int offset); + ValueId ToSmi(ValueId value_id); + void ReturnValue(ValueId value_id); void CheckFlagSetOrReturnNull(ValueId value_id, int mask); void CheckNotZeroOrReturnNull(ValueId value_id); LabelId MakeLabel(); void SetLabel(LabelId label_id); + void Goto(LabelId label_id); void CheckNotZeroOrJump(ValueId value_id, LabelId label_id); ValueId Call(v8::FunctionCallback callback, ValueId value_id); diff --git a/deps/v8/include/v8-platform.h b/deps/v8/include/v8-platform.h index 11f8d51f02573e..4023a5b234fd4b 100644 --- a/deps/v8/include/v8-platform.h +++ b/deps/v8/include/v8-platform.h @@ -152,9 +152,9 @@ class Platform { */ virtual uint64_t AddTraceEvent( char phase, const uint8_t* category_enabled_flag, const char* name, - uint64_t id, uint64_t bind_id, int32_t num_args, const char** arg_names, - const uint8_t* arg_types, const uint64_t* arg_values, - unsigned int flags) { + const char* scope, uint64_t id, uint64_t bind_id, int32_t num_args, + const char** arg_names, const uint8_t* arg_types, + const uint64_t* arg_values, unsigned int flags) { return 0; } diff --git a/deps/v8/include/v8-profiler.h b/deps/v8/include/v8-profiler.h index 007ae2eca55e41..bcb69f3763e1b7 100644 --- a/deps/v8/include/v8-profiler.h +++ b/deps/v8/include/v8-profiler.h @@ -46,6 +46,75 @@ template class V8_EXPORT std::vector; namespace v8 { +// TickSample captures the information collected for each sample. +struct TickSample { + // Internal profiling (with --prof + tools/$OS-tick-processor) wants to + // include the runtime function we're calling. Externally exposed tick + // samples don't care. + enum RecordCEntryFrame { kIncludeCEntryFrame, kSkipCEntryFrame }; + + TickSample() + : state(OTHER), + pc(nullptr), + external_callback_entry(nullptr), + frames_count(0), + has_external_callback(false), + update_stats(true) {} + + /** + * Initialize a tick sample from the isolate. + * \param isolate The isolate. + * \param state Execution state. + * \param record_c_entry_frame Include or skip the runtime function. + * \param update_stats Whether update the sample to the aggregated stats. + * \param use_simulator_reg_state When set to true and V8 is running under a + * simulator, the method will use the simulator + * register state rather than the one provided + * with |state| argument. Otherwise the method + * will use provided register |state| as is. + */ + void Init(Isolate* isolate, const v8::RegisterState& state, + RecordCEntryFrame record_c_entry_frame, bool update_stats, + bool use_simulator_reg_state = true); + /** + * Get a call stack sample from the isolate. + * \param isolate The isolate. + * \param state Register state. + * \param record_c_entry_frame Include or skip the runtime function. + * \param frames Caller allocated buffer to store stack frames. + * \param frames_limit Maximum number of frames to capture. The buffer must + * be large enough to hold the number of frames. + * \param sample_info The sample info is filled up by the function + * provides number of actual captured stack frames and + * the current VM state. + * \param use_simulator_reg_state When set to true and V8 is running under a + * simulator, the method will use the simulator + * register state rather than the one provided + * with |state| argument. Otherwise the method + * will use provided register |state| as is. + * \note GetStackSample is thread and signal safe and should only be called + * when the JS thread is paused or interrupted. + * Otherwise the behavior is undefined. + */ + static bool GetStackSample(Isolate* isolate, v8::RegisterState* state, + RecordCEntryFrame record_c_entry_frame, + void** frames, size_t frames_limit, + v8::SampleInfo* sample_info, + bool use_simulator_reg_state = true); + StateTag state; // The state of the VM. + void* pc; // Instruction pointer. + union { + void* tos; // Top stack value (*sp). + void* external_callback_entry; + }; + static const unsigned kMaxFramesCountLog2 = 8; + static const unsigned kMaxFramesCount = (1 << kMaxFramesCountLog2) - 1; + void* stack[kMaxFramesCount]; // Call stack. + unsigned frames_count : kMaxFramesCountLog2; // Number of captured frames. + bool has_external_callback : 1; + bool update_stats : 1; // Whether the sample should update aggregated stats. +}; + /** * CpuProfileNode represents a node in a call graph. */ @@ -103,7 +172,9 @@ class V8_EXPORT CpuProfileNode { unsigned GetHitCount() const; /** Returns function entry UID. */ - unsigned GetCallUid() const; + V8_DEPRECATE_SOON( + "Use GetScriptId, GetLineNumber, and GetColumnNumber instead.", + unsigned GetCallUid() const); /** Returns id of the node. The id is unique within the tree */ unsigned GetNodeId() const; @@ -173,13 +244,24 @@ class V8_EXPORT CpuProfile { void Delete(); }; - /** * Interface for controlling CPU profiling. Instance of the - * profiler can be retrieved using v8::Isolate::GetCpuProfiler. + * profiler can be created using v8::CpuProfiler::New method. */ class V8_EXPORT CpuProfiler { public: + /** + * Creates a new CPU profiler for the |isolate|. The isolate must be + * initialized. The profiler object must be disposed after use by calling + * |Dispose| method. + */ + static CpuProfiler* New(Isolate* isolate); + + /** + * Disposes the CPU profiler object. + */ + void Dispose(); + /** * Changes default CPU profiler sampling interval to the specified number * of microseconds. Default interval is 1000us. This method must be called @@ -515,6 +597,11 @@ class V8_EXPORT AllocationProfile { */ class V8_EXPORT HeapProfiler { public: + enum SamplingFlags { + kSamplingNoFlags = 0, + kSamplingForceGC = 1 << 0, + }; + /** * Callback function invoked for obtaining RetainedObjectInfo for * the given JavaScript wrapper object. It is prohibited to enter V8 @@ -640,7 +727,8 @@ class V8_EXPORT HeapProfiler { * Returns false if a sampling heap profiler is already running. */ bool StartSamplingHeapProfiler(uint64_t sample_interval = 512 * 1024, - int stack_depth = 16); + int stack_depth = 16, + SamplingFlags flags = kSamplingNoFlags); /** * Stops the sampling heap profile and discards the current profile. @@ -688,7 +776,6 @@ class V8_EXPORT HeapProfiler { HeapProfiler& operator=(const HeapProfiler&); }; - /** * Interface for providing information about embedder's objects * held by global handles. This information is reported in two ways: @@ -703,7 +790,7 @@ class V8_EXPORT HeapProfiler { * were not previously reported via AddObjectGroup. * * Thus, if an embedder wants to provide information about native - * objects for heap snapshots, he can do it in a GC prologue + * objects for heap snapshots, it can do it in a GC prologue * handler, and / or by assigning wrapper class ids in the following way: * * 1. Bind a callback to class id by calling SetWrapperClassInfoProvider. diff --git a/deps/v8/include/v8-util.h b/deps/v8/include/v8-util.h index 73ec658f7b0abe..8133fdd49dcf4f 100644 --- a/deps/v8/include/v8-util.h +++ b/deps/v8/include/v8-util.h @@ -95,12 +95,12 @@ class DefaultPersistentValueMapTraits : public StdMapTraits { MapType* map, const K& key, Local value) { return NULL; } - static MapType* MapFromWeakCallbackData( - const WeakCallbackData& data) { + static MapType* MapFromWeakCallbackInfo( + const WeakCallbackInfo& data) { return NULL; } - static K KeyFromWeakCallbackData( - const WeakCallbackData& data) { + static K KeyFromWeakCallbackInfo( + const WeakCallbackInfo& data) { return K(); } static void DisposeCallbackData(WeakCallbackDataType* data) { } @@ -205,6 +205,17 @@ class PersistentValueMapBase { reinterpret_cast(FromVal(Traits::Get(&impl_, key)))); } + /** + * Call V8::RegisterExternallyReferencedObject with the map value for given + * key. + */ + void RegisterExternallyReferencedObject(K& key) { + DCHECK(Contains(key)); + V8::RegisterExternallyReferencedObject( + reinterpret_cast(FromVal(Traits::Get(&impl_, key))), + reinterpret_cast(GetIsolate())); + } + /** * Return value for key and remove it from the map. */ @@ -402,11 +413,11 @@ class PersistentValueMap : public PersistentValueMapBase { private: static void WeakCallback( - const WeakCallbackData& data) { + const WeakCallbackInfo& data) { if (Traits::kCallbackType != kNotWeak) { PersistentValueMap* persistentValueMap = - Traits::MapFromWeakCallbackData(data); - K key = Traits::KeyFromWeakCallbackData(data); + Traits::MapFromWeakCallbackInfo(data); + K key = Traits::KeyFromWeakCallbackInfo(data); Traits::Dispose(data.GetIsolate(), persistentValueMap->Remove(key).Pass(), key); Traits::DisposeCallbackData(data.GetParameter()); diff --git a/deps/v8/include/v8-version.h b/deps/v8/include/v8-version.h index 9f61de82936dc4..3edc10eb65ab07 100644 --- a/deps/v8/include/v8-version.h +++ b/deps/v8/include/v8-version.h @@ -9,9 +9,9 @@ // NOTE these macros are used by some of the tool scripts and the build // system so their names cannot be changed without changing the scripts. #define V8_MAJOR_VERSION 5 -#define V8_MINOR_VERSION 1 -#define V8_BUILD_NUMBER 281 -#define V8_PATCH_LEVEL 82 +#define V8_MINOR_VERSION 4 +#define V8_BUILD_NUMBER 500 +#define V8_PATCH_LEVEL 27 // 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 8b7b7c2cc48c3b..d7e39adbaee349 100644 --- a/deps/v8/include/v8.h +++ b/deps/v8/include/v8.h @@ -18,6 +18,7 @@ #include #include #include +#include #include #include @@ -292,8 +293,8 @@ class Local { return Local(T::Cast(*that)); } - - template V8_INLINE Local As() { + template + V8_INLINE Local As() const { return Local::Cast(*this); } @@ -457,32 +458,12 @@ class WeakCallbackInfo { }; -template -class WeakCallbackData { - public: - typedef void (*Callback)(const WeakCallbackData& data); - - WeakCallbackData(Isolate* isolate, P* parameter, Local handle) - : isolate_(isolate), parameter_(parameter), handle_(handle) {} - - V8_INLINE Isolate* GetIsolate() const { return isolate_; } - V8_INLINE P* GetParameter() const { return parameter_; } - V8_INLINE Local GetValue() const { return handle_; } - - private: - Isolate* isolate_; - P* parameter_; - Local handle_; -}; - - -// TODO(dcarney): delete this with WeakCallbackData -template -using PhantomCallbackData = WeakCallbackInfo; - - -enum class WeakCallbackType { kParameter, kInternalFields }; - +// kParameter will pass a void* parameter back to the callback, kInternalFields +// will pass the first two internal fields back to the callback, kFinalizer +// will pass a void* parameter back, but is invoked before the object is +// actually collected, so it can be resurrected. In the last case, it is not +// possible to request a second pass callback. +enum class WeakCallbackType { kParameter, kInternalFields, kFinalizer }; /** * An object reference that is independent of any handle scope. Where @@ -561,36 +542,19 @@ template class PersistentBase { * critical form of resource management! */ template - V8_INLINE V8_DEPRECATED( - "use WeakCallbackInfo version", - void SetWeak(P* parameter, - typename WeakCallbackData::Callback callback)); - - template - V8_INLINE V8_DEPRECATED( - "use WeakCallbackInfo version", - void SetWeak(P* parameter, - typename WeakCallbackData::Callback callback)); - - // Phantom persistents work like weak persistents, except that the pointer to - // the object being collected is not available in the finalization callback. - // This enables the garbage collector to collect the object and any objects - // it references transitively in one GC cycle. At the moment you can either - // specify a parameter for the callback or the location of two internal - // fields in the dying object. - template - V8_INLINE V8_DEPRECATED( - "use SetWeak", - void SetPhantom(P* parameter, - typename WeakCallbackInfo

::Callback callback, - int internal_field_index1 = -1, - int internal_field_index2 = -1)); - - template V8_INLINE void SetWeak(P* parameter, typename WeakCallbackInfo

::Callback callback, WeakCallbackType type); + /** + * Turns this handle into a weak phantom handle without finalization callback. + * The handle will be reset automatically when the garbage collector detects + * that the object is no longer reachable. + * A related function Isolate::NumberOfPhantomHandleResetsSinceLastCall + * returns how many phantom handles were reset by the garbage collector. + */ + V8_INLINE void SetWeak(); + template V8_INLINE P* ClearWeak(); @@ -602,7 +566,7 @@ template class PersistentBase { * is alive. Only allowed when the embedder is asked to trace its heap by * EmbedderHeapTracer. */ - V8_INLINE void RegisterExternalReference(Isolate* isolate); + V8_INLINE void RegisterExternalReference(Isolate* isolate) const; /** * Marks the reference to this object independent. Garbage collector is free @@ -620,7 +584,9 @@ template class PersistentBase { * external dependencies. This mark is automatically cleared after each * garbage collection. */ - V8_INLINE void MarkPartiallyDependent(); + V8_INLINE V8_DEPRECATED( + "deprecated optimization, do not use partially dependent groups", + void MarkPartiallyDependent()); /** * Marks the reference to this object as active. The scavenge garbage @@ -778,17 +744,18 @@ template class Persistent : public PersistentBase { // TODO(dcarney): this is pretty useless, fix or remove template - V8_INLINE static Persistent& Cast(Persistent& that) { // NOLINT + V8_INLINE static Persistent& Cast(const Persistent& that) { // NOLINT #ifdef V8_ENABLE_CHECKS // If we're going to perform the type check then we have to check // that the handle isn't empty before doing the checked cast. if (!that.IsEmpty()) T::Cast(*that); #endif - return reinterpret_cast&>(that); + return reinterpret_cast&>(const_cast&>(that)); } // TODO(dcarney): this is pretty useless, fix or remove - template V8_INLINE Persistent& As() { // NOLINT + template + V8_INLINE Persistent& As() const { // NOLINT return Persistent::Cast(*this); } @@ -991,7 +958,7 @@ class V8_EXPORT SealHandleScope { void* operator new(size_t size); void operator delete(void*, size_t); - internal::Isolate* isolate_; + internal::Isolate* const isolate_; internal::Object** prev_limit_; int prev_sealed_level_; }; @@ -1648,26 +1615,25 @@ class V8_EXPORT StackFrame { // A StateTag represents a possible state of the VM. enum StateTag { JS, GC, COMPILER, OTHER, EXTERNAL, IDLE }; - // A RegisterState represents the current state of registers used // by the sampling profiler API. struct RegisterState { - RegisterState() : pc(NULL), sp(NULL), fp(NULL) {} + RegisterState() : pc(nullptr), sp(nullptr), fp(nullptr) {} void* pc; // Instruction pointer. void* sp; // Stack pointer. void* fp; // Frame pointer. }; - // The output structure filled up by GetStackSample API function. struct SampleInfo { - size_t frames_count; - StateTag vm_state; + size_t frames_count; // Number of frames collected. + StateTag vm_state; // Current VM state. + void* external_callback_entry; // External callback address if VM is + // executing an external callback. }; - /** - * A JSON Parser. + * A JSON Parser and Stringifier. */ class V8_EXPORT JSON { public: @@ -1678,10 +1644,24 @@ class V8_EXPORT JSON { * \param json_string The string to parse. * \return The corresponding value if successfully parsed. */ - static V8_DEPRECATED("Use maybe version", + static V8_DEPRECATED("Use the maybe version taking context", Local Parse(Local json_string)); + static V8_DEPRECATE_SOON("Use the maybe version taking context", + MaybeLocal Parse(Isolate* isolate, + Local json_string)); static V8_WARN_UNUSED_RESULT MaybeLocal Parse( - Isolate* isolate, Local json_string); + Local context, Local json_string); + + /** + * Tries to stringify the JSON-serializable object |json_object| and returns + * it as string if successful. + * + * \param json_object The JSON-serializable object to stringify. + * \return The corresponding string if successfully stringified. + */ + static V8_WARN_UNUSED_RESULT MaybeLocal Stringify( + Local context, Local json_object, + Local gap = Local()); }; @@ -1973,6 +1953,7 @@ class V8_EXPORT Value : public Data { */ bool IsProxy() const; + bool IsWebAssemblyCompiledModule() const; V8_WARN_UNUSED_RESULT MaybeLocal ToBoolean( Local context) const; @@ -2050,6 +2031,8 @@ class V8_EXPORT Value : public Data { template V8_INLINE static Value* Cast(T* value); + Local TypeOf(v8::Isolate*); + private: V8_INLINE bool QuickIsUndefined() const; V8_INLINE bool QuickIsNull() const; @@ -2639,6 +2622,33 @@ enum AccessControl { PROHIBITS_OVERWRITING = 1 << 2 }; +/** + * Property filter bits. They can be or'ed to build a composite filter. + */ +enum PropertyFilter { + ALL_PROPERTIES = 0, + ONLY_WRITABLE = 1, + ONLY_ENUMERABLE = 2, + ONLY_CONFIGURABLE = 4, + SKIP_STRINGS = 8, + SKIP_SYMBOLS = 16 +}; + +/** + * Keys/Properties filter enums: + * + * KeyCollectionMode limits the range of collected properties. kOwnOnly limits + * the collected properties to the given Object only. kIncludesPrototypes will + * include all keys of the objects's prototype chain as well. + */ +enum class KeyCollectionMode { kOwnOnly, kIncludePrototypes }; + +/** + * kIncludesIndices allows for integer indices to be collected, while + * kSkipIndices will exclude integer indicies from being collected. + */ +enum class IndexFilter { kIncludeIndices, kSkipIndices }; + /** * Integrity level for objects. */ @@ -2788,6 +2798,9 @@ class V8_EXPORT Object : public Value { V8_DEPRECATE_SOON("Use maybe version", Local GetPropertyNames()); V8_WARN_UNUSED_RESULT MaybeLocal GetPropertyNames( Local context); + V8_WARN_UNUSED_RESULT MaybeLocal GetPropertyNames( + Local context, KeyCollectionMode mode, + PropertyFilter property_filter, IndexFilter index_filter); /** * This function has the same functionality as GetPropertyNames but @@ -2798,6 +2811,15 @@ class V8_EXPORT Object : public Value { V8_WARN_UNUSED_RESULT MaybeLocal GetOwnPropertyNames( Local context); + /** + * Returns an array containing the names of the filtered properties + * of this object, including properties from prototype objects. The + * array returned by this method contains the same values as would + * be enumerated by a for-in statement over this object. + */ + V8_WARN_UNUSED_RESULT MaybeLocal GetOwnPropertyNames( + Local context, PropertyFilter filter); + /** * Get the prototype object. This does not skip objects marked to * be skipped by __proto__ and it does not consult the security @@ -2873,11 +2895,15 @@ class V8_EXPORT Object : public Value { * leads to undefined behavior. */ void SetAlignedPointerInInternalField(int index, void* value); + void SetAlignedPointerInInternalFields(int argc, int indices[], + void* values[]); // Testers for local properties. V8_DEPRECATED("Use maybe version", bool HasOwnProperty(Local key)); V8_WARN_UNUSED_RESULT Maybe HasOwnProperty(Local context, Local key); + V8_WARN_UNUSED_RESULT Maybe HasOwnProperty(Local context, + uint32_t index); V8_DEPRECATE_SOON("Use maybe version", bool HasRealNamedProperty(Local key)); V8_WARN_UNUSED_RESULT Maybe HasRealNamedProperty(Local context, @@ -2950,13 +2976,6 @@ class V8_EXPORT Object : public Value { */ int GetIdentityHash(); - V8_DEPRECATED("Use v8::Object::SetPrivate instead.", - bool SetHiddenValue(Local key, Local value)); - V8_DEPRECATED("Use v8::Object::GetPrivate instead.", - Local GetHiddenValue(Local key)); - V8_DEPRECATED("Use v8::Object::DeletePrivate instead.", - bool DeleteHiddenValue(Local key)); - /** * Clone this object with a fast but shallow copy. Values will point * to the same values as the original object. @@ -2976,6 +2995,11 @@ class V8_EXPORT Object : public Value { */ bool IsCallable(); + /** + * True if this object is a constructor. + */ + bool IsConstructor(); + /** * Call an Object as a function if a callback is set by the * ObjectTemplate::SetCallAsFunctionHandler method. @@ -3177,12 +3201,13 @@ class FunctionCallbackInfo { Local Callee() const); V8_INLINE Local This() const; V8_INLINE Local Holder() const; + V8_INLINE Local NewTarget() const; V8_INLINE bool IsConstructCall() const; V8_INLINE Local Data() const; V8_INLINE Isolate* GetIsolate() const; V8_INLINE ReturnValue GetReturnValue() const; // This shouldn't be public, but the arm compiler needs it. - static const int kArgsLength = 7; + static const int kArgsLength = 8; protected: friend class internal::FunctionCallbackArguments; @@ -3194,15 +3219,13 @@ class FunctionCallbackInfo { static const int kDataIndex = 4; static const int kCalleeIndex = 5; static const int kContextSaveIndex = 6; + static const int kNewTargetIndex = 7; V8_INLINE FunctionCallbackInfo(internal::Object** implicit_args, - internal::Object** values, - int length, - bool is_construct_call); + internal::Object** values, int length); internal::Object** implicit_args_; internal::Object** values_; int length_; - int is_construct_call_; }; @@ -3252,15 +3275,10 @@ class V8_EXPORT Function : public Object { * Create a function in the current execution context * for a given FunctionCallback. */ - static MaybeLocal New(Local context, - FunctionCallback callback, - Local data = Local(), - int length = 0); - static MaybeLocal New(Local context, - FunctionCallback callback, - Local data, - int length, - ConstructorBehavior behavior); + static MaybeLocal New( + Local context, FunctionCallback callback, + Local data = Local(), int length = 0, + ConstructorBehavior behavior = ConstructorBehavior::kAllow); static V8_DEPRECATE_SOON( "Use maybe version", Local New(Isolate* isolate, FunctionCallback callback, @@ -3390,12 +3408,6 @@ class V8_EXPORT Promise : public Object { * an argument. If the promise is already resolved/rejected, the handler is * invoked at the end of turn. */ - V8_DEPRECATED("Use maybe version of Then", - Local Chain(Local handler)); - V8_DEPRECATED("Use Then", - V8_WARN_UNUSED_RESULT MaybeLocal Chain( - Local context, Local handler)); - V8_DEPRECATED("Use maybe version", Local Catch(Local handler)); V8_WARN_UNUSED_RESULT MaybeLocal Catch(Local context, @@ -3445,6 +3457,19 @@ class V8_EXPORT Proxy : public Object { static void CheckCast(Value* obj); }; +class V8_EXPORT WasmCompiledModule : public Object { + public: + typedef std::pair, size_t> SerializedModule; + + SerializedModule Serialize(); + static MaybeLocal Deserialize( + Isolate* isolate, const SerializedModule& serialized_data); + V8_INLINE static WasmCompiledModule* Cast(Value* obj); + + private: + WasmCompiledModule(); + static void CheckCast(Value* obj); +}; #ifndef V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT // The number of required internal fields can be defined by embedder. @@ -3462,11 +3487,19 @@ enum class ArrayBufferCreationMode { kInternalized, kExternalized }; class V8_EXPORT ArrayBuffer : public Object { public: /** - * Allocator that V8 uses to allocate |ArrayBuffer|'s memory. + * A thread-safe allocator that V8 uses to allocate |ArrayBuffer|'s memory. * The allocator is a global V8 setting. It has to be set via * Isolate::CreateParams. * - * This API is experimental and may change significantly. + * Memory allocated through this allocator by V8 is accounted for as external + * memory by V8. Note that V8 keeps track of the memory for all internalized + * |ArrayBuffer|s. Responsibility for tracking external memory (using + * Isolate::AdjustAmountOfExternalAllocatedMemory) is handed over to the + * embedder upon externalization and taken over upon internalization (creating + * an internalized buffer from an existing buffer). + * + * Note that it is unsafe to call back into V8 from any of the allocator + * functions. */ class V8_EXPORT Allocator { // NOLINT public: @@ -3483,11 +3516,19 @@ class V8_EXPORT ArrayBuffer : public Object { * Memory does not have to be initialized. */ virtual void* AllocateUninitialized(size_t length) = 0; + /** * Free the memory block of size |length|, pointed to by |data|. * That memory is guaranteed to be previously allocated by |Allocate|. */ virtual void Free(void* data, size_t length) = 0; + + /** + * malloc/free based convenience allocator. + * + * Caller takes ownership. + */ + static Allocator* NewDefaultAllocator(); }; /** @@ -3560,7 +3601,7 @@ class V8_EXPORT ArrayBuffer : public Object { /** * Make this ArrayBuffer external. The pointer to underlying memory block * and byte length are returned as |Contents| structure. After ArrayBuffer - * had been etxrenalized, it does no longer owns the memory block. The caller + * had been externalized, it does no longer own the memory block. The caller * should take steps to free memory when it is no longer needed. * * The memory block is guaranteed to be allocated with |Allocator::Allocate| @@ -3571,7 +3612,7 @@ class V8_EXPORT ArrayBuffer : public Object { /** * Get a pointer to the ArrayBuffer's underlying memory block without * externalizing it. If the ArrayBuffer is not externalized, this pointer - * will become invalid as soon as the ArrayBuffer became garbage collected. + * will become invalid as soon as the ArrayBuffer gets garbage collected. * * The embedder should make sure to hold a strong reference to the * ArrayBuffer while accessing this pointer. @@ -3623,7 +3664,7 @@ class V8_EXPORT ArrayBufferView : public Object { * might incur. * * Will write at most min(|byte_length|, ByteLength) bytes starting at - * ByteOffset of the underling buffer to the memory starting at |dest|. + * ByteOffset of the underlying buffer to the memory starting at |dest|. * Returns the number of bytes actually written. */ size_t CopyContents(void* dest, size_t byte_length); @@ -3910,7 +3951,7 @@ class V8_EXPORT SharedArrayBuffer : public Object { /** * Make this SharedArrayBuffer external. The pointer to underlying memory * block and byte length are returned as |Contents| structure. After - * SharedArrayBuffer had been etxrenalized, it does no longer owns the memory + * SharedArrayBuffer had been externalized, it does no longer own the memory * block. The caller should take steps to free memory when it is no longer * needed. * @@ -4133,7 +4174,11 @@ enum Intrinsic { */ class V8_EXPORT Template : public Data { public: - /** Adds a property to each instance created by this template.*/ + /** + * Adds a property to each instance created by this template. + * + * The property must be defined either as a primitive value, or a template. + */ void Set(Local name, Local value, PropertyAttribute attributes = None); V8_INLINE void Set(Isolate* isolate, const char* name, Local value); @@ -4359,28 +4404,6 @@ enum AccessType { typedef bool (*AccessCheckCallback)(Local accessing_context, Local accessed_object, Local data); -typedef bool (*DeprecatedAccessCheckCallback)(Local accessing_context, - Local accessed_object); - -/** - * Returns true if cross-context access should be allowed to the named - * property with the given key on the host object. - */ -typedef bool (*NamedSecurityCallback)(Local host, - Local key, - AccessType type, - Local data); - - -/** - * Returns true if cross-context access should be allowed to the indexed - * property with the given index on the host object. - */ -typedef bool (*IndexedSecurityCallback)(Local host, - uint32_t index, - AccessType type, - Local data); - /** * A FunctionTemplate is used to create functions at runtime. There @@ -4391,7 +4414,7 @@ typedef bool (*IndexedSecurityCallback)(Local host, * preferred. * * Any modification of a FunctionTemplate after first instantiation will trigger - *a crash. + * a crash. * * A FunctionTemplate can have properties, these properties are added to the * function object when it is created. @@ -4407,17 +4430,21 @@ typedef bool (*IndexedSecurityCallback)(Local host, * The following example shows how to use a FunctionTemplate: * * \code - * v8::Local t = v8::FunctionTemplate::New(); - * t->Set("func_property", v8::Number::New(1)); + * v8::Local t = v8::FunctionTemplate::New(isolate); + * t->Set(isolate, "func_property", v8::Number::New(isolate, 1)); * * v8::Local proto_t = t->PrototypeTemplate(); - * proto_t->Set("proto_method", v8::FunctionTemplate::New(InvokeCallback)); - * proto_t->Set("proto_const", v8::Number::New(2)); + * proto_t->Set(isolate, + * "proto_method", + * v8::FunctionTemplate::New(isolate, InvokeCallback)); + * proto_t->Set(isolate, "proto_const", v8::Number::New(isolate, 2)); * * v8::Local instance_t = t->InstanceTemplate(); - * instance_t->SetAccessor("instance_accessor", InstanceAccessorCallback); - * instance_t->SetNamedPropertyHandler(PropertyHandlerCallback, ...); - * instance_t->Set("instance_property", Number::New(3)); + * instance_t->SetAccessor(String::NewFromUtf8(isolate, "instance_accessor"), + * InstanceAccessorCallback); + * instance_t->SetNamedPropertyHandler(PropertyHandlerCallback); + * instance_t->Set(String::NewFromUtf8(isolate, "instance_property"), + * Number::New(isolate, 3)); * * v8::Local function = t->GetFunction(); * v8::Local instance = function->NewInstance(); @@ -4483,10 +4510,12 @@ class V8_EXPORT FunctionTemplate : public Template { static Local New( Isolate* isolate, FunctionCallback callback = 0, Local data = Local(), - Local signature = Local(), int length = 0); - static Local New( - Isolate* isolate, FunctionCallback callback, Local data, - Local signature, int length, ConstructorBehavior behavior); + Local signature = Local(), int length = 0, + ConstructorBehavior behavior = ConstructorBehavior::kAllow); + + /** Get a template included in the snapshot by index. */ + static MaybeLocal FromSnapshot(Isolate* isolate, + size_t index); /** * Creates a function template with a fast handler. If a fast handler is set, @@ -4503,6 +4532,15 @@ class V8_EXPORT FunctionTemplate : public Template { V8_WARN_UNUSED_RESULT MaybeLocal GetFunction( Local context); + /** + * Similar to Context::NewRemoteContext, this creates an instance that + * isn't backed by an actual object. + * + * The InstanceTemplate of this FunctionTemplate must have access checks with + * handlers installed. + */ + V8_WARN_UNUSED_RESULT MaybeLocal NewRemoteInstance(); + /** * Set the call-handler callback for a FunctionTemplate. This * callback is called whenever the function created from this @@ -4663,6 +4701,10 @@ class V8_EXPORT ObjectTemplate : public Template { Local constructor = Local()); static V8_DEPRECATED("Use isolate version", Local New()); + /** Get a template included in the snapshot by index. */ + static MaybeLocal FromSnapshot(Isolate* isolate, + size_t index); + /** Creates a new instance of this template.*/ V8_DEPRECATE_SOON("Use maybe version", Local NewInstance()); V8_WARN_UNUSED_RESULT MaybeLocal NewInstance(Local context); @@ -4714,8 +4756,10 @@ class V8_EXPORT ObjectTemplate : public Template { * from this object template, the provided callback is invoked instead of * accessing the property directly on the JavaScript object. * - * Note that new code should use the second version that can intercept - * symbol-named properties as well as string-named properties. + * SetNamedPropertyHandler() is different from SetHandler(), in + * that the latter can intercept symbol-named properties as well as + * string-named properties when called with a + * NamedPropertyHandlerConfiguration. New code should use SetHandler(). * * \param getter The callback to invoke when getting a property. * \param setter The callback to invoke when setting a property. @@ -4734,6 +4778,18 @@ class V8_EXPORT ObjectTemplate : public Template { NamedPropertyDeleterCallback deleter = 0, NamedPropertyEnumeratorCallback enumerator = 0, Local data = Local()); + + /** + * Sets a named property handler on the object template. + * + * Whenever a property whose name is a string or a symbol is accessed on + * objects created from this object template, the provided callback is + * invoked instead of accessing the property directly on the JavaScript + * object. + * + * @param configuration The NamedPropertyHandlerConfiguration that defines the + * callbacks to invoke when accessing a property. + */ void SetHandler(const NamedPropertyHandlerConfiguration& configuration); /** @@ -4752,7 +4808,6 @@ class V8_EXPORT ObjectTemplate : public Template { * \param data A piece of data that will be passed to the callbacks * whenever they are invoked. */ - void SetHandler(const IndexedPropertyHandlerConfiguration& configuration); // TODO(dcarney): deprecate void SetIndexedPropertyHandler( IndexedPropertyGetterCallback getter, @@ -4764,6 +4819,19 @@ class V8_EXPORT ObjectTemplate : public Template { SetHandler(IndexedPropertyHandlerConfiguration(getter, setter, query, deleter, enumerator, data)); } + + /** + * Sets an indexed property handler on the object template. + * + * Whenever an indexed property is accessed on objects created from + * this object template, the provided callback is invoked instead of + * accessing the property directly on the JavaScript object. + * + * @param configuration The IndexedPropertyHandlerConfiguration that defines + * the callbacks to invoke when accessing a property. + */ + void SetHandler(const IndexedPropertyHandlerConfiguration& configuration); + /** * Sets the callback to be used when calling instances created from * this template as a function. If no callback is set, instances @@ -4793,16 +4861,18 @@ class V8_EXPORT ObjectTemplate : public Template { */ void SetAccessCheckCallback(AccessCheckCallback callback, Local data = Local()); - V8_DEPRECATED( - "Use SetAccessCheckCallback with new AccessCheckCallback signature.", - void SetAccessCheckCallback(DeprecatedAccessCheckCallback callback, - Local data = Local())); - V8_DEPRECATED( - "Use SetAccessCheckCallback instead", - void SetAccessCheckCallbacks(NamedSecurityCallback named_handler, - IndexedSecurityCallback indexed_handler, - Local data = Local())); + /** + * Like SetAccessCheckCallback but invokes an interceptor on failed access + * checks instead of looking up all-can-read properties. You can only use + * either this method or SetAccessCheckCallback, but not both at the same + * time. + */ + void SetAccessCheckCallbackAndHandler( + AccessCheckCallback callback, + const NamedPropertyHandlerConfiguration& named_handler, + const IndexedPropertyHandlerConfiguration& indexed_handler, + Local data = Local()); /** * Gets the number of internal fields for objects generated from @@ -4816,6 +4886,17 @@ class V8_EXPORT ObjectTemplate : public Template { */ void SetInternalFieldCount(int value); + /** + * Returns true if the object will be an immutable prototype exotic object. + */ + bool IsImmutableProto(); + + /** + * Makes the ObjectTempate for an immutable prototype exotic object, with an + * immutable __proto__. + */ + void SetImmutableProto(); + private: ObjectTemplate(); static Local New(internal::Isolate* isolate, @@ -4982,6 +5063,7 @@ class V8_EXPORT ResourceConstraints { typedef void (*FatalErrorCallback)(const char* location, const char* message); +typedef void (*OOMErrorCallback)(const char* location, bool is_heap_oom); typedef void (*MessageCallback)(Local message, Local error); @@ -5047,10 +5129,6 @@ enum ObjectSpace { kAllocationActionAll = kAllocationActionAllocate | kAllocationActionFree }; -typedef void (*MemoryAllocationCallback)(ObjectSpace space, - AllocationAction action, - int size); - // --- Enter/Leave Script Callback --- typedef void (*BeforeCallEnteredCallback)(Isolate*); typedef void (*CallCompletedCallback)(Isolate*); @@ -5130,6 +5208,11 @@ class V8_EXPORT MicrotasksScope { */ static int GetCurrentDepth(Isolate* isolate); + /** + * Returns true while microtasks are being executed. + */ + static bool IsRunningMicrotasks(Isolate* isolate); + private: internal::Isolate* const isolate_; bool run_; @@ -5189,6 +5272,7 @@ enum GCCallbackFlags { kGCCallbackFlagForced = 1 << 2, kGCCallbackFlagSynchronousPhantomCallbackProcessing = 1 << 3, kGCCallbackFlagCollectAllAvailableGarbage = 1 << 4, + kGCCallbackFlagCollectAllExternalMemory = 1 << 5, }; typedef void (*GCCallback)(GCType type, GCCallbackFlags flags); @@ -5211,6 +5295,8 @@ class V8_EXPORT HeapStatistics { size_t total_available_size() { return total_available_size_; } size_t used_heap_size() { return used_heap_size_; } size_t heap_size_limit() { return heap_size_limit_; } + size_t malloced_memory() { return malloced_memory_; } + size_t peak_malloced_memory() { return peak_malloced_memory_; } size_t does_zap_garbage() { return does_zap_garbage_; } private: @@ -5220,6 +5306,8 @@ class V8_EXPORT HeapStatistics { size_t total_available_size_; size_t used_heap_size_; size_t heap_size_limit_; + size_t malloced_memory_; + size_t peak_malloced_memory_; bool does_zap_garbage_; friend class V8; @@ -5264,6 +5352,18 @@ class V8_EXPORT HeapObjectStatistics { friend class Isolate; }; +class V8_EXPORT HeapCodeStatistics { + public: + HeapCodeStatistics(); + size_t code_and_metadata_size() { return code_and_metadata_size_; } + size_t bytecode_and_metadata_size() { return bytecode_and_metadata_size_; } + + private: + size_t code_and_metadata_size_; + size_t bytecode_and_metadata_size_; + + friend class Isolate; +}; class RetainedObjectInfo; @@ -5346,6 +5446,28 @@ struct JitCodeEvent { }; }; +/** + * Option flags passed to the SetRAILMode function. + * See documentation https://developers.google.com/web/tools/chrome-devtools/ + * profile/evaluate-performance/rail + */ +enum RAILMode { + // Response performance mode: In this mode very low virtual machine latency + // is provided. V8 will try to avoid JavaScript execution interruptions. + // Throughput may be throttled. + PERFORMANCE_RESPONSE, + // Animation performance mode: In this mode low virtual machine latency is + // provided. V8 will try to avoid as many JavaScript execution interruptions + // as possible. Throughput may be throttled. This is the default mode. + PERFORMANCE_ANIMATION, + // Idle performance mode: The embedder is idle. V8 can complete deferred work + // in this mode. + PERFORMANCE_IDLE, + // Load performance mode: In this mode high throughput is provided. V8 may + // turn off latency optimizations. + PERFORMANCE_LOAD +}; + /** * Option flags passed to the SetJitCodeEventHandler function. */ @@ -5401,31 +5523,56 @@ enum class MemoryPressureLevel { kNone, kModerate, kCritical }; * trace through its heap and call PersistentBase::RegisterExternalReference on * each js object reachable from any of the given wrappers. * - * Before the first call to the TraceWrappableFrom function v8 will call - * TraceRoots. When the v8 garbage collection is finished, v8 will call - * ClearTracingMarks. + * Before the first call to the TraceWrappersFrom function TracePrologue will be + * called. When the garbage collection cycle is finished, TraceEpilogue will be + * called. */ -class EmbedderHeapTracer { +class V8_EXPORT EmbedderHeapTracer { public: + enum ForceCompletionAction { FORCE_COMPLETION, DO_NOT_FORCE_COMPLETION }; + struct AdvanceTracingActions { + explicit AdvanceTracingActions(ForceCompletionAction force_completion_) + : force_completion(force_completion_) {} + + ForceCompletionAction force_completion; + }; + /** + * V8 will call this method with internal fields of found wrappers. + * Embedder is expected to store them in it's marking deque and trace + * reachable wrappers from them when asked by AdvanceTracing method. + */ + virtual void RegisterV8References( + const std::vector >& internal_fields) = 0; /** * V8 will call this method at the beginning of the gc cycle. */ - virtual void TraceRoots(Isolate* isolate) = 0; - + virtual void TracePrologue() = 0; /** - * V8 will call this method with internal fields of a potential wrappers. - * Embedder is expected to trace its heap (synchronously) and call - * PersistentBase::RegisterExternalReference() on all wrappers reachable from - * any of the given wrappers. + * Embedder is expected to trace its heap starting from wrappers reported by + * RegisterV8References method, and call + * PersistentBase::RegisterExternalReference() on all reachable wrappers. + * Embedder is expected to stop tracing by the given deadline. + * + * Returns true if there is still work to do. */ - virtual void TraceWrappableFrom( - Isolate* isolate, - const std::vector >& internal_fields) = 0; + virtual bool AdvanceTracing(double deadline_in_ms, + AdvanceTracingActions actions) = 0; /** * V8 will call this method at the end of the gc cycle. Allocation is *not* - * allowed in the ClearTracingMarks. + * allowed in the TraceEpilogue. + */ + virtual void TraceEpilogue() = 0; + + /** + * Let embedder know v8 entered final marking pause (no more incremental steps + * will follow). + */ + virtual void EnterFinalPause() {} + + /** + * Throw away all intermediate data and reset to the initial state. */ - virtual void ClearTracingMarks(Isolate* isolate) = 0; + virtual void AbortTracing() {} protected: virtual ~EmbedderHeapTracer() = default; @@ -5446,20 +5593,21 @@ class V8_EXPORT Isolate { */ struct CreateParams { CreateParams() - : entry_hook(NULL), - code_event_handler(NULL), - snapshot_blob(NULL), - counter_lookup_callback(NULL), - create_histogram_callback(NULL), - add_histogram_sample_callback(NULL), - array_buffer_allocator(NULL) {} + : entry_hook(nullptr), + code_event_handler(nullptr), + snapshot_blob(nullptr), + counter_lookup_callback(nullptr), + create_histogram_callback(nullptr), + add_histogram_sample_callback(nullptr), + array_buffer_allocator(nullptr), + external_references(nullptr) {} /** * The optional entry_hook allows the host application to provide the * address of a function that's invoked on entry to every V8-generated * function. Note that entry_hook is invoked at the very start of each - * generated function. Furthermore, if an entry_hook is given, V8 will - * always run without a context snapshot. + * generated function. Furthermore, if an entry_hook is given, V8 will + * not use a snapshot, including custom snapshots. */ FunctionEntryHook entry_hook; @@ -5500,6 +5648,14 @@ class V8_EXPORT Isolate { * store of ArrayBuffers. */ ArrayBuffer::Allocator* array_buffer_allocator; + + /** + * Specifies an optional nullptr-terminated array of raw addresses in the + * embedder that V8 can match against during serialization and use for + * deserialization. This array and its content must stay valid for the + * entire lifetime of the isolate. + */ + intptr_t* external_references; }; @@ -5573,7 +5729,7 @@ class V8_EXPORT Isolate { ~SuppressMicrotaskExecutionScope(); private: - internal::Isolate* isolate_; + internal::Isolate* const isolate_; // Prevent copying of Scope objects. SuppressMicrotaskExecutionScope(const SuppressMicrotaskExecutionScope&); @@ -5628,9 +5784,13 @@ class V8_EXPORT Isolate { kLegacyFunctionDeclaration = 29, kRegExpPrototypeSourceGetter = 30, kRegExpPrototypeOldFlagGetter = 31, + kDecimalWithLeadingZeroInStrictMode = 32, + kLegacyDateParser = 33, + kDefineGetterOrSetterWouldThrow = 34, + kFunctionConstructorReturnedUndefined = 35, - // If you add new values here, you'll also need to update V8Initializer.cpp - // in Chromium. + // If you add new values here, you'll also need to update Chromium's: + // UseCounter.h, V8PerIsolateData.cpp, histograms.xml kUseCounterFeatureCount // This enum value must be last. }; @@ -5771,6 +5931,15 @@ class V8_EXPORT Isolate { bool GetHeapObjectStatisticsAtLastGC(HeapObjectStatistics* object_statistics, size_t type_index); + /** + * Get statistics about code and its metadata in the heap. + * + * \param object_statistics The HeapCodeStatistics object to fill in + * statistics of code, bytecode and their metadata. + * \returns true on success. + */ + bool GetHeapCodeAndMetadataStatistics(HeapCodeStatistics* object_statistics); + /** * Get a call stack sample from the isolate. * \param state Execution state. @@ -5802,6 +5971,12 @@ class V8_EXPORT Isolate { V8_INLINE int64_t AdjustAmountOfExternalAllocatedMemory(int64_t change_in_bytes); + /** + * Returns the number of phantom handles without callbacks that were reset + * by the garbage collector since the last call to this function. + */ + size_t NumberOfPhantomHandleResetsSinceLastCall(); + /** * Returns heap profiler for this isolate. Will return NULL until the isolate * is initialized. @@ -5813,7 +5988,8 @@ class V8_EXPORT Isolate { * is initialized. It is the embedder's responsibility to stop all CPU * profiling activities if it has started any. */ - CpuProfiler* GetCpuProfiler(); + V8_DEPRECATE_SOON("CpuProfiler should be created with CpuProfiler::New call.", + CpuProfiler* GetCpuProfiler()); /** Returns true if this isolate has a current context. */ bool InContext(); @@ -6142,6 +6318,15 @@ class V8_EXPORT Isolate { */ void IsolateInBackgroundNotification(); + /** + * Optional notification to tell V8 the current performance requirements + * of the embedder based on RAIL. + * V8 uses these notifications to guide heuristics. + * This is an unfinished experimental feature. Semantics and implementation + * may change frequently. + */ + void SetRAILMode(RAILMode rail_mode); + /** * Allows the host application to provide the address of a function that is * notified each time code is added, moved or removed. @@ -6196,6 +6381,9 @@ class V8_EXPORT Isolate { /** Set the callback to invoke in case of fatal errors. */ void SetFatalErrorHandler(FatalErrorCallback that); + /** Set the callback to invoke in case of OOM errors. */ + void SetOOMErrorHandler(OOMErrorCallback that); + /** * Set the callback to invoke to check if code generation from * strings should be allowed. @@ -6237,18 +6425,6 @@ class V8_EXPORT Isolate { bool capture, int frame_limit = 10, StackTrace::StackTraceOptions options = StackTrace::kOverview); - /** - * Enables the host application to provide a mechanism to be notified - * and perform custom logging when V8 Allocates Executable Memory. - */ - void AddMemoryAllocationCallback(MemoryAllocationCallback callback, - ObjectSpace space, AllocationAction action); - - /** - * Removes callback that was installed by AddMemoryAllocationCallback. - */ - void RemoveMemoryAllocationCallback(MemoryAllocationCallback callback); - /** * Iterates through all external resources referenced from current isolate * heap. GC is not invoked prior to iterating, therefore there is no @@ -6278,6 +6454,12 @@ class V8_EXPORT Isolate { */ void VisitWeakHandles(PersistentHandleVisitor* visitor); + /** + * Check if this isolate is in use. + * True if at least one thread Enter'ed this isolate. + */ + bool IsInUse(); + private: template friend class PersistentValueMapBase; @@ -6308,19 +6490,18 @@ class V8_EXPORT StartupData { */ typedef bool (*EntropySource)(unsigned char* buffer, size_t length); - /** * ReturnAddressLocationResolver is used as a callback function when v8 is * resolving the location of a return address on the stack. Profilers that * change the return address on the stack can use this to resolve the stack * location to whereever the profiler stashed the original return address. * - * \param return_addr_location points to a location on stack where a machine + * \param return_addr_location A location on stack where a machine * return address resides. - * \returns either return_addr_location, or else a pointer to the profiler's + * \returns Either return_addr_location, or else a pointer to the profiler's * copy of the original return address. * - * \note the resolver function must not cause garbage collection. + * \note The resolver function must not cause garbage collection. */ typedef uintptr_t (*ReturnAddressLocationResolver)( uintptr_t return_addr_location); @@ -6483,23 +6664,6 @@ class V8_EXPORT V8 { "Use isolate version", void RemoveGCEpilogueCallback(GCCallback callback)); - /** - * Enables the host application to provide a mechanism to be notified - * and perform custom logging when V8 Allocates Executable Memory. - */ - V8_INLINE static V8_DEPRECATED( - "Use isolate version", - void AddMemoryAllocationCallback(MemoryAllocationCallback callback, - ObjectSpace space, - AllocationAction action)); - - /** - * Removes callback that was installed by AddMemoryAllocationCallback. - */ - V8_INLINE static V8_DEPRECATED( - "Use isolate version", - void RemoveMemoryAllocationCallback(MemoryAllocationCallback callback)); - /** * Initializes V8. This function needs to be called before the first Isolate * is created. It always returns true. @@ -6620,7 +6784,24 @@ class V8_EXPORT V8 { * If V8 was compiled with the ICU data in an external file, the location * of the data file has to be provided. */ - static bool InitializeICU(const char* icu_data_file = NULL); + V8_DEPRECATE_SOON( + "Use version with default location.", + static bool InitializeICU(const char* icu_data_file = nullptr)); + + /** + * Initialize the ICU library bundled with V8. The embedder should only + * invoke this method when using the bundled ICU. If V8 was compiled with + * the ICU data in an external file and when the default location of that + * file should be used, a path to the executable must be provided. + * Returns true on success. + * + * The default is a file called icudtl.dat side-by-side with the executable. + * + * Optionally, the location of the data file can be provided to override the + * default. + */ + static bool InitializeICUDefaultLocation(const char* exec_path, + const char* icu_data_file = nullptr); /** * Initialize the external startup data. The embedder only needs to @@ -6660,26 +6841,27 @@ class V8_EXPORT V8 { internal::Object** handle); static internal::Object** CopyPersistent(internal::Object** handle); static void DisposeGlobal(internal::Object** global_handle); - typedef WeakCallbackData::Callback WeakCallback; - static void RegisterExternallyReferencedObject(internal::Object** object, - internal::Isolate* isolate); - static void MakeWeak(internal::Object** global_handle, void* data, - WeakCallback weak_callback); - static void MakeWeak(internal::Object** global_handle, void* data, + static void MakeWeak(internal::Object** location, void* data, WeakCallbackInfo::Callback weak_callback, WeakCallbackType type); - static void MakeWeak(internal::Object** global_handle, void* data, + static void MakeWeak(internal::Object** location, void* data, // Must be 0 or -1. int internal_field_index1, // Must be 1 or -1. int internal_field_index2, WeakCallbackInfo::Callback weak_callback); - static void* ClearWeak(internal::Object** global_handle); + static void MakeWeak(internal::Object*** location_addr); + static void* ClearWeak(internal::Object** location); static void Eternalize(Isolate* isolate, Value* handle, int* index); static Local GetEternal(Isolate* isolate, int index); + static void RegisterExternallyReferencedObject(internal::Object** object, + internal::Isolate* isolate); + template + friend class PersistentValueMapBase; + static void FromJustIsNothing(); static void ToLocalEmpty(); static void InternalFieldOutOfBounds(int index); @@ -6696,6 +6878,60 @@ class V8_EXPORT V8 { friend class Context; }; +/** + * Helper class to create a snapshot data blob. + */ +class SnapshotCreator { + public: + enum class FunctionCodeHandling { kClear, kKeep }; + + /** + * Create and enter an isolate, and set it up for serialization. + * The isolate is either created from scratch or from an existing snapshot. + * The caller keeps ownership of the argument snapshot. + * \param existing_blob existing snapshot from which to create this one. + * \param external_references a null-terminated array of external references + * that must be equivalent to CreateParams::external_references. + */ + SnapshotCreator(intptr_t* external_references = nullptr, + StartupData* existing_blob = nullptr); + + ~SnapshotCreator(); + + /** + * \returns the isolate prepared by the snapshot creator. + */ + Isolate* GetIsolate(); + + /** + * Add a context to be included in the snapshot blob. + * \returns the index of the context in the snapshot blob. + */ + size_t AddContext(Local context); + + /** + * Add a template to be included in the snapshot blob. + * \returns the index of the template in the snapshot blob. + */ + size_t AddTemplate(Local