From 122a7985b6605e7d6c4c15a52f8147e4dfb08b57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Thu, 31 Jan 2019 14:51:17 +0100 Subject: [PATCH 01/19] deps: update V8 to 7.3.492.7 --- deps/v8/.clang-tidy | 6 +- deps/v8/.gitignore | 3 +- deps/v8/.vpython | 23 + deps/v8/AUTHORS | 7 +- deps/v8/BUILD.gn | 885 ++- deps/v8/ChangeLog | 5080 +++++++++++++++++ deps/v8/DEPS | 78 +- deps/v8/OWNERS | 3 - deps/v8/PRESUBMIT.py | 83 +- .../trace_event/common/trace_event_common.h | 12 +- deps/v8/benchmarks/base.js | 1 + deps/v8/benchmarks/micro/slice-perf.js | 83 + deps/v8/benchmarks/spinning-balls/v.js | 1 + deps/v8/gni/v8.gni | 2 +- deps/v8/include/OWNERS | 1 + deps/v8/include/PRESUBMIT.py | 29 - deps/v8/include/libplatform/libplatform.h | 2 +- deps/v8/include/v8-inspector.h | 3 +- deps/v8/include/v8-internal.h | 231 +- deps/v8/include/v8-platform.h | 38 +- deps/v8/include/v8-profiler.h | 32 + deps/v8/include/v8-util.h | 32 +- deps/v8/include/v8-version.h | 6 +- deps/v8/include/v8-wasm-trap-handler-posix.h | 31 + deps/v8/include/v8-wasm-trap-handler-win.h | 28 + deps/v8/include/v8.h | 802 +-- deps/v8/include/v8config.h | 77 +- deps/v8/infra/config/cq.cfg | 46 +- deps/v8/infra/mb/mb_config.pyl | 92 +- deps/v8/infra/testing/builders.pyl | 141 +- deps/v8/snapshot_toolchain.gni | 11 +- deps/v8/src/DEPS | 2 + deps/v8/src/OWNERS | 1 - deps/v8/src/PRESUBMIT.py | 29 - deps/v8/src/accessors.cc | 23 +- deps/v8/src/address-map.cc | 20 +- deps/v8/src/address-map.h | 14 +- deps/v8/src/allocation-site-scopes-inl.h | 11 +- deps/v8/src/allocation-site-scopes.h | 12 +- deps/v8/src/allocation.cc | 70 +- deps/v8/src/allocation.h | 11 +- deps/v8/src/api-arguments-inl.h | 32 +- deps/v8/src/api-arguments.cc | 52 +- deps/v8/src/api-arguments.h | 46 +- deps/v8/src/api-inl.h | 39 +- deps/v8/src/api-natives.cc | 75 +- deps/v8/src/api-natives.h | 1 + deps/v8/src/api.cc | 1688 +++--- deps/v8/src/api.h | 228 +- deps/v8/src/arguments-inl.h | 4 +- deps/v8/src/arguments.cc | 1 - deps/v8/src/arguments.h | 69 +- deps/v8/src/arm/assembler-arm-inl.h | 35 +- deps/v8/src/arm/assembler-arm.cc | 250 +- deps/v8/src/arm/assembler-arm.h | 376 +- deps/v8/src/arm/code-stubs-arm.cc | 594 -- deps/v8/src/arm/code-stubs-arm.h | 31 - deps/v8/src/arm/codegen-arm.cc | 303 - deps/v8/src/arm/constants-arm.h | 18 +- deps/v8/src/arm/cpu-arm.cc | 3 +- deps/v8/src/arm/deoptimizer-arm.cc | 95 +- deps/v8/src/arm/disasm-arm.cc | 12 +- deps/v8/src/arm/frame-constants-arm.cc | 9 +- deps/v8/src/arm/frame-constants-arm.h | 6 + deps/v8/src/arm/interface-descriptors-arm.cc | 21 +- deps/v8/src/arm/macro-assembler-arm.cc | 429 +- deps/v8/src/arm/macro-assembler-arm.h | 117 +- deps/v8/src/arm/register-arm.h | 369 ++ deps/v8/src/arm/simulator-arm.cc | 129 +- deps/v8/src/arm/simulator-arm.h | 22 +- deps/v8/src/arm64/assembler-arm64-inl.h | 46 +- deps/v8/src/arm64/assembler-arm64.cc | 163 +- deps/v8/src/arm64/assembler-arm64.h | 717 +-- deps/v8/src/arm64/code-stubs-arm64.cc | 623 -- deps/v8/src/arm64/code-stubs-arm64.h | 28 - deps/v8/src/arm64/codegen-arm64.cc | 25 - deps/v8/src/arm64/constants-arm64.h | 190 +- deps/v8/src/arm64/cpu-arm64.cc | 8 +- deps/v8/src/arm64/deoptimizer-arm64.cc | 79 +- deps/v8/src/arm64/disasm-arm64.cc | 6 +- deps/v8/src/arm64/frame-constants-arm64.h | 2 + .../src/arm64/instructions-arm64-constants.cc | 9 + deps/v8/src/arm64/instructions-arm64.cc | 291 +- deps/v8/src/arm64/instructions-arm64.h | 55 +- .../src/arm64/interface-descriptors-arm64.cc | 22 +- deps/v8/src/arm64/macro-assembler-arm64-inl.h | 8 +- deps/v8/src/arm64/macro-assembler-arm64.cc | 396 +- deps/v8/src/arm64/macro-assembler-arm64.h | 107 +- deps/v8/src/arm64/register-arm64.cc | 298 + deps/v8/src/arm64/register-arm64.h | 752 +++ deps/v8/src/arm64/simulator-arm64.cc | 157 +- deps/v8/src/arm64/simulator-arm64.h | 22 +- deps/v8/src/arm64/simulator-logic-arm64.cc | 11 +- deps/v8/src/arm64/utils-arm64.cc | 2 +- deps/v8/src/arm64/utils-arm64.h | 2 +- deps/v8/src/asmjs/OWNERS | 1 - deps/v8/src/asmjs/asm-js.cc | 90 +- deps/v8/src/asmjs/asm-js.h | 3 +- deps/v8/src/asmjs/asm-parser.cc | 31 +- deps/v8/src/asmjs/asm-parser.h | 3 +- deps/v8/src/asmjs/asm-scanner.cc | 15 +- deps/v8/src/asmjs/asm-types.cc | 19 +- deps/v8/src/asmjs/asm-types.h | 6 +- deps/v8/src/asmjs/switch-logic.cc | 65 - deps/v8/src/asmjs/switch-logic.h | 33 - deps/v8/src/assembler-arch-inl.h | 30 - deps/v8/src/assembler.cc | 321 +- deps/v8/src/assembler.h | 373 +- deps/v8/src/assert-scope.cc | 59 +- deps/v8/src/assert-scope.h | 39 +- deps/v8/src/ast/ast-traversal-visitor.h | 45 +- deps/v8/src/ast/ast-value-factory.cc | 13 +- deps/v8/src/ast/ast-value-factory.h | 23 +- deps/v8/src/ast/ast.cc | 37 +- deps/v8/src/ast/ast.h | 805 ++- deps/v8/src/ast/context-slot-cache.cc | 84 - deps/v8/src/ast/context-slot-cache.h | 112 - deps/v8/src/ast/prettyprinter.cc | 151 +- deps/v8/src/ast/prettyprinter.h | 14 +- deps/v8/src/ast/scopes-inl.h | 66 - deps/v8/src/ast/scopes.cc | 1081 ++-- deps/v8/src/ast/scopes.h | 465 +- deps/v8/src/ast/source-range-ast-visitor.cc | 2 +- deps/v8/src/ast/variables.h | 12 +- deps/v8/src/async-hooks-wrapper.cc | 5 + deps/v8/src/bailout-reason.h | 169 +- deps/v8/src/base/adapters.h | 2 +- deps/v8/src/base/atomic-utils.h | 317 +- deps/v8/src/base/atomicops.h | 5 + .../src/base/atomicops_internals_portable.h | 15 + deps/v8/src/base/atomicops_internals_std.h | 18 + deps/v8/src/base/bits.cc | 2 +- deps/v8/src/base/bounded-page-allocator.cc | 26 +- deps/v8/src/base/bounded-page-allocator.h | 12 +- deps/v8/src/base/build_config.h | 4 +- deps/v8/src/base/compiler-specific.h | 8 +- deps/v8/src/base/debug/stack_trace_win.cc | 16 + deps/v8/src/base/enum-set.h | 65 + deps/v8/src/base/functional.h | 47 +- deps/v8/src/base/ieee754.cc | 72 +- deps/v8/src/base/lazy-instance.h | 41 +- deps/v8/src/base/macros.h | 12 +- deps/v8/src/base/optional.h | 848 ++- deps/v8/src/base/overflowing-math.h | 89 + deps/v8/src/base/page-allocator.cc | 4 + deps/v8/src/base/page-allocator.h | 2 + deps/v8/src/base/platform/OWNERS | 1 + .../src/base/platform/condition-variable.cc | 2 +- .../v8/src/base/platform/condition-variable.h | 3 +- deps/v8/src/base/platform/mutex.h | 5 +- deps/v8/src/base/platform/platform-aix.cc | 20 +- deps/v8/src/base/platform/platform-cygwin.cc | 27 + deps/v8/src/base/platform/platform-fuchsia.cc | 13 +- deps/v8/src/base/platform/platform-posix.cc | 79 +- deps/v8/src/base/platform/platform-win32.cc | 56 +- deps/v8/src/base/platform/platform.h | 13 +- deps/v8/src/base/platform/time.cc | 63 +- deps/v8/src/base/platform/time.h | 67 +- deps/v8/src/base/region-allocator.cc | 10 + deps/v8/src/base/region-allocator.h | 3 + deps/v8/src/base/small-vector.h | 146 + deps/v8/src/base/threaded-list.h | 34 +- .../src/base/utils/random-number-generator.cc | 7 +- deps/v8/src/basic-block-profiler.cc | 11 +- deps/v8/src/bit-vector.h | 4 +- deps/v8/src/bootstrapper.cc | 1951 +++---- deps/v8/src/bootstrapper.h | 23 +- deps/v8/src/builtins/arguments.tq | 44 + deps/v8/src/builtins/arm/builtins-arm.cc | 889 ++- deps/v8/src/builtins/arm64/builtins-arm64.cc | 923 ++- deps/v8/src/builtins/array-copywithin.tq | 14 +- deps/v8/src/builtins/array-filter.tq | 244 + deps/v8/src/builtins/array-foreach.tq | 183 +- deps/v8/src/builtins/array-join.tq | 660 +++ deps/v8/src/builtins/array-lastindexof.tq | 29 +- deps/v8/src/builtins/array-of.tq | 54 + deps/v8/src/builtins/array-reverse.tq | 63 +- deps/v8/src/builtins/array-slice.tq | 212 + deps/v8/src/builtins/array-splice.tq | 61 +- deps/v8/src/builtins/array-unshift.tq | 26 +- deps/v8/src/builtins/array.tq | 52 +- deps/v8/src/builtins/base.tq | 1017 +++- deps/v8/src/builtins/builtins-api.cc | 87 +- .../v8/src/builtins/builtins-arguments-gen.cc | 149 +- deps/v8/src/builtins/builtins-arguments-gen.h | 13 +- deps/v8/src/builtins/builtins-array-gen.cc | 955 +--- deps/v8/src/builtins/builtins-array-gen.h | 24 +- deps/v8/src/builtins/builtins-array.cc | 97 +- deps/v8/src/builtins/builtins-arraybuffer.cc | 21 +- .../builtins/builtins-async-function-gen.cc | 282 +- deps/v8/src/builtins/builtins-async-gen.cc | 300 +- .../builtins/builtins-async-generator-gen.cc | 33 +- deps/v8/src/builtins/builtins-bigint-gen.cc | 46 + deps/v8/src/builtins/builtins-bigint.cc | 6 +- deps/v8/src/builtins/builtins-boolean-gen.cc | 1 + deps/v8/src/builtins/builtins-call-gen.cc | 77 +- deps/v8/src/builtins/builtins-callsite.cc | 18 +- .../src/builtins/builtins-collections-gen.cc | 712 ++- .../src/builtins/builtins-collections-gen.h | 26 + deps/v8/src/builtins/builtins-collections.cc | 1 + deps/v8/src/builtins/builtins-console-gen.cc | 1 + deps/v8/src/builtins/builtins-console.cc | 2 + .../src/builtins/builtins-constructor-gen.cc | 172 +- deps/v8/src/builtins/builtins-constructor.h | 7 +- .../src/builtins/builtins-conversion-gen.cc | 3 +- deps/v8/src/builtins/builtins-data-view-gen.h | 24 +- deps/v8/src/builtins/builtins-date-gen.cc | 4 +- deps/v8/src/builtins/builtins-date.cc | 55 +- deps/v8/src/builtins/builtins-definitions.h | 310 +- deps/v8/src/builtins/builtins-descriptors.h | 8 +- deps/v8/src/builtins/builtins-error.cc | 13 +- deps/v8/src/builtins/builtins-extras-utils.cc | 93 + deps/v8/src/builtins/builtins-function-gen.cc | 27 +- deps/v8/src/builtins/builtins-function.cc | 2 +- deps/v8/src/builtins/builtins-handler-gen.cc | 389 +- deps/v8/src/builtins/builtins-internal-gen.cc | 522 +- .../src/builtins/builtins-interpreter-gen.cc | 18 - deps/v8/src/builtins/builtins-interpreter.cc | 49 - deps/v8/src/builtins/builtins-intl-gen.cc | 14 +- deps/v8/src/builtins/builtins-intl.cc | 678 +-- deps/v8/src/builtins/builtins-iterator-gen.cc | 111 +- deps/v8/src/builtins/builtins-iterator-gen.h | 26 +- deps/v8/src/builtins/builtins-lazy-gen.cc | 66 +- .../builtins/builtins-microtask-queue-gen.cc | 545 ++ deps/v8/src/builtins/builtins-object-gen.cc | 106 +- deps/v8/src/builtins/builtins-object-gen.h | 14 + deps/v8/src/builtins/builtins-object.cc | 18 +- deps/v8/src/builtins/builtins-promise-gen.cc | 350 +- deps/v8/src/builtins/builtins-promise-gen.h | 66 +- deps/v8/src/builtins/builtins-promise.cc | 3 + deps/v8/src/builtins/builtins-promise.h | 75 + deps/v8/src/builtins/builtins-proxy-gen.cc | 24 +- deps/v8/src/builtins/builtins-regexp-gen.cc | 425 +- deps/v8/src/builtins/builtins-regexp-gen.h | 44 +- .../builtins-sharedarraybuffer-gen.cc | 4 +- .../builtins/builtins-sharedarraybuffer.cc | 6 +- deps/v8/src/builtins/builtins-string-gen.cc | 203 +- deps/v8/src/builtins/builtins-string-gen.h | 7 +- deps/v8/src/builtins/builtins-string.cc | 30 +- deps/v8/src/builtins/builtins-symbol.cc | 2 +- deps/v8/src/builtins/builtins-test-gen.h | 22 - deps/v8/src/builtins/builtins-trace.cc | 4 +- .../src/builtins/builtins-typed-array-gen.cc | 393 +- .../src/builtins/builtins-typed-array-gen.h | 53 +- deps/v8/src/builtins/builtins-typed-array.cc | 11 +- deps/v8/src/builtins/builtins-utils-gen.h | 42 +- deps/v8/src/builtins/builtins-utils.h | 54 +- deps/v8/src/builtins/builtins-wasm-gen.cc | 169 +- deps/v8/src/builtins/builtins-weak-refs.cc | 169 + deps/v8/src/builtins/builtins.cc | 353 +- deps/v8/src/builtins/builtins.h | 102 +- deps/v8/src/builtins/collections.tq | 57 + .../src/builtins/constants-table-builder.cc | 29 +- .../v8/src/builtins/constants-table-builder.h | 2 +- deps/v8/src/builtins/data-view.tq | 95 +- deps/v8/src/builtins/extras-utils.tq | 24 + deps/v8/src/builtins/frames.tq | 150 + .../src/builtins/growable-fixed-array-gen.cc | 5 +- deps/v8/src/builtins/ia32/builtins-ia32.cc | 1308 ++++- deps/v8/src/builtins/iterator.tq | 44 + deps/v8/src/builtins/mips/OWNERS | 3 +- deps/v8/src/builtins/mips/builtins-mips.cc | 1343 ++++- deps/v8/src/builtins/mips64/OWNERS | 5 +- .../v8/src/builtins/mips64/builtins-mips64.cc | 864 ++- deps/v8/src/builtins/object-fromentries.tq | 69 + deps/v8/src/builtins/object.tq | 12 + deps/v8/src/builtins/ppc/OWNERS | 5 +- deps/v8/src/builtins/ppc/builtins-ppc.cc | 902 ++- deps/v8/src/builtins/s390/OWNERS | 5 +- deps/v8/src/builtins/s390/builtins-s390.cc | 927 ++- .../src/builtins/setup-builtins-internal.cc | 141 +- .../builtins/typed-array-createtypedarray.tq | 73 + deps/v8/src/builtins/typed-array.tq | 34 +- deps/v8/src/builtins/x64/builtins-x64.cc | 1324 ++++- deps/v8/src/cancelable-task.cc | 56 +- deps/v8/src/cancelable-task.h | 145 +- deps/v8/src/char-predicates-inl.h | 97 +- deps/v8/src/char-predicates.cc | 6 +- deps/v8/src/char-predicates.h | 71 +- deps/v8/src/code-comments.cc | 102 + deps/v8/src/code-comments.h | 68 + deps/v8/src/code-events.h | 70 +- deps/v8/src/code-factory.cc | 323 +- deps/v8/src/code-factory.h | 23 +- deps/v8/src/code-reference.cc | 123 +- deps/v8/src/code-reference.h | 17 +- deps/v8/src/code-stub-assembler.cc | 2210 ++++--- deps/v8/src/code-stub-assembler.h | 797 ++- deps/v8/src/code-stubs-utils.h | 49 - deps/v8/src/code-stubs.cc | 466 -- deps/v8/src/code-stubs.h | 670 --- deps/v8/src/codegen.cc | 32 - deps/v8/src/codegen.h | 25 - deps/v8/src/compilation-cache.cc | 20 +- deps/v8/src/compilation-cache.h | 4 +- deps/v8/src/compilation-statistics.cc | 6 +- .../compiler-dispatcher-job.cc | 19 - .../compiler-dispatcher-job.h | 80 - .../compiler-dispatcher-tracer.cc | 127 - .../compiler-dispatcher-tracer.h | 83 - .../compiler-dispatcher.cc | 464 +- .../compiler-dispatcher/compiler-dispatcher.h | 89 +- .../optimizing-compile-dispatcher.cc | 34 +- .../optimizing-compile-dispatcher.h | 8 +- .../unoptimized-compile-job.cc | 91 - .../unoptimized-compile-job.h | 71 - deps/v8/src/compiler.cc | 316 +- deps/v8/src/compiler.h | 14 +- deps/v8/src/compiler/OWNERS | 8 +- deps/v8/src/compiler/access-builder.cc | 136 +- deps/v8/src/compiler/access-builder.h | 13 +- deps/v8/src/compiler/access-info.cc | 51 +- deps/v8/src/compiler/access-info.h | 9 +- deps/v8/src/compiler/allocation-builder-inl.h | 48 + deps/v8/src/compiler/allocation-builder.h | 22 +- deps/v8/src/compiler/backend/OWNERS | 6 + .../{ => backend}/arm/code-generator-arm.cc | 117 +- .../{ => backend}/arm/instruction-codes-arm.h | 6 +- .../arm/instruction-scheduler-arm.cc | 6 +- .../arm/instruction-selector-arm.cc | 62 +- .../arm/unwinding-info-writer-arm.cc | 29 +- .../arm/unwinding-info-writer-arm.h | 7 +- .../arm64/code-generator-arm64.cc | 116 +- .../arm64/instruction-codes-arm64.h | 6 +- .../arm64/instruction-scheduler-arm64.cc | 6 +- .../arm64/instruction-selector-arm64.cc | 74 +- .../arm64/unwinding-info-writer-arm64.cc | 31 +- .../arm64/unwinding-info-writer-arm64.h | 7 +- .../{ => backend}/code-generator-impl.h | 11 +- .../compiler/{ => backend}/code-generator.cc | 243 +- .../compiler/{ => backend}/code-generator.h | 26 +- .../compiler/{ => backend}/frame-elider.cc | 11 +- .../src/compiler/{ => backend}/frame-elider.h | 10 +- .../compiler/{ => backend}/gap-resolver.cc | 54 +- .../src/compiler/{ => backend}/gap-resolver.h | 8 +- .../{ => backend}/ia32/code-generator-ia32.cc | 476 +- .../ia32/instruction-codes-ia32.h | 6 +- .../ia32/instruction-scheduler-ia32.cc | 10 +- .../ia32/instruction-selector-ia32.cc | 144 +- .../{ => backend}/instruction-codes.h | 28 +- .../{ => backend}/instruction-scheduler.cc | 29 +- .../{ => backend}/instruction-scheduler.h | 30 +- .../{ => backend}/instruction-selector-impl.h | 12 +- .../{ => backend}/instruction-selector.cc | 135 +- .../{ => backend}/instruction-selector.h | 16 +- .../src/compiler/{ => backend}/instruction.cc | 284 +- .../src/compiler/{ => backend}/instruction.h | 157 +- .../compiler/{ => backend}/jump-threading.cc | 21 +- .../compiler/{ => backend}/jump-threading.h | 8 +- .../{ => backend}/live-range-separator.cc | 77 +- .../{ => backend}/live-range-separator.h | 9 +- deps/v8/src/compiler/backend/mips/OWNERS | 3 + .../{ => backend}/mips/code-generator-mips.cc | 332 +- .../mips/instruction-codes-mips.h | 7 +- .../mips/instruction-scheduler-mips.cc | 9 +- .../mips/instruction-selector-mips.cc | 202 +- deps/v8/src/compiler/backend/mips64/OWNERS | 3 + .../mips64/code-generator-mips64.cc | 248 +- .../mips64/instruction-codes-mips64.h | 7 +- .../mips64/instruction-scheduler-mips64.cc | 8 +- .../mips64/instruction-selector-mips64.cc | 236 +- .../compiler/{ => backend}/move-optimizer.cc | 9 +- .../compiler/{ => backend}/move-optimizer.h | 8 +- deps/v8/src/compiler/backend/ppc/OWNERS | 4 + .../{ => backend}/ppc/code-generator-ppc.cc | 456 +- .../backend/ppc/instruction-codes-ppc.h | 208 + .../ppc/instruction-scheduler-ppc.cc | 98 +- .../ppc/instruction-selector-ppc.cc | 449 +- .../register-allocator-verifier.cc | 11 +- .../register-allocator-verifier.h | 8 +- .../{ => backend}/register-allocator.cc | 723 ++- .../{ => backend}/register-allocator.h | 154 +- deps/v8/src/compiler/backend/s390/OWNERS | 4 + .../{ => backend}/s390/code-generator-s390.cc | 1313 ++--- .../backend/s390/instruction-codes-s390.h | 217 + .../s390/instruction-scheduler-s390.cc | 12 +- .../s390/instruction-selector-s390.cc | 179 +- .../{ => backend}/unwinding-info-writer.h | 14 +- .../{ => backend}/x64/code-generator-x64.cc | 595 +- .../{ => backend}/x64/instruction-codes-x64.h | 43 +- .../x64/instruction-scheduler-x64.cc | 43 +- .../x64/instruction-selector-x64.cc | 625 +- .../x64/unwinding-info-writer-x64.cc | 37 +- .../x64/unwinding-info-writer-x64.h | 7 +- .../src/compiler/basic-block-instrumentor.cc | 5 +- deps/v8/src/compiler/bytecode-analysis.cc | 1 + .../v8/src/compiler/bytecode-graph-builder.cc | 48 +- deps/v8/src/compiler/bytecode-graph-builder.h | 7 +- deps/v8/src/compiler/code-assembler.cc | 306 +- deps/v8/src/compiler/code-assembler.h | 219 +- deps/v8/src/compiler/common-node-cache.cc | 2 +- .../src/compiler/common-operator-reducer.cc | 16 +- .../v8/src/compiler/common-operator-reducer.h | 7 +- deps/v8/src/compiler/common-operator.cc | 51 +- deps/v8/src/compiler/common-operator.h | 12 +- .../src/compiler/compilation-dependencies.cc | 187 +- .../src/compiler/compilation-dependencies.h | 6 +- .../src/compiler/constant-folding-reducer.cc | 8 +- .../src/compiler/constant-folding-reducer.h | 6 +- deps/v8/src/compiler/dead-code-elimination.cc | 9 +- deps/v8/src/compiler/dead-code-elimination.h | 2 +- .../src/compiler/effect-control-linearizer.cc | 250 +- .../src/compiler/effect-control-linearizer.h | 9 +- .../src/compiler/escape-analysis-reducer.cc | 8 +- deps/v8/src/compiler/escape-analysis.cc | 8 +- deps/v8/src/compiler/escape-analysis.h | 6 +- deps/v8/src/compiler/frame-states.cc | 9 +- deps/v8/src/compiler/frame-states.h | 3 +- deps/v8/src/compiler/frame.cc | 4 +- deps/v8/src/compiler/frame.h | 19 +- deps/v8/src/compiler/graph-assembler.cc | 6 + deps/v8/src/compiler/graph-assembler.h | 3 + deps/v8/src/compiler/graph-visualizer.cc | 146 +- deps/v8/src/compiler/graph-visualizer.h | 5 - deps/v8/src/compiler/int64-lowering.cc | 9 +- deps/v8/src/compiler/js-call-reducer.cc | 1358 +++-- deps/v8/src/compiler/js-call-reducer.h | 43 +- .../src/compiler/js-context-specialization.cc | 4 +- .../src/compiler/js-context-specialization.h | 14 +- deps/v8/src/compiler/js-create-lowering.cc | 150 +- deps/v8/src/compiler/js-create-lowering.h | 10 +- deps/v8/src/compiler/js-generic-lowering.cc | 9 +- deps/v8/src/compiler/js-graph.cc | 15 +- deps/v8/src/compiler/js-graph.h | 1 + deps/v8/src/compiler/js-heap-broker.cc | 697 ++- deps/v8/src/compiler/js-heap-broker.h | 222 +- deps/v8/src/compiler/js-heap-copy-reducer.cc | 37 + deps/v8/src/compiler/js-inlining-heuristic.cc | 62 +- deps/v8/src/compiler/js-inlining-heuristic.h | 6 +- deps/v8/src/compiler/js-inlining.cc | 51 +- deps/v8/src/compiler/js-inlining.h | 7 +- deps/v8/src/compiler/js-intrinsic-lowering.cc | 74 +- deps/v8/src/compiler/js-intrinsic-lowering.h | 10 +- .../js-native-context-specialization.cc | 649 ++- .../js-native-context-specialization.h | 21 +- deps/v8/src/compiler/js-operator.cc | 128 +- deps/v8/src/compiler/js-operator.h | 7 + deps/v8/src/compiler/js-type-hint-lowering.cc | 1 + deps/v8/src/compiler/js-typed-lowering.cc | 231 +- deps/v8/src/compiler/js-typed-lowering.h | 15 +- deps/v8/src/compiler/linkage.cc | 39 +- deps/v8/src/compiler/linkage.h | 29 +- deps/v8/src/compiler/load-elimination.cc | 18 +- deps/v8/src/compiler/machine-graph.cc | 2 +- .../src/compiler/machine-operator-reducer.cc | 67 +- .../src/compiler/machine-operator-reducer.h | 4 +- deps/v8/src/compiler/machine-operator.cc | 11 +- deps/v8/src/compiler/machine-operator.h | 23 +- deps/v8/src/compiler/memory-optimizer.cc | 46 +- deps/v8/src/compiler/mips/OWNERS | 2 - deps/v8/src/compiler/mips64/OWNERS | 2 - deps/v8/src/compiler/node-matchers.h | 10 +- deps/v8/src/compiler/node-origin-table.h | 2 +- deps/v8/src/compiler/node-properties.cc | 82 +- deps/v8/src/compiler/node-properties.h | 11 +- deps/v8/src/compiler/node.cc | 4 + deps/v8/src/compiler/node.h | 1 + deps/v8/src/compiler/opcodes.h | 54 +- deps/v8/src/compiler/operation-typer.cc | 228 +- deps/v8/src/compiler/operation-typer.h | 7 +- deps/v8/src/compiler/operator-properties.cc | 7 + deps/v8/src/compiler/osr.cc | 10 +- deps/v8/src/compiler/pipeline.cc | 761 ++- deps/v8/src/compiler/pipeline.h | 29 +- deps/v8/src/compiler/ppc/OWNERS | 7 - .../src/compiler/ppc/instruction-codes-ppc.h | 188 - .../src/compiler/property-access-builder.cc | 38 +- .../v8/src/compiler/property-access-builder.h | 10 +- deps/v8/src/compiler/raw-machine-assembler.cc | 363 +- deps/v8/src/compiler/raw-machine-assembler.h | 90 +- .../v8/src/compiler/redundancy-elimination.cc | 23 +- deps/v8/src/compiler/representation-change.cc | 102 +- deps/v8/src/compiler/representation-change.h | 14 +- deps/v8/src/compiler/s390/OWNERS | 7 - .../compiler/s390/instruction-codes-s390.h | 225 - deps/v8/src/compiler/schedule.cc | 25 +- deps/v8/src/compiler/scheduler.cc | 28 +- .../serializer-for-background-compilation.cc | 521 ++ .../serializer-for-background-compilation.h | 183 + deps/v8/src/compiler/simd-scalar-lowering.cc | 9 + deps/v8/src/compiler/simplified-lowering.cc | 341 +- deps/v8/src/compiler/simplified-lowering.h | 7 +- .../compiler/simplified-operator-reducer.cc | 17 +- .../compiler/simplified-operator-reducer.h | 7 +- deps/v8/src/compiler/simplified-operator.cc | 109 +- deps/v8/src/compiler/simplified-operator.h | 11 +- .../src/compiler/store-store-elimination.cc | 2 +- deps/v8/src/compiler/type-cache.cc | 9 +- deps/v8/src/compiler/type-cache.h | 9 +- .../v8/src/compiler/type-narrowing-reducer.cc | 6 +- deps/v8/src/compiler/type-narrowing-reducer.h | 3 +- deps/v8/src/compiler/typed-optimization.cc | 208 +- deps/v8/src/compiler/typed-optimization.h | 16 +- deps/v8/src/compiler/typer.cc | 186 +- deps/v8/src/compiler/typer.h | 8 +- deps/v8/src/compiler/types.cc | 30 +- deps/v8/src/compiler/types.h | 10 +- deps/v8/src/compiler/verifier.cc | 46 +- deps/v8/src/compiler/wasm-compiler.cc | 1543 +++-- deps/v8/src/compiler/wasm-compiler.h | 149 +- deps/v8/src/constant-pool.cc | 214 + deps/v8/src/constant-pool.h | 159 + deps/v8/src/constants-arch.h | 28 + deps/v8/src/contexts-inl.h | 109 +- deps/v8/src/contexts.cc | 147 +- deps/v8/src/contexts.h | 384 +- deps/v8/src/conversions-inl.h | 27 +- deps/v8/src/conversions.cc | 126 +- deps/v8/src/conversions.h | 40 +- deps/v8/src/counters-inl.h | 2 +- deps/v8/src/counters.cc | 27 +- deps/v8/src/counters.h | 172 +- deps/v8/src/cpu-features.h | 124 + deps/v8/src/{d8.js => d8-js.cc} | 11 +- deps/v8/src/d8-platforms.cc | 309 + deps/v8/src/d8-platforms.h | 29 + deps/v8/src/d8.cc | 265 +- deps/v8/src/d8.h | 8 +- deps/v8/src/date.cc | 18 +- deps/v8/src/date.h | 5 +- deps/v8/src/dateparser-inl.h | 10 +- deps/v8/src/dateparser.cc | 8 +- deps/v8/src/dateparser.h | 17 +- deps/v8/src/debug/debug-coverage.cc | 57 +- deps/v8/src/debug/debug-coverage.h | 1 + deps/v8/src/debug/debug-evaluate.cc | 217 +- deps/v8/src/debug/debug-evaluate.h | 4 + deps/v8/src/debug/debug-interface.h | 48 +- deps/v8/src/debug/debug-property-iterator.cc | 213 + deps/v8/src/debug/debug-property-iterator.h | 62 + deps/v8/src/debug/debug-scopes.cc | 50 +- .../src/debug/debug-stack-trace-iterator.cc | 2 +- deps/v8/src/debug/debug-type-profile.cc | 14 +- deps/v8/src/debug/debug-type-profile.h | 1 + deps/v8/src/debug/debug.cc | 164 +- deps/v8/src/debug/debug.h | 19 +- deps/v8/src/debug/ia32/debug-ia32.cc | 4 - deps/v8/src/debug/liveedit.cc | 60 +- deps/v8/src/debug/mips/OWNERS | 5 +- deps/v8/src/debug/mips64/OWNERS | 5 +- deps/v8/src/debug/ppc/OWNERS | 5 +- deps/v8/src/debug/s390/OWNERS | 5 +- deps/v8/src/debug/x64/debug-x64.cc | 8 +- deps/v8/src/deoptimize-reason.h | 4 +- deps/v8/src/deoptimizer.cc | 538 +- deps/v8/src/deoptimizer.h | 166 +- deps/v8/src/detachable-vector.cc | 19 + deps/v8/src/detachable-vector.h | 109 +- deps/v8/src/disasm.h | 4 +- deps/v8/src/disassembler.cc | 136 +- deps/v8/src/eh-frame.cc | 2 +- deps/v8/src/eh-frame.h | 3 +- deps/v8/src/elements-inl.h | 2 +- deps/v8/src/elements-kind.cc | 52 +- deps/v8/src/elements-kind.h | 15 +- deps/v8/src/elements.cc | 811 ++- deps/v8/src/elements.h | 64 +- deps/v8/src/execution.cc | 371 +- deps/v8/src/execution.h | 17 +- .../v8/src/extensions/statistics-extension.cc | 14 +- deps/v8/src/external-reference-table.cc | 160 +- deps/v8/src/external-reference-table.h | 46 +- deps/v8/src/external-reference.cc | 746 ++- deps/v8/src/external-reference.h | 42 +- deps/v8/src/feedback-vector-inl.h | 94 +- deps/v8/src/feedback-vector.cc | 248 +- deps/v8/src/feedback-vector.h | 114 +- deps/v8/src/field-index-inl.h | 19 +- deps/v8/src/field-index.h | 19 +- deps/v8/src/field-type.cc | 45 +- deps/v8/src/field-type.h | 40 +- deps/v8/src/fixed-dtoa.cc | 2 +- deps/v8/src/flag-definitions.h | 259 +- deps/v8/src/flags.cc | 62 +- deps/v8/src/flags.h | 1 + deps/v8/src/frame-constants.h | 92 +- deps/v8/src/frames-inl.h | 77 +- deps/v8/src/frames.cc | 477 +- deps/v8/src/frames.h | 169 +- deps/v8/src/futex-emulation.cc | 104 +- deps/v8/src/futex-emulation.h | 26 +- deps/v8/src/gdb-jit.cc | 40 +- deps/v8/src/global-handles.cc | 830 +-- deps/v8/src/global-handles.h | 197 +- deps/v8/src/globals.h | 450 +- deps/v8/src/handler-table.cc | 6 +- deps/v8/src/handler-table.h | 8 +- deps/v8/src/handles-inl.h | 57 +- deps/v8/src/handles.cc | 42 +- deps/v8/src/handles.h | 78 +- deps/v8/src/heap-symbols.h | 81 +- deps/v8/src/heap/array-buffer-collector.cc | 8 +- deps/v8/src/heap/array-buffer-tracker-inl.h | 24 +- deps/v8/src/heap/array-buffer-tracker.cc | 41 +- deps/v8/src/heap/array-buffer-tracker.h | 24 +- deps/v8/src/heap/barrier.h | 26 +- deps/v8/src/heap/code-stats.cc | 76 +- deps/v8/src/heap/code-stats.h | 11 +- deps/v8/src/heap/concurrent-marking.cc | 592 +- deps/v8/src/heap/concurrent-marking.h | 29 +- deps/v8/src/heap/embedder-tracing.cc | 68 +- deps/v8/src/heap/embedder-tracing.h | 78 +- deps/v8/src/heap/factory-inl.h | 9 +- deps/v8/src/heap/factory.cc | 937 +-- deps/v8/src/heap/factory.h | 143 +- deps/v8/src/heap/gc-tracer.cc | 94 +- deps/v8/src/heap/gc-tracer.h | 10 +- deps/v8/src/heap/heap-inl.h | 290 +- deps/v8/src/heap/heap-write-barrier-inl.h | 104 +- deps/v8/src/heap/heap-write-barrier.h | 32 +- deps/v8/src/heap/heap.cc | 1507 ++--- deps/v8/src/heap/heap.h | 651 +-- deps/v8/src/heap/incremental-marking-inl.h | 22 +- deps/v8/src/heap/incremental-marking-job.cc | 47 +- deps/v8/src/heap/incremental-marking-job.h | 23 +- deps/v8/src/heap/incremental-marking.cc | 491 +- deps/v8/src/heap/incremental-marking.h | 56 +- deps/v8/src/heap/invalidated-slots-inl.h | 4 +- deps/v8/src/heap/invalidated-slots.cc | 1 - deps/v8/src/heap/invalidated-slots.h | 7 +- deps/v8/src/heap/item-parallel-job.cc | 2 +- deps/v8/src/heap/local-allocator-inl.h | 6 +- deps/v8/src/heap/local-allocator.h | 6 +- deps/v8/src/heap/mark-compact-inl.h | 433 +- deps/v8/src/heap/mark-compact.cc | 1599 +++--- deps/v8/src/heap/mark-compact.h | 332 +- deps/v8/src/heap/marking.h | 8 +- deps/v8/src/heap/memory-reducer.cc | 1 + deps/v8/src/heap/memory-reducer.h | 6 +- deps/v8/src/heap/object-stats.cc | 345 +- deps/v8/src/heap/object-stats.h | 3 +- deps/v8/src/heap/objects-visiting-inl.h | 106 +- deps/v8/src/heap/objects-visiting.cc | 80 +- deps/v8/src/heap/objects-visiting.h | 143 +- deps/v8/src/heap/remembered-set.h | 131 +- deps/v8/src/heap/scavenge-job.cc | 1 + deps/v8/src/heap/scavenger-inl.h | 260 +- deps/v8/src/heap/scavenger.cc | 131 +- deps/v8/src/heap/scavenger.h | 104 +- deps/v8/src/heap/setup-heap-internal.cc | 213 +- deps/v8/src/heap/slot-set.cc | 99 + deps/v8/src/heap/slot-set.h | 291 +- deps/v8/src/heap/spaces-inl.h | 129 +- deps/v8/src/heap/spaces.cc | 687 ++- deps/v8/src/heap/spaces.h | 447 +- deps/v8/src/heap/store-buffer.cc | 29 +- deps/v8/src/heap/store-buffer.h | 7 +- deps/v8/src/heap/stress-marking-observer.cc | 2 + deps/v8/src/heap/sweeper.cc | 43 +- deps/v8/src/heap/sweeper.h | 14 +- deps/v8/src/heap/worklist.h | 15 +- deps/v8/src/ia32/assembler-ia32-inl.h | 27 +- deps/v8/src/ia32/assembler-ia32.cc | 176 +- deps/v8/src/ia32/assembler-ia32.h | 217 +- deps/v8/src/ia32/code-stubs-ia32.cc | 514 -- deps/v8/src/ia32/codegen-ia32.cc | 467 -- deps/v8/src/ia32/constants-ia32.h | 4 - deps/v8/src/ia32/cpu-ia32.cc | 3 +- deps/v8/src/ia32/deoptimizer-ia32.cc | 56 +- deps/v8/src/ia32/frame-constants-ia32.h | 22 +- .../v8/src/ia32/interface-descriptors-ia32.cc | 22 +- deps/v8/src/ia32/macro-assembler-ia32.cc | 619 +- deps/v8/src/ia32/macro-assembler-ia32.h | 206 +- deps/v8/src/ia32/register-ia32.h | 166 + deps/v8/src/ia32/simulator-ia32.cc | 7 - deps/v8/src/ia32/simulator-ia32.h | 10 - deps/v8/src/ic/accessor-assembler.cc | 163 +- deps/v8/src/ic/accessor-assembler.h | 5 +- deps/v8/src/ic/call-optimization.cc | 14 +- deps/v8/src/ic/call-optimization.h | 9 +- deps/v8/src/ic/handler-configuration-inl.h | 8 +- deps/v8/src/ic/handler-configuration.cc | 14 +- deps/v8/src/ic/handler-configuration.h | 8 +- deps/v8/src/ic/ic-inl.h | 21 +- deps/v8/src/ic/ic-stats.cc | 26 +- deps/v8/src/ic/ic-stats.h | 11 +- deps/v8/src/ic/ic.cc | 383 +- deps/v8/src/ic/ic.h | 74 +- deps/v8/src/ic/keyed-store-generic.cc | 409 +- deps/v8/src/ic/keyed-store-generic.h | 2 +- deps/v8/src/ic/stub-cache.cc | 78 +- deps/v8/src/ic/stub-cache.h | 30 +- deps/v8/src/identity-map.cc | 66 +- deps/v8/src/identity-map.h | 37 +- deps/v8/src/inspector/BUILD.gn | 45 +- deps/v8/src/inspector/DEPS | 1 - deps/v8/src/inspector/OWNERS | 3 + deps/v8/src/inspector/PRESUBMIT.py | 67 - .../build/check_injected_script_source.py | 88 - .../build/closure-compiler.tar.gz.sha1 | 1 - .../v8/src/inspector/build/compile-scripts.py | 150 - .../build/generate_protocol_externs.py | 246 - deps/v8/src/inspector/build/rjsmin.py | 295 - deps/v8/src/inspector/build/xxd.py | 28 - deps/v8/src/inspector/custom-preview.cc | 388 ++ deps/v8/src/inspector/custom-preview.h | 22 + .../src/inspector/injected-script-source.js | 1116 ---- deps/v8/src/inspector/injected-script.cc | 470 +- deps/v8/src/inspector/injected-script.h | 57 +- .../src/inspector/injected_script_externs.js | 122 - deps/v8/src/inspector/inspected-context.cc | 32 +- deps/v8/src/inspector/inspected-context.h | 10 +- .../inspector/inspector_protocol_config.json | 1 - deps/v8/src/inspector/js_protocol.json | 61 +- deps/v8/src/inspector/js_protocol.pdl | 34 +- deps/v8/src/inspector/string-16.cc | 16 - deps/v8/src/inspector/string-16.h | 10 +- deps/v8/src/inspector/string-util.cc | 4 +- deps/v8/src/inspector/string-util.h | 14 + deps/v8/src/inspector/v8-console-message.cc | 30 +- deps/v8/src/inspector/v8-console.cc | 5 +- .../src/inspector/v8-debugger-agent-impl.cc | 41 +- .../v8/src/inspector/v8-debugger-agent-impl.h | 2 - deps/v8/src/inspector/v8-debugger-script.cc | 5 +- deps/v8/src/inspector/v8-debugger.cc | 304 +- deps/v8/src/inspector/v8-debugger.h | 26 +- deps/v8/src/inspector/v8-function-call.cc | 115 - deps/v8/src/inspector/v8-function-call.h | 65 - .../inspector/v8-heap-profiler-agent-impl.cc | 15 +- .../src/inspector/v8-injected-script-host.cc | 427 -- .../src/inspector/v8-injected-script-host.h | 53 - deps/v8/src/inspector/v8-inspector-impl.cc | 31 +- deps/v8/src/inspector/v8-inspector-impl.h | 10 +- .../inspector/v8-inspector-session-impl.cc | 15 +- .../src/inspector/v8-inspector-session-impl.h | 4 +- .../src/inspector/v8-internal-value-type.cc | 75 - .../v8/src/inspector/v8-internal-value-type.h | 23 - .../v8/src/inspector/v8-runtime-agent-impl.cc | 123 +- deps/v8/src/inspector/v8-stack-trace-impl.cc | 8 +- deps/v8/src/inspector/v8-stack-trace-impl.h | 3 + deps/v8/src/inspector/v8-value-utils.cc | 103 - deps/v8/src/inspector/v8-value-utils.h | 3 - deps/v8/src/inspector/value-mirror.cc | 1617 ++++++ deps/v8/src/inspector/value-mirror.h | 78 + deps/v8/src/inspector/wasm-translation.cc | 104 +- deps/v8/src/inspector/wasm-translation.h | 9 +- deps/v8/src/instruction-stream.cc | 84 - deps/v8/src/instruction-stream.h | 39 - deps/v8/src/interface-descriptors.cc | 59 +- deps/v8/src/interface-descriptors.h | 249 +- .../interpreter/bytecode-array-accessor.cc | 10 +- .../src/interpreter/bytecode-array-accessor.h | 7 +- .../src/interpreter/bytecode-array-builder.cc | 14 +- .../src/interpreter/bytecode-array-builder.h | 11 +- .../src/interpreter/bytecode-array-writer.cc | 2 +- .../src/interpreter/bytecode-array-writer.h | 2 + deps/v8/src/interpreter/bytecode-flags.cc | 7 +- deps/v8/src/interpreter/bytecode-flags.h | 3 +- deps/v8/src/interpreter/bytecode-generator.cc | 1613 ++++-- deps/v8/src/interpreter/bytecode-generator.h | 144 +- deps/v8/src/interpreter/bytecode-register.cc | 12 +- deps/v8/src/interpreter/bytecode-register.h | 2 +- deps/v8/src/interpreter/bytecodes.h | 13 +- .../src/interpreter/constant-array-builder.cc | 12 +- .../src/interpreter/constant-array-builder.h | 21 +- .../src/interpreter/interpreter-assembler.cc | 78 +- .../src/interpreter/interpreter-assembler.h | 9 +- .../src/interpreter/interpreter-generator.cc | 418 +- .../interpreter-intrinsics-generator.cc | 56 +- .../src/interpreter/interpreter-intrinsics.h | 45 +- deps/v8/src/interpreter/interpreter.cc | 102 +- deps/v8/src/interpreter/interpreter.h | 19 +- deps/v8/src/intl.cc | 420 -- deps/v8/src/intl.h | 82 - deps/v8/src/isolate-allocator.cc | 160 + deps/v8/src/isolate-allocator.h | 63 + deps/v8/src/isolate-data.h | 217 + deps/v8/src/isolate-inl.h | 75 +- deps/v8/src/isolate.cc | 1366 +++-- deps/v8/src/isolate.h | 644 ++- deps/v8/src/js/OWNERS | 14 - deps/v8/src/js/array.js | 515 -- deps/v8/src/js/intl.js | 450 -- deps/v8/src/js/macros.py | 85 - deps/v8/src/js/prologue.js | 168 - deps/v8/src/js/typedarray.js | 93 - deps/v8/src/json-parser.cc | 63 +- deps/v8/src/json-stringifier.cc | 106 +- deps/v8/src/keys.cc | 55 +- deps/v8/src/keys.h | 4 +- deps/v8/src/layout-descriptor-inl.h | 71 +- deps/v8/src/layout-descriptor.cc | 48 +- deps/v8/src/layout-descriptor.h | 44 +- .../default-foreground-task-runner.cc | 21 +- .../default-foreground-task-runner.h | 10 +- deps/v8/src/libplatform/default-platform.cc | 14 +- .../default-worker-threads-task-runner.cc | 6 +- deps/v8/src/libplatform/task-queue.cc | 10 +- .../src/libplatform/tracing/trace-buffer.cc | 6 +- .../libplatform/tracing/tracing-controller.cc | 12 +- deps/v8/src/libsampler/sampler.cc | 266 +- deps/v8/src/libsampler/sampler.h | 117 +- deps/v8/src/locked-queue-inl.h | 8 +- deps/v8/src/log-inl.h | 2 +- deps/v8/src/log-utils.cc | 18 +- deps/v8/src/log-utils.h | 14 +- deps/v8/src/log.cc | 399 +- deps/v8/src/log.h | 168 +- deps/v8/src/lookup-cache-inl.h | 10 +- deps/v8/src/lookup-cache.cc | 4 +- deps/v8/src/lookup-cache.h | 16 +- deps/v8/src/lookup-inl.h | 51 +- deps/v8/src/lookup.cc | 142 +- deps/v8/src/lookup.h | 64 +- deps/v8/src/lsan.h | 31 - deps/v8/src/machine-type.h | 18 +- deps/v8/src/macro-assembler-inl.h | 1 + deps/v8/src/macro-assembler.h | 26 +- deps/v8/src/map-updater.cc | 57 +- deps/v8/src/map-updater.h | 6 +- deps/v8/src/math-random.cc | 16 +- deps/v8/src/math-random.h | 6 +- deps/v8/src/maybe-handles-inl.h | 18 +- deps/v8/src/maybe-handles.h | 25 +- deps/v8/src/memcopy.cc | 71 + deps/v8/src/memcopy.h | 492 ++ deps/v8/src/message-template.h | 576 ++ deps/v8/src/messages.cc | 105 +- deps/v8/src/messages.h | 554 +- deps/v8/src/microtask-queue.cc | 226 + deps/v8/src/microtask-queue.h | 124 + deps/v8/src/mips/OWNERS | 5 +- deps/v8/src/mips/assembler-mips-inl.h | 95 +- deps/v8/src/mips/assembler-mips.cc | 343 +- deps/v8/src/mips/assembler-mips.h | 431 +- deps/v8/src/mips/code-stubs-mips.cc | 596 -- deps/v8/src/mips/code-stubs-mips.h | 31 - deps/v8/src/mips/codegen-mips.cc | 587 -- deps/v8/src/mips/constants-mips.h | 8 +- deps/v8/src/mips/cpu-mips.cc | 5 +- deps/v8/src/mips/deoptimizer-mips.cc | 103 +- deps/v8/src/mips/disasm-mips.cc | 22 +- deps/v8/src/mips/frame-constants-mips.h | 8 +- .../v8/src/mips/interface-descriptors-mips.cc | 48 +- deps/v8/src/mips/macro-assembler-mips.cc | 338 +- deps/v8/src/mips/macro-assembler-mips.h | 142 +- deps/v8/src/mips/register-mips.h | 382 ++ deps/v8/src/mips/simulator-mips.cc | 309 +- deps/v8/src/mips/simulator-mips.h | 99 +- deps/v8/src/mips64/OWNERS | 5 +- deps/v8/src/mips64/assembler-mips64-inl.h | 24 +- deps/v8/src/mips64/assembler-mips64.cc | 115 +- deps/v8/src/mips64/assembler-mips64.h | 390 +- deps/v8/src/mips64/code-stubs-mips64.cc | 602 -- deps/v8/src/mips64/code-stubs-mips64.h | 31 - deps/v8/src/mips64/codegen-mips64.cc | 587 -- deps/v8/src/mips64/cpu-mips64.cc | 5 +- deps/v8/src/mips64/deoptimizer-mips64.cc | 102 +- deps/v8/src/mips64/frame-constants-mips64.h | 4 +- .../mips64/interface-descriptors-mips64.cc | 48 +- deps/v8/src/mips64/macro-assembler-mips64.cc | 250 +- deps/v8/src/mips64/macro-assembler-mips64.h | 133 +- deps/v8/src/mips64/register-mips64.h | 389 ++ deps/v8/src/mips64/simulator-mips64.cc | 378 +- deps/v8/src/mips64/simulator-mips64.h | 102 +- deps/v8/src/objects-body-descriptors-inl.h | 581 +- deps/v8/src/objects-body-descriptors.h | 72 +- deps/v8/src/objects-debug.cc | 739 ++- deps/v8/src/objects-definitions.h | 30 +- deps/v8/src/objects-inl.h | 1272 +---- deps/v8/src/objects-printer.cc | 1029 ++-- deps/v8/src/objects.cc | 3060 +++++----- deps/v8/src/objects.h | 1434 +---- deps/v8/src/objects/allocation-site-inl.h | 17 +- deps/v8/src/objects/allocation-site.h | 35 +- deps/v8/src/objects/api-callbacks-inl.h | 9 +- deps/v8/src/objects/api-callbacks.h | 76 +- deps/v8/src/objects/arguments-inl.h | 26 +- deps/v8/src/objects/arguments.h | 70 +- deps/v8/src/objects/bigint.cc | 134 +- deps/v8/src/objects/bigint.h | 71 +- deps/v8/src/objects/builtin-function-id.h | 7 + .../{microtask-queue-inl.h => cell-inl.h} | 23 +- deps/v8/src/objects/cell.h | 50 + deps/v8/src/objects/code-inl.h | 258 +- deps/v8/src/objects/code.h | 284 +- deps/v8/src/objects/compilation-cache-inl.h | 31 +- deps/v8/src/objects/compilation-cache.h | 66 +- deps/v8/src/objects/data-handler-inl.h | 6 +- deps/v8/src/objects/data-handler.h | 22 +- deps/v8/src/objects/debug-objects-inl.h | 23 +- deps/v8/src/objects/debug-objects.cc | 18 +- deps/v8/src/objects/debug-objects.h | 49 +- deps/v8/src/objects/descriptor-array-inl.h | 226 + deps/v8/src/objects/descriptor-array.h | 192 +- deps/v8/src/objects/dictionary-inl.h | 214 + deps/v8/src/objects/dictionary.h | 77 +- deps/v8/src/objects/embedder-data-array-inl.h | 39 + deps/v8/src/objects/embedder-data-array.cc | 27 + deps/v8/src/objects/embedder-data-array.h | 78 + deps/v8/src/objects/embedder-data-slot-inl.h | 127 + deps/v8/src/objects/embedder-data-slot.h | 82 + deps/v8/src/objects/feedback-cell-inl.h | 29 + deps/v8/src/objects/feedback-cell.h | 51 + deps/v8/src/objects/fixed-array-inl.h | 355 +- deps/v8/src/objects/fixed-array.h | 252 +- deps/v8/src/objects/foreign-inl.h | 41 + deps/v8/src/objects/foreign.h | 59 + deps/v8/src/objects/frame-array-inl.h | 9 +- deps/v8/src/objects/frame-array.h | 9 +- deps/v8/src/objects/free-space-inl.h | 64 + deps/v8/src/objects/free-space.h | 61 + deps/v8/src/objects/hash-table-inl.h | 49 +- deps/v8/src/objects/hash-table.h | 64 +- deps/v8/src/objects/heap-number-inl.h | 56 + deps/v8/src/objects/heap-number.h | 89 + deps/v8/src/objects/heap-object-inl.h | 43 + deps/v8/src/objects/heap-object.h | 214 + deps/v8/src/objects/instance-type-inl.h | 82 + deps/v8/src/objects/instance-type.h | 571 ++ deps/v8/src/objects/intl-objects-inl.h | 29 - deps/v8/src/objects/intl-objects.cc | 1561 +++-- deps/v8/src/objects/intl-objects.h | 178 +- deps/v8/src/objects/js-array-buffer-inl.h | 52 +- deps/v8/src/objects/js-array-buffer.cc | 31 +- deps/v8/src/objects/js-array-buffer.h | 108 +- deps/v8/src/objects/js-array-inl.h | 7 +- deps/v8/src/objects/js-array.h | 57 +- deps/v8/src/objects/js-break-iterator-inl.h | 4 +- deps/v8/src/objects/js-break-iterator.cc | 127 +- deps/v8/src/objects/js-break-iterator.h | 47 +- deps/v8/src/objects/js-collator-inl.h | 2 + deps/v8/src/objects/js-collator.cc | 288 +- deps/v8/src/objects/js-collator.h | 17 +- deps/v8/src/objects/js-collection-inl.h | 32 +- deps/v8/src/objects/js-collection.h | 53 +- deps/v8/src/objects/js-date-time-format-inl.h | 13 + deps/v8/src/objects/js-date-time-format.cc | 539 +- deps/v8/src/objects/js-date-time-format.h | 43 +- deps/v8/src/objects/js-generator-inl.h | 17 +- deps/v8/src/objects/js-generator.h | 97 +- deps/v8/src/objects/js-list-format-inl.h | 2 + deps/v8/src/objects/js-list-format.cc | 370 +- deps/v8/src/objects/js-list-format.h | 25 +- deps/v8/src/objects/js-locale-inl.h | 46 +- deps/v8/src/objects/js-locale.cc | 569 +- deps/v8/src/objects/js-locale.h | 120 +- deps/v8/src/objects/js-number-format-inl.h | 2 + deps/v8/src/objects/js-number-format.cc | 251 +- deps/v8/src/objects/js-number-format.h | 34 +- deps/v8/src/objects/js-objects-inl.h | 339 +- deps/v8/src/objects/js-objects.h | 427 +- deps/v8/src/objects/js-plural-rules-inl.h | 15 +- deps/v8/src/objects/js-plural-rules.cc | 105 +- deps/v8/src/objects/js-plural-rules.h | 46 +- deps/v8/src/objects/js-promise-inl.h | 5 +- deps/v8/src/objects/js-promise.h | 21 +- deps/v8/src/objects/js-proxy-inl.h | 2 + deps/v8/src/objects/js-proxy.h | 32 +- deps/v8/src/objects/js-regexp-inl.h | 38 +- .../objects/js-regexp-string-iterator-inl.h | 2 + .../src/objects/js-regexp-string-iterator.h | 20 +- deps/v8/src/objects/js-regexp.h | 93 +- .../src/objects/js-relative-time-format-inl.h | 4 +- .../v8/src/objects/js-relative-time-format.cc | 183 +- deps/v8/src/objects/js-relative-time-format.h | 23 +- deps/v8/src/objects/js-segment-iterator-inl.h | 53 + deps/v8/src/objects/js-segment-iterator.cc | 290 + deps/v8/src/objects/js-segment-iterator.h | 112 + deps/v8/src/objects/js-segmenter-inl.h | 13 +- deps/v8/src/objects/js-segmenter.cc | 149 +- deps/v8/src/objects/js-segmenter.h | 49 +- deps/v8/src/objects/js-weak-refs-inl.h | 178 + deps/v8/src/objects/js-weak-refs.h | 182 + deps/v8/src/objects/literal-objects-inl.h | 10 +- deps/v8/src/objects/literal-objects.cc | 70 +- deps/v8/src/objects/literal-objects.h | 23 +- deps/v8/src/objects/managed.cc | 4 +- deps/v8/src/objects/managed.h | 13 +- deps/v8/src/objects/map-inl.h | 216 +- deps/v8/src/objects/map.h | 286 +- deps/v8/src/objects/maybe-object-inl.h | 97 +- deps/v8/src/objects/maybe-object.h | 102 +- deps/v8/src/objects/microtask-inl.h | 7 +- deps/v8/src/objects/microtask-queue.cc | 40 - deps/v8/src/objects/microtask-queue.h | 55 - deps/v8/src/objects/microtask.h | 34 +- deps/v8/src/objects/module-inl.h | 23 +- deps/v8/src/objects/module.cc | 24 +- deps/v8/src/objects/module.h | 113 +- deps/v8/src/objects/name-inl.h | 39 +- deps/v8/src/objects/name.h | 31 +- deps/v8/src/objects/object-macros-undef.h | 30 +- deps/v8/src/objects/object-macros.h | 331 +- deps/v8/src/objects/oddball-inl.h | 54 + deps/v8/src/objects/oddball.h | 97 + deps/v8/src/objects/ordered-hash-table-inl.h | 150 +- deps/v8/src/objects/ordered-hash-table.cc | 632 +- deps/v8/src/objects/ordered-hash-table.h | 534 +- deps/v8/src/objects/promise-inl.h | 11 +- deps/v8/src/objects/promise.h | 94 +- deps/v8/src/objects/property-array-inl.h | 55 +- deps/v8/src/objects/property-array.h | 27 +- deps/v8/src/objects/property-cell-inl.h | 40 + deps/v8/src/objects/property-cell.h | 81 + .../objects/property-descriptor-object-inl.h | 1 + .../src/objects/property-descriptor-object.h | 2 + deps/v8/src/objects/prototype-info-inl.h | 14 +- deps/v8/src/objects/prototype-info.h | 44 +- deps/v8/src/objects/regexp-match-info.h | 25 +- deps/v8/src/objects/scope-info.cc | 87 +- deps/v8/src/objects/scope-info.h | 106 +- deps/v8/src/objects/script-inl.h | 17 +- deps/v8/src/objects/script.h | 52 +- .../v8/src/objects/shared-function-info-inl.h | 385 +- deps/v8/src/objects/shared-function-info.h | 390 +- deps/v8/src/objects/slots-atomic-inl.h | 100 + deps/v8/src/objects/slots-inl.h | 126 + deps/v8/src/objects/slots.h | 181 + deps/v8/src/objects/smi-inl.h | 25 + deps/v8/src/objects/smi.h | 107 + deps/v8/src/objects/stack-frame-info-inl.h | 4 + deps/v8/src/objects/stack-frame-info.h | 33 +- deps/v8/src/objects/string-inl.h | 270 +- deps/v8/src/objects/string-table-inl.h | 69 + deps/v8/src/objects/string-table.h | 27 +- deps/v8/src/objects/string.h | 212 +- deps/v8/src/objects/struct-inl.h | 71 + deps/v8/src/objects/struct.h | 127 + deps/v8/src/objects/template-objects.h | 4 +- deps/v8/src/objects/templates-inl.h | 108 +- deps/v8/src/objects/templates.h | 189 +- deps/v8/src/optimized-compilation-info.cc | 43 +- deps/v8/src/optimized-compilation-info.h | 51 +- deps/v8/src/parsing/duplicate-finder.h | 36 - deps/v8/src/parsing/expression-classifier.h | 568 -- .../parsing/expression-scope-reparenter.cc | 6 - deps/v8/src/parsing/expression-scope.h | 710 +++ deps/v8/src/parsing/func-name-inferrer.cc | 33 +- deps/v8/src/parsing/func-name-inferrer.h | 65 +- deps/v8/src/parsing/keywords-gen.h | 177 + deps/v8/src/parsing/keywords.txt | 64 + deps/v8/src/parsing/parse-info.cc | 35 +- deps/v8/src/parsing/parse-info.h | 90 +- deps/v8/src/parsing/parser-base.h | 4706 +++++++-------- deps/v8/src/parsing/parser.cc | 2392 +++----- deps/v8/src/parsing/parser.h | 457 +- deps/v8/src/parsing/parsing.cc | 3 +- deps/v8/src/parsing/pattern-rewriter.cc | 700 +-- deps/v8/src/parsing/preparse-data-impl.h | 234 + deps/v8/src/parsing/preparse-data.cc | 716 +++ deps/v8/src/parsing/preparse-data.h | 275 + .../src/parsing/preparsed-scope-data-impl.h | 259 - deps/v8/src/parsing/preparsed-scope-data.cc | 737 --- deps/v8/src/parsing/preparsed-scope-data.h | 214 - deps/v8/src/parsing/preparser.cc | 411 +- deps/v8/src/parsing/preparser.h | 853 ++- deps/v8/src/parsing/rewriter.cc | 79 +- deps/v8/src/parsing/rewriter.h | 10 - .../src/parsing/scanner-character-streams.cc | 56 +- deps/v8/src/parsing/scanner-inl.h | 772 ++- deps/v8/src/parsing/scanner.cc | 227 +- deps/v8/src/parsing/scanner.h | 245 +- deps/v8/src/parsing/token.cc | 29 +- deps/v8/src/parsing/token.h | 192 +- .../src/pending-compilation-error-handler.cc | 32 +- .../src/pending-compilation-error-handler.h | 33 +- deps/v8/src/perf-jit.cc | 32 +- deps/v8/src/perf-jit.h | 20 +- deps/v8/src/pointer-with-payload.h | 104 + deps/v8/src/ppc/OWNERS | 5 +- deps/v8/src/ppc/assembler-ppc-inl.h | 27 +- deps/v8/src/ppc/assembler-ppc.cc | 134 +- deps/v8/src/ppc/assembler-ppc.h | 355 +- deps/v8/src/ppc/code-stubs-ppc.cc | 621 +- deps/v8/src/ppc/code-stubs-ppc.h | 31 - deps/v8/src/ppc/codegen-ppc.cc | 55 - deps/v8/src/ppc/constants-ppc.h | 30 + deps/v8/src/ppc/cpu-ppc.cc | 6 +- deps/v8/src/ppc/deoptimizer-ppc.cc | 53 +- deps/v8/src/ppc/disasm-ppc.cc | 10 +- deps/v8/src/ppc/frame-constants-ppc.cc | 8 +- deps/v8/src/ppc/frame-constants-ppc.h | 2 +- deps/v8/src/ppc/interface-descriptors-ppc.cc | 21 +- deps/v8/src/ppc/macro-assembler-ppc.cc | 437 +- deps/v8/src/ppc/macro-assembler-ppc.h | 132 +- deps/v8/src/ppc/register-ppc.h | 321 ++ deps/v8/src/ppc/simulator-ppc.cc | 563 +- deps/v8/src/ppc/simulator-ppc.h | 167 +- deps/v8/src/profiler/allocation-tracker.cc | 28 +- deps/v8/src/profiler/allocation-tracker.h | 4 +- deps/v8/src/profiler/circular-queue.h | 6 +- deps/v8/src/profiler/cpu-profiler-inl.h | 6 +- deps/v8/src/profiler/cpu-profiler.cc | 147 +- deps/v8/src/profiler/cpu-profiler.h | 89 +- deps/v8/src/profiler/heap-profiler.cc | 20 +- deps/v8/src/profiler/heap-profiler.h | 2 +- .../src/profiler/heap-snapshot-generator.cc | 485 +- .../v8/src/profiler/heap-snapshot-generator.h | 152 +- deps/v8/src/profiler/profile-generator.cc | 148 +- deps/v8/src/profiler/profile-generator.h | 56 +- deps/v8/src/profiler/profiler-listener.cc | 188 +- deps/v8/src/profiler/profiler-listener.h | 37 +- .../v8/src/profiler/sampling-heap-profiler.cc | 85 +- deps/v8/src/profiler/sampling-heap-profiler.h | 101 +- deps/v8/src/profiler/strings-storage.cc | 8 +- deps/v8/src/profiler/strings-storage.h | 4 +- deps/v8/src/profiler/tick-sample.cc | 22 +- deps/v8/src/profiler/tick-sample.h | 2 + deps/v8/src/profiler/tracing-cpu-profiler.cc | 10 +- deps/v8/src/property-descriptor.cc | 4 +- deps/v8/src/property-details.h | 28 +- deps/v8/src/property.cc | 3 +- deps/v8/src/prototype-inl.h | 16 +- deps/v8/src/prototype.h | 10 +- deps/v8/src/ptr-compr-inl.h | 243 + deps/v8/src/ptr-compr.h | 145 + .../regexp/arm/regexp-macro-assembler-arm.cc | 41 +- .../regexp/arm/regexp-macro-assembler-arm.h | 6 +- .../arm64/regexp-macro-assembler-arm64.cc | 51 +- .../arm64/regexp-macro-assembler-arm64.h | 9 +- .../ia32/regexp-macro-assembler-ia32.cc | 39 +- .../regexp/ia32/regexp-macro-assembler-ia32.h | 7 +- deps/v8/src/regexp/interpreter-irregexp.cc | 2 +- deps/v8/src/regexp/jsregexp-inl.h | 4 + deps/v8/src/regexp/jsregexp.cc | 58 +- deps/v8/src/regexp/jsregexp.h | 36 +- deps/v8/src/regexp/mips/OWNERS | 5 +- .../mips/regexp-macro-assembler-mips.cc | 52 +- .../regexp/mips/regexp-macro-assembler-mips.h | 6 +- deps/v8/src/regexp/mips64/OWNERS | 5 +- .../mips64/regexp-macro-assembler-mips64.cc | 52 +- .../mips64/regexp-macro-assembler-mips64.h | 5 +- deps/v8/src/regexp/ppc/OWNERS | 5 +- .../regexp/ppc/regexp-macro-assembler-ppc.cc | 44 +- .../regexp/ppc/regexp-macro-assembler-ppc.h | 5 +- .../regexp-macro-assembler-irregexp-inl.h | 2 + deps/v8/src/regexp/regexp-macro-assembler.cc | 61 +- deps/v8/src/regexp/regexp-macro-assembler.h | 18 +- deps/v8/src/regexp/regexp-parser.cc | 15 +- deps/v8/src/regexp/regexp-stack.cc | 4 +- deps/v8/src/regexp/regexp-utils.cc | 41 +- deps/v8/src/regexp/regexp-utils.h | 3 +- deps/v8/src/regexp/s390/OWNERS | 5 +- .../s390/regexp-macro-assembler-s390.cc | 38 +- .../regexp/s390/regexp-macro-assembler-s390.h | 5 +- .../regexp/x64/regexp-macro-assembler-x64.cc | 49 +- .../regexp/x64/regexp-macro-assembler-x64.h | 29 +- deps/v8/src/register-arch.h | 31 + deps/v8/src/register-configuration.cc | 142 +- deps/v8/src/register-configuration.h | 35 +- deps/v8/src/register.h | 126 + deps/v8/src/reloc-info.cc | 86 +- deps/v8/src/reloc-info.h | 48 +- deps/v8/src/roots-inl.h | 81 +- deps/v8/src/roots.cc | 15 + deps/v8/src/roots.h | 249 +- deps/v8/src/runtime-profiler.cc | 70 +- deps/v8/src/runtime-profiler.h | 17 +- deps/v8/src/runtime/runtime-array.cc | 108 +- deps/v8/src/runtime/runtime-atomics.cc | 71 +- deps/v8/src/runtime/runtime-classes.cc | 114 +- deps/v8/src/runtime/runtime-collections.cc | 1 + deps/v8/src/runtime/runtime-compiler.cc | 23 +- deps/v8/src/runtime/runtime-date.cc | 2 +- deps/v8/src/runtime/runtime-debug.cc | 43 +- deps/v8/src/runtime/runtime-forin.cc | 1 + deps/v8/src/runtime/runtime-function.cc | 4 +- deps/v8/src/runtime/runtime-futex.cc | 4 +- deps/v8/src/runtime/runtime-generator.cc | 50 +- deps/v8/src/runtime/runtime-internal.cc | 213 +- deps/v8/src/runtime/runtime-interpreter.cc | 22 +- deps/v8/src/runtime/runtime-intl.cc | 82 +- deps/v8/src/runtime/runtime-literals.cc | 66 +- deps/v8/src/runtime/runtime-numbers.cc | 6 +- deps/v8/src/runtime/runtime-object.cc | 147 +- deps/v8/src/runtime/runtime-operators.cc | 1 + deps/v8/src/runtime/runtime-promise.cc | 94 +- deps/v8/src/runtime/runtime-proxy.cc | 1 + deps/v8/src/runtime/runtime-regexp.cc | 97 +- deps/v8/src/runtime/runtime-scopes.cc | 175 +- deps/v8/src/runtime/runtime-strings.cc | 69 +- deps/v8/src/runtime/runtime-symbol.cc | 8 +- deps/v8/src/runtime/runtime-test.cc | 154 +- deps/v8/src/runtime/runtime-typedarray.cc | 21 +- deps/v8/src/runtime/runtime-utils.h | 37 +- deps/v8/src/runtime/runtime-wasm.cc | 233 +- deps/v8/src/runtime/runtime-weak-refs.cc | 28 + deps/v8/src/runtime/runtime.cc | 13 +- deps/v8/src/runtime/runtime.h | 161 +- deps/v8/src/s390/OWNERS | 5 +- deps/v8/src/s390/assembler-s390-inl.h | 30 +- deps/v8/src/s390/assembler-s390.cc | 141 +- deps/v8/src/s390/assembler-s390.h | 319 +- deps/v8/src/s390/code-stubs-s390.cc | 655 +-- deps/v8/src/s390/code-stubs-s390.h | 31 - deps/v8/src/s390/codegen-s390.cc | 52 - deps/v8/src/s390/constants-s390.h | 3 +- deps/v8/src/s390/cpu-s390.cc | 5 +- deps/v8/src/s390/deoptimizer-s390.cc | 61 +- deps/v8/src/s390/disasm-s390.cc | 8 +- deps/v8/src/s390/frame-constants-s390.cc | 8 +- deps/v8/src/s390/frame-constants-s390.h | 4 +- .../v8/src/s390/interface-descriptors-s390.cc | 21 +- deps/v8/src/s390/macro-assembler-s390.cc | 404 +- deps/v8/src/s390/macro-assembler-s390.h | 118 +- deps/v8/src/s390/register-s390.h | 281 + deps/v8/src/s390/simulator-s390.cc | 52 +- deps/v8/src/s390/simulator-s390.h | 4 +- deps/v8/src/safepoint-table.cc | 19 +- deps/v8/src/safepoint-table.h | 72 +- deps/v8/src/setup-isolate-full.cc | 4 + deps/v8/src/setup-isolate.h | 2 +- deps/v8/src/signature.h | 20 +- deps/v8/src/simulator-base.cc | 5 +- deps/v8/src/simulator-base.h | 6 + deps/v8/src/simulator.h | 37 +- .../builtin-deserializer-allocator.cc | 176 - .../snapshot/builtin-deserializer-allocator.h | 127 - deps/v8/src/snapshot/builtin-deserializer.cc | 167 - deps/v8/src/snapshot/builtin-deserializer.h | 83 - .../snapshot/builtin-serializer-allocator.cc | 61 - .../snapshot/builtin-serializer-allocator.h | 50 - deps/v8/src/snapshot/builtin-serializer.cc | 110 - deps/v8/src/snapshot/builtin-serializer.h | 59 - deps/v8/src/snapshot/code-serializer.cc | 138 +- deps/v8/src/snapshot/code-serializer.h | 44 +- ...allocator.cc => deserializer-allocator.cc} | 115 +- ...r-allocator.h => deserializer-allocator.h} | 34 +- deps/v8/src/snapshot/deserializer.cc | 467 +- deps/v8/src/snapshot/deserializer.h | 89 +- deps/v8/src/snapshot/embedded-data.cc | 332 ++ deps/v8/src/snapshot/embedded-data.h | 134 + deps/v8/src/snapshot/embedded-empty.cc | 20 +- deps/v8/src/snapshot/embedded-file-writer.cc | 637 +++ deps/v8/src/snapshot/embedded-file-writer.h | 424 ++ deps/v8/src/snapshot/macros.h | 82 - deps/v8/src/snapshot/mksnapshot.cc | 225 +- deps/v8/src/snapshot/natives-common.cc | 19 +- deps/v8/src/snapshot/natives-external.cc | 26 +- deps/v8/src/snapshot/natives.h | 25 +- deps/v8/src/snapshot/object-deserializer.cc | 38 +- deps/v8/src/snapshot/object-deserializer.h | 8 +- deps/v8/src/snapshot/partial-deserializer.cc | 7 +- deps/v8/src/snapshot/partial-deserializer.h | 2 +- deps/v8/src/snapshot/partial-serializer.cc | 174 +- deps/v8/src/snapshot/partial-serializer.h | 20 +- .../v8/src/snapshot/read-only-deserializer.cc | 60 + deps/v8/src/snapshot/read-only-deserializer.h | 34 + deps/v8/src/snapshot/read-only-serializer.cc | 105 + deps/v8/src/snapshot/read-only-serializer.h | 46 + deps/v8/src/snapshot/references.h | 4 +- deps/v8/src/snapshot/roots-serializer.cc | 67 + deps/v8/src/snapshot/roots-serializer.h | 64 + ...r-allocator.cc => serializer-allocator.cc} | 33 +- ...zer-allocator.h => serializer-allocator.h} | 16 +- deps/v8/src/snapshot/serializer-common.cc | 26 +- deps/v8/src/snapshot/serializer-common.h | 63 +- deps/v8/src/snapshot/serializer.cc | 421 +- deps/v8/src/snapshot/serializer.h | 143 +- deps/v8/src/snapshot/snapshot-common.cc | 453 +- deps/v8/src/snapshot/snapshot-external.cc | 6 +- deps/v8/src/snapshot/snapshot-source-sink.cc | 3 + deps/v8/src/snapshot/snapshot-source-sink.h | 2 + deps/v8/src/snapshot/snapshot.h | 125 +- deps/v8/src/snapshot/startup-deserializer.cc | 74 +- deps/v8/src/snapshot/startup-deserializer.h | 15 +- deps/v8/src/snapshot/startup-serializer.cc | 149 +- deps/v8/src/snapshot/startup-serializer.h | 89 +- deps/v8/src/source-position-table.cc | 43 +- deps/v8/src/source-position-table.h | 22 +- deps/v8/src/source-position.cc | 34 +- deps/v8/src/source-position.h | 86 +- deps/v8/src/string-builder-inl.h | 31 +- deps/v8/src/string-builder.cc | 36 +- deps/v8/src/string-constants.h | 1 + deps/v8/src/string-hasher-inl.h | 99 +- deps/v8/src/string-hasher.h | 11 +- deps/v8/src/string-stream.cc | 66 +- deps/v8/src/string-stream.h | 29 +- deps/v8/src/task-utils.cc | 64 + deps/v8/src/task-utils.h | 33 + deps/v8/src/third_party/siphash/LICENSE | 116 + .../v8/src/third_party/siphash/halfsiphash.cc | 83 + deps/v8/src/third_party/siphash/halfsiphash.h | 17 + deps/v8/src/thread-id.cc | 38 + deps/v8/src/thread-id.h | 73 + deps/v8/src/torque-assembler.h | 58 - deps/v8/src/torque/ast.h | 339 +- deps/v8/src/torque/cfg.cc | 89 +- deps/v8/src/torque/cfg.h | 45 +- deps/v8/src/torque/csa-generator.cc | 463 +- deps/v8/src/torque/csa-generator.h | 13 + deps/v8/src/torque/declarable.cc | 98 +- deps/v8/src/torque/declarable.h | 430 +- deps/v8/src/torque/declaration-visitor.cc | 782 ++- deps/v8/src/torque/declaration-visitor.h | 146 +- deps/v8/src/torque/declarations.cc | 475 +- deps/v8/src/torque/declarations.h | 286 +- deps/v8/src/torque/earley-parser.h | 4 +- deps/v8/src/torque/file-visitor.cc | 60 +- deps/v8/src/torque/file-visitor.h | 60 +- deps/v8/src/torque/global-context.h | 137 +- deps/v8/src/torque/implementation-visitor.cc | 2116 ++++--- deps/v8/src/torque/implementation-visitor.h | 316 +- deps/v8/src/torque/instructions.cc | 144 +- deps/v8/src/torque/instructions.h | 143 +- deps/v8/src/torque/scope.cc | 51 - deps/v8/src/torque/scope.h | 169 - deps/v8/src/torque/source-positions.h | 6 + deps/v8/src/torque/torque-parser.cc | 482 +- deps/v8/src/torque/torque-parser.h | 2 - deps/v8/src/torque/torque.cc | 36 +- deps/v8/src/torque/type-oracle.h | 104 +- deps/v8/src/torque/types.cc | 200 +- deps/v8/src/torque/types.h | 281 +- deps/v8/src/torque/utils.cc | 38 +- deps/v8/src/torque/utils.h | 41 +- deps/v8/src/tracing/OWNERS | 1 + deps/v8/src/tracing/traced-value.cc | 24 +- .../src/tracing/tracing-category-observer.cc | 5 - deps/v8/src/transitions-inl.h | 106 +- deps/v8/src/transitions.cc | 191 +- deps/v8/src/transitions.h | 129 +- deps/v8/src/trap-handler/DEPS | 7 + ...nside-linux.cc => handler-inside-posix.cc} | 54 +- .../src/trap-handler/handler-inside-posix.h | 31 + .../v8/src/trap-handler/handler-inside-win.cc | 77 + deps/v8/src/trap-handler/handler-inside-win.h | 27 + deps/v8/src/trap-handler/handler-inside.cc | 20 +- ...side-linux.cc => handler-outside-posix.cc} | 25 +- .../src/trap-handler/handler-outside-win.cc | 39 +- deps/v8/src/trap-handler/handler-outside.cc | 17 +- deps/v8/src/trap-handler/handler-shared.cc | 19 +- .../src/trap-handler/trap-handler-internal.h | 13 +- deps/v8/src/trap-handler/trap-handler.h | 38 +- deps/v8/src/turbo-assembler.cc | 71 +- deps/v8/src/turbo-assembler.h | 63 +- deps/v8/src/type-hints.cc | 2 + deps/v8/src/type-hints.h | 1 + deps/v8/src/unicode-cache-inl.h | 43 - deps/v8/src/unicode-cache.h | 17 +- deps/v8/src/unicode-decoder.h | 2 +- deps/v8/src/unoptimized-compilation-info.cc | 5 +- deps/v8/src/unoptimized-compilation-info.h | 14 +- deps/v8/src/unwinder.cc | 98 + deps/v8/src/uri.cc | 33 +- deps/v8/src/utils-inl.h | 16 +- deps/v8/src/utils.cc | 66 +- deps/v8/src/utils.h | 618 +- deps/v8/src/v8.cc | 3 +- deps/v8/src/v8threads.cc | 5 +- deps/v8/src/v8threads.h | 2 +- deps/v8/src/value-serializer.cc | 107 +- deps/v8/src/value-serializer.h | 32 +- deps/v8/src/vector.h | 45 +- deps/v8/src/visitors.h | 45 +- deps/v8/src/vm-state-inl.h | 4 +- deps/v8/src/wasm/OWNERS | 5 +- .../wasm/baseline/arm/liftoff-assembler-arm.h | 1402 ++++- .../baseline/arm64/liftoff-assembler-arm64.h | 52 +- .../baseline/ia32/liftoff-assembler-ia32.h | 219 +- .../wasm/baseline/liftoff-assembler-defs.h | 27 +- .../v8/src/wasm/baseline/liftoff-assembler.cc | 530 +- deps/v8/src/wasm/baseline/liftoff-assembler.h | 74 +- deps/v8/src/wasm/baseline/liftoff-compiler.cc | 631 +- deps/v8/src/wasm/baseline/liftoff-compiler.h | 18 +- deps/v8/src/wasm/baseline/liftoff-register.h | 60 +- deps/v8/src/wasm/baseline/mips/OWNERS | 3 +- .../baseline/mips/liftoff-assembler-mips.h | 95 +- deps/v8/src/wasm/baseline/mips64/OWNERS | 3 +- .../mips64/liftoff-assembler-mips64.h | 54 +- .../wasm/baseline/ppc/liftoff-assembler-ppc.h | 22 +- .../baseline/s390/liftoff-assembler-s390.h | 22 +- .../wasm/baseline/x64/liftoff-assembler-x64.h | 104 +- deps/v8/src/wasm/compilation-environment.h | 127 + deps/v8/src/wasm/decoder.h | 95 +- deps/v8/src/wasm/function-body-decoder-impl.h | 1734 +++--- deps/v8/src/wasm/function-body-decoder.cc | 821 +-- deps/v8/src/wasm/function-body-decoder.h | 13 - deps/v8/src/wasm/function-compiler.cc | 233 +- deps/v8/src/wasm/function-compiler.h | 123 +- deps/v8/src/wasm/graph-builder-interface.cc | 879 +++ deps/v8/src/wasm/graph-builder-interface.h | 36 + .../src/wasm/js-to-wasm-wrapper-cache-inl.h | 41 + deps/v8/src/wasm/jump-table-assembler.cc | 16 +- deps/v8/src/wasm/jump-table-assembler.h | 5 +- deps/v8/src/wasm/module-compiler.cc | 2797 +++------ deps/v8/src/wasm/module-compiler.h | 82 +- deps/v8/src/wasm/module-decoder.cc | 422 +- deps/v8/src/wasm/module-decoder.h | 2 +- deps/v8/src/wasm/module-instantiate.cc | 1537 +++++ deps/v8/src/wasm/module-instantiate.h | 35 + deps/v8/src/wasm/signature-map.cc | 20 +- deps/v8/src/wasm/signature-map.h | 3 - deps/v8/src/wasm/streaming-decoder.cc | 301 +- deps/v8/src/wasm/streaming-decoder.h | 154 +- deps/v8/src/wasm/value-type.h | 16 +- deps/v8/src/wasm/wasm-code-manager.cc | 376 +- deps/v8/src/wasm/wasm-code-manager.h | 136 +- deps/v8/src/wasm/wasm-constants.h | 22 +- deps/v8/src/wasm/wasm-debug.cc | 66 +- deps/v8/src/wasm/wasm-engine.cc | 155 +- deps/v8/src/wasm/wasm-engine.h | 24 +- deps/v8/src/wasm/wasm-external-refs.cc | 13 +- deps/v8/src/wasm/wasm-external-refs.h | 4 + deps/v8/src/wasm/wasm-feature-flags.h | 4 +- .../src/wasm/wasm-import-wrapper-cache-inl.h | 52 + deps/v8/src/wasm/wasm-interpreter.cc | 138 +- deps/v8/src/wasm/wasm-js.cc | 521 +- deps/v8/src/wasm/wasm-js.h | 4 + deps/v8/src/wasm/wasm-limits.h | 17 +- deps/v8/src/wasm/wasm-linkage.h | 48 +- deps/v8/src/wasm/wasm-memory.cc | 43 +- deps/v8/src/wasm/wasm-memory.h | 12 + deps/v8/src/wasm/wasm-module.cc | 25 +- deps/v8/src/wasm/wasm-module.h | 35 +- deps/v8/src/wasm/wasm-objects-inl.h | 95 +- deps/v8/src/wasm/wasm-objects.cc | 542 +- deps/v8/src/wasm/wasm-objects.h | 359 +- deps/v8/src/wasm/wasm-opcodes.cc | 60 +- deps/v8/src/wasm/wasm-opcodes.h | 399 +- deps/v8/src/wasm/wasm-result.cc | 23 +- deps/v8/src/wasm/wasm-result.h | 121 +- deps/v8/src/wasm/wasm-serialization.cc | 174 +- deps/v8/src/wasm/wasm-serialization.h | 7 +- deps/v8/src/wasm/wasm-text.cc | 22 +- deps/v8/src/x64/assembler-x64-inl.h | 18 +- deps/v8/src/x64/assembler-x64.cc | 167 +- deps/v8/src/x64/assembler-x64.h | 435 +- deps/v8/src/x64/code-stubs-x64.cc | 581 -- deps/v8/src/x64/codegen-x64.cc | 45 - deps/v8/src/x64/cpu-x64.cc | 3 +- deps/v8/src/x64/deoptimizer-x64.cc | 87 +- deps/v8/src/x64/disasm-x64.cc | 13 +- deps/v8/src/x64/eh-frame-x64.cc | 4 +- deps/v8/src/x64/frame-constants-x64.cc | 5 +- deps/v8/src/x64/frame-constants-x64.h | 29 +- deps/v8/src/x64/interface-descriptors-x64.cc | 21 +- deps/v8/src/x64/macro-assembler-x64.cc | 732 ++- deps/v8/src/x64/macro-assembler-x64.h | 206 +- deps/v8/src/x64/register-x64.h | 224 + deps/v8/src/x64/simulator-x64.cc | 7 - deps/v8/src/x64/simulator-x64.h | 10 - deps/v8/src/zone/accounting-allocator.cc | 8 +- deps/v8/src/zone/zone-allocator.h | 17 +- deps/v8/src/zone/zone-chunk-list.h | 2 +- deps/v8/src/zone/zone-handle-set.h | 37 +- deps/v8/src/zone/zone-list-inl.h | 10 +- deps/v8/src/zone/zone.cc | 9 +- deps/v8/src/zone/zone.h | 90 +- deps/v8/test/BUILD.gn | 3 + deps/v8/test/benchmarks/csuite/README.md | 43 + deps/v8/test/benchmarks/csuite/benchmark.py | 220 + .../benchmarks/csuite/compare-baseline.py | 264 + deps/v8/test/benchmarks/csuite/csuite.py | 154 + .../csuite/run-kraken.js} | 61 +- .../csuite/sunspider-standalone-driver.js | 75 + deps/v8/test/cctest/BUILD.gn | 56 +- deps/v8/test/cctest/OWNERS | 3 +- deps/v8/test/cctest/assembler-helper-arm.cc | 2 +- deps/v8/test/cctest/assembler-helper-arm.h | 10 +- deps/v8/test/cctest/cctest.cc | 24 +- deps/v8/test/cctest/cctest.h | 30 +- deps/v8/test/cctest/cctest.status | 151 +- deps/v8/test/cctest/compiler/c-signature.h | 6 +- deps/v8/test/cctest/compiler/call-tester.h | 9 + .../cctest/compiler/code-assembler-tester.h | 8 +- .../v8/test/cctest/compiler/codegen-tester.cc | 81 +- deps/v8/test/cctest/compiler/codegen-tester.h | 6 +- .../test/cctest/compiler/function-tester.cc | 12 +- .../cctest/compiler/graph-builder-tester.h | 10 +- .../compiler/test-basic-block-profiler.cc | 12 +- .../cctest/compiler/test-branch-combine.cc | 29 +- .../cctest/compiler/test-code-assembler.cc | 48 +- .../cctest/compiler/test-code-generator.cc | 51 +- .../test/cctest/compiler/test-gap-resolver.cc | 20 +- .../compiler/test-instruction-scheduler.cc | 12 +- .../test/cctest/compiler/test-instruction.cc | 4 +- .../test-js-context-specialization.cc | 48 +- .../cctest/compiler/test-jump-threading.cc | 7 +- deps/v8/test/cctest/compiler/test-linkage.cc | 1 - .../compiler/test-machine-operator-reducer.cc | 39 +- .../cctest/compiler/test-multiple-return.cc | 7 +- .../compiler/test-representation-change.cc | 98 +- .../test-run-bytecode-graph-builder.cc | 31 - .../cctest/compiler/test-run-load-store.cc | 215 +- .../test/cctest/compiler/test-run-machops.cc | 93 +- .../cctest/compiler/test-run-native-calls.cc | 7 +- .../cctest/compiler/test-run-retpoline.cc | 1 + .../v8/test/cctest/compiler/test-run-stubs.cc | 240 - .../cctest/compiler/test-run-tail-calls.cc | 1 + .../compiler/test-run-unwinding-info.cc | 1 - deps/v8/test/cctest/compiler/value-helper.h | 2 +- deps/v8/test/cctest/heap/heap-tester.h | 5 +- deps/v8/test/cctest/heap/heap-utils.cc | 31 +- deps/v8/test/cctest/heap/test-alloc.cc | 4 +- .../cctest/heap/test-array-buffer-tracker.cc | 33 +- deps/v8/test/cctest/heap/test-compaction.cc | 79 +- .../cctest/heap/test-concurrent-marking.cc | 14 +- .../test/cctest/heap/test-embedder-tracing.cc | 7 +- .../heap/test-external-string-tracker.cc | 2 +- deps/v8/test/cctest/heap/test-heap.cc | 958 ++-- .../cctest/heap/test-invalidated-slots.cc | 70 +- deps/v8/test/cctest/heap/test-lab.cc | 5 +- deps/v8/test/cctest/heap/test-mark-compact.cc | 23 +- .../test/cctest/heap/test-page-promotion.cc | 21 +- deps/v8/test/cctest/heap/test-spaces.cc | 120 +- .../test/cctest/heap/test-weak-references.cc | 61 +- .../bytecode-expectations-printer.cc | 6 +- .../bytecode-expectations-printer.h | 4 +- .../ArrayLiterals.golden | 31 +- .../AsyncGenerators.golden | 457 +- .../bytecode_expectations/BasicLoops.golden | 2 +- .../BreakableBlocks.golden | 4 +- .../CallAndSpread.golden | 33 +- .../ClassDeclarations.golden | 168 +- .../CompoundExpressions.golden | 22 +- .../CountOperators.golden | 40 +- .../CreateRestParameter.golden | 28 +- .../bytecode_expectations/Delete.golden | 52 +- .../DestructuringAssignment.golden | 467 ++ .../bytecode_expectations/DoExpression.golden | 71 - .../bytecode_expectations/ForAwaitOf.golden | 1192 ++-- .../bytecode_expectations/ForIn.golden | 20 +- .../bytecode_expectations/ForOf.golden | 586 +- .../bytecode_expectations/ForOfLoop.golden | 1450 ++--- .../GenerateTestUndetectable.golden | 64 +- .../bytecode_expectations/Generators.golden | 190 +- .../IIFEWithOneshotOpt.golden | 177 +- .../IIFEWithoutOneshotOpt.golden | 5 +- .../bytecode_expectations/NewAndSpread.golden | 114 +- .../ObjectLiterals.golden | 80 +- .../PrivateClassFields.golden | 91 +- .../PropertyLoadStoreWithoutOneShot.golden | 10 +- .../StandardForLoop.golden | 226 +- .../SuperCallAndSpread.golden | 37 +- .../TopLevelObjectLiterals.golden | 5 +- .../WithStatement.golden | 5 +- .../generate-bytecode-expectations.cc | 22 +- .../cctest/interpreter/interpreter-tester.cc | 6 +- .../cctest/interpreter/interpreter-tester.h | 9 +- .../interpreter/test-bytecode-generator.cc | 83 +- .../cctest/interpreter/test-interpreter.cc | 221 +- .../v8/test/cctest/libsampler/test-sampler.cc | 109 +- .../cctest/parsing/test-parse-decision.cc | 3 +- deps/v8/test/cctest/parsing/test-preparser.cc | 179 +- .../cctest/parsing/test-scanner-streams.cc | 2 +- deps/v8/test/cctest/parsing/test-scanner.cc | 36 +- deps/v8/test/cctest/profiler-extension.cc | 7 +- deps/v8/test/cctest/scope-test-helper.h | 2 +- .../v8/test/cctest/test-accessor-assembler.cc | 13 +- deps/v8/test/cctest/test-accessors.cc | 2 +- deps/v8/test/cctest/test-api-interceptors.cc | 3 +- deps/v8/test/cctest/test-api.cc | 1492 +++-- deps/v8/test/cctest/test-api.h | 2 +- deps/v8/test/cctest/test-assembler-arm.cc | 106 +- deps/v8/test/cctest/test-assembler-arm64.cc | 710 +-- deps/v8/test/cctest/test-assembler-ia32.cc | 74 +- deps/v8/test/cctest/test-assembler-mips.cc | 259 +- deps/v8/test/cctest/test-assembler-mips64.cc | 297 +- deps/v8/test/cctest/test-assembler-ppc.cc | 53 +- deps/v8/test/cctest/test-assembler-s390.cc | 35 +- deps/v8/test/cctest/test-assembler-x64.cc | 215 +- deps/v8/test/cctest/test-code-layout.cc | 2 + .../test/cctest/test-code-stub-assembler.cc | 156 +- deps/v8/test/cctest/test-code-stubs-arm.cc | 166 - deps/v8/test/cctest/test-code-stubs-arm64.cc | 180 - deps/v8/test/cctest/test-code-stubs-ia32.cc | 148 - deps/v8/test/cctest/test-code-stubs-mips.cc | 181 - deps/v8/test/cctest/test-code-stubs-mips64.cc | 179 - deps/v8/test/cctest/test-code-stubs-x64.cc | 147 - deps/v8/test/cctest/test-code-stubs.cc | 204 - deps/v8/test/cctest/test-code-stubs.h | 59 - deps/v8/test/cctest/test-compiler.cc | 218 +- deps/v8/test/cctest/test-constantpool.cc | 6 +- deps/v8/test/cctest/test-conversions.cc | 342 +- deps/v8/test/cctest/test-cpu-profiler.cc | 333 +- deps/v8/test/cctest/test-date.cc | 23 - deps/v8/test/cctest/test-debug.cc | 46 +- deps/v8/test/cctest/test-decls.cc | 2 - deps/v8/test/cctest/test-dictionary.cc | 20 +- deps/v8/test/cctest/test-disasm-arm.cc | 22 +- deps/v8/test/cctest/test-disasm-arm64.cc | 67 +- deps/v8/test/cctest/test-disasm-ia32.cc | 9 +- deps/v8/test/cctest/test-disasm-mips.cc | 21 +- deps/v8/test/cctest/test-disasm-mips64.cc | 13 +- deps/v8/test/cctest/test-disasm-ppc.cc | 5 +- deps/v8/test/cctest/test-disasm-s390.cc | 18 +- deps/v8/test/cctest/test-disasm-x64.cc | 9 +- deps/v8/test/cctest/test-elements-kind.cc | 10 +- .../v8/test/cctest/test-experimental-extra.js | 14 - deps/v8/test/cctest/test-extra.js | 9 +- deps/v8/test/cctest/test-factory.cc | 46 + deps/v8/test/cctest/test-feedback-vector.cc | 35 +- .../test/cctest/test-field-type-tracking.cc | 59 +- deps/v8/test/cctest/test-flags.cc | 79 +- .../test/cctest/test-func-name-inference.cc | 2 +- deps/v8/test/cctest/test-fuzz-arm64.cc | 20 +- deps/v8/test/cctest/test-global-handles.cc | 80 +- deps/v8/test/cctest/test-hashcode.cc | 69 + deps/v8/test/cctest/test-hashmap.cc | 9 +- deps/v8/test/cctest/test-heap-profiler.cc | 94 +- deps/v8/test/cctest/test-icache.cc | 195 + deps/v8/test/cctest/test-identity-map.cc | 8 +- .../cctest/test-inobject-slack-tracking.cc | 26 +- deps/v8/test/cctest/test-intl.cc | 63 +- .../test-isolate-independent-builtins.cc | 206 - deps/v8/test/cctest/test-js-weak-refs.cc | 477 ++ deps/v8/test/cctest/test-log-stack-tracer.cc | 16 +- deps/v8/test/cctest/test-log.cc | 387 +- .../test/cctest/test-macro-assembler-arm.cc | 24 +- .../test/cctest/test-macro-assembler-mips.cc | 52 +- .../cctest/test-macro-assembler-mips64.cc | 53 +- .../test/cctest/test-macro-assembler-x64.cc | 281 +- deps/v8/test/cctest/test-mementos.cc | 9 +- deps/v8/test/cctest/test-object.cc | 62 +- deps/v8/test/cctest/test-orderedhashtable.cc | 725 ++- deps/v8/test/cctest/test-parsing.cc | 1285 ++++- deps/v8/test/cctest/test-poison-disasm-arm.cc | 220 +- deps/v8/test/cctest/test-profile-generator.cc | 12 +- deps/v8/test/cctest/test-regexp.cc | 25 +- deps/v8/test/cctest/test-roots.cc | 29 +- deps/v8/test/cctest/test-serialize.cc | 651 ++- .../cctest/test-smi-lexicographic-compare.cc | 15 +- deps/v8/test/cctest/test-strings.cc | 166 +- .../test/cctest/test-sync-primitives-arm.cc | 6 +- .../test/cctest/test-sync-primitives-arm64.cc | 12 +- .../v8/test/cctest/test-thread-termination.cc | 80 +- deps/v8/test/cctest/test-traced-value.cc | 28 +- deps/v8/test/cctest/test-transitions.cc | 57 +- deps/v8/test/cctest/test-transitions.h | 2 +- deps/v8/test/cctest/test-unboxed-doubles.cc | 91 +- deps/v8/test/cctest/test-unwinder.cc | 543 ++ deps/v8/test/cctest/test-usecounters.cc | 34 + deps/v8/test/cctest/test-utils-arm64.cc | 16 +- deps/v8/test/cctest/test-utils-arm64.h | 7 +- deps/v8/test/cctest/torque/test-torque.cc | 187 +- deps/v8/test/cctest/trace-extension.cc | 40 +- deps/v8/test/cctest/wasm/OWNERS | 2 - deps/v8/test/cctest/wasm/test-c-wasm-entry.cc | 13 +- .../cctest/wasm/test-jump-table-assembler.cc | 106 +- deps/v8/test/cctest/wasm/test-run-wasm-64.cc | 26 +- .../cctest/wasm/test-run-wasm-atomics64.cc | 106 +- .../cctest/wasm/test-run-wasm-interpreter.cc | 6 +- deps/v8/test/cctest/wasm/test-run-wasm-js.cc | 1 + .../test/cctest/wasm/test-run-wasm-module.cc | 16 +- .../v8/test/cctest/wasm/test-run-wasm-simd.cc | 205 +- deps/v8/test/cctest/wasm/test-run-wasm.cc | 65 +- .../cctest/wasm/test-streaming-compilation.cc | 160 +- .../test/cctest/wasm/test-wasm-breakpoints.cc | 8 +- deps/v8/test/cctest/wasm/test-wasm-codegen.cc | 12 +- .../wasm/test-wasm-import-wrapper-cache.cc | 127 + .../wasm/test-wasm-interpreter-entry.cc | 5 +- .../cctest/wasm/test-wasm-serialization.cc | 62 +- .../cctest/wasm/test-wasm-shared-engine.cc | 12 +- deps/v8/test/cctest/wasm/wasm-run-utils.cc | 62 +- deps/v8/test/cctest/wasm/wasm-run-utils.h | 13 +- deps/v8/test/common/assembler-tester.h | 95 +- deps/v8/test/common/wasm/test-signatures.h | 3 +- deps/v8/test/common/wasm/wasm-macro-gen.h | 32 +- .../v8/test/common/wasm/wasm-module-runner.cc | 43 +- deps/v8/test/common/wasm/wasm-module-runner.h | 43 +- .../evaluate-across-microtasks.js | 2 +- .../es6/debug-promises/proxy-as-promise.js | 2 +- .../reject-in-constructor-opt.js | 8 +- .../es6/debug-step-destructuring-bind.js | 108 +- .../es6/debug-stepin-default-parameters.js | 2 +- .../es8/async-debug-builtin-predictions.js | 2 +- .../es8/async-debug-caught-exception-cases.js | 2 +- .../debug/es8/async-debug-caught-exception.js | 14 +- .../es8/async-debug-step-abort-at-break.js | 2 +- .../es8/async-debug-step-continue-at-break.js | 8 +- .../debug/es8/async-debug-step-in-and-out.js | 8 +- .../debug/es8/async-debug-step-in-out-out.js | 2 +- .../debugger/debug/es8/async-debug-step-in.js | 8 +- .../debug/es8/async-debug-step-nested.js | 8 +- .../es8/async-debug-step-next-constant.js | 8 +- .../debug/es8/async-debug-step-next.js | 8 +- .../debug/es8/async-debug-step-out.js | 2 +- .../debug/es8/debug-async-break-on-stack.js | 4 +- .../debugger/debug/es8/debug-async-break.js | 4 +- .../debug/es8/debug-async-liveedit.js | 4 +- .../debugger/debug/es8/promise-finally.js | 2 +- .../debug/lazy-deopt-then-flush-bytecode.js | 48 + .../debug-evaluate-no-side-effect-builtins.js | 5 +- deps/v8/test/debugger/debugger.status | 22 +- deps/v8/test/debugger/regress/regress-5610.js | 9 +- deps/v8/test/fuzzer/BUILD.gn | 9 +- deps/v8/test/fuzzer/fuzzer.status | 8 + deps/v8/test/fuzzer/multi-return.cc | 8 +- deps/v8/test/fuzzer/parser.cc | 2 +- deps/v8/test/fuzzer/regexp-builtins.cc | 2 +- deps/v8/test/fuzzer/testcfg.py | 5 +- deps/v8/test/fuzzer/wasm-code.cc | 3 +- deps/v8/test/fuzzer/wasm-compile.cc | 38 +- deps/v8/test/fuzzer/wasm-data-section.cc | 11 - .../test/fuzzer/wasm-function-sigs-section.cc | 11 - deps/v8/test/fuzzer/wasm-fuzzer-common.cc | 159 +- deps/v8/test/fuzzer/wasm-fuzzer-common.h | 6 +- deps/v8/test/fuzzer/wasm-globals-section.cc | 11 - deps/v8/test/fuzzer/wasm-imports-section.cc | 11 - deps/v8/test/fuzzer/wasm-memory-section.cc | 11 - deps/v8/test/fuzzer/wasm-names-section.cc | 12 - deps/v8/test/fuzzer/wasm-types-section.cc | 11 - deps/v8/test/fuzzer/wasm_globals_section/foo | 0 deps/v8/test/fuzzer/wasm_imports_section/foo | 0 deps/v8/test/fuzzer/wasm_memory_section/foo | 0 deps/v8/test/fuzzer/wasm_names_section/foo | 0 deps/v8/test/fuzzer/wasm_types_section/foo | 0 deps/v8/test/inspector/BUILD.gn | 1 - deps/v8/test/inspector/PRESUBMIT.py | 25 - .../inspector/cpu-profiler/coverage-block.js | 1 + .../test/inspector/cpu-profiler/coverage.js | 1 + .../debugger/async-chains-expected.txt | 6 +- ...nc-for-await-of-promise-stack-expected.txt | 8 +- .../async-function-step-out-expected.txt | 6 + ...c-function-step-out-optimized-expected.txt | 215 - .../async-function-step-out-optimized.js | 187 - .../async-stack-created-frame-expected.txt | 6 +- .../async-stack-for-promise-expected.txt | 6 +- .../async-stack-load-more-expected.txt | 2 +- .../break-locations-await-expected.txt | 60 +- .../break-locations-var-init-expected.txt | 56 +- ...-locations-var-init-optimized-expected.txt | 200 - .../break-locations-var-init-optimized.js | 76 - .../debugger/class-fields-scopes-expected.txt | 977 ++++ .../inspector/debugger/class-fields-scopes.js | 80 + .../debugger/eval-scopes-expected.txt | 6 - .../debugger/for-of-loops-expected.txt | 12 + .../get-possible-breakpoints-expected.txt | 20 +- ...t-possible-breakpoints-master-expected.txt | 6 +- .../max-async-call-chain-depth-expected.txt | 2 +- ...t-preview-internal-properties-expected.txt | 13 +- ...se-on-async-call-set-timeout-expected.txt} | 2 +- ....js => pause-on-async-call-set-timeout.js} | 41 +- .../test/inspector/debugger/pause-on-oom.js | 2 +- .../promise-chain-when-limit-hit-expected.txt | 36 +- .../schedule-step-into-async-expected.txt | 191 - .../debugger/schedule-step-into-async.js | 160 - ...kip-variables-with-empty-name-expected.txt | 6 - .../debugger/script-origin-stack-expected.txt | 33 + .../inspector/debugger/script-origin-stack.js | 15 + .../debugger/set-script-source-2-expected.txt | 10 +- ...step-into-break-on-async-call-expected.txt | 4 +- .../step-out-async-await-expected.txt | 18 +- .../debugger/step-snapshot-expected.txt | 6 + .../test/inspector/debugger/step-snapshot.js | 1 + ...pping-ignores-injected-script-expected.txt | 2 - .../stepping-ignores-injected-script.js | 21 - ...-with-exposed-injected-script-expected.txt | 2 - .../stepping-with-exposed-injected-script.js | 22 - .../terminate-execution-on-pause-expected.txt | 55 + .../debugger/terminate-execution-on-pause.js | 51 +- .../wasm-reset-context-group-expected.txt | 18 + .../debugger/wasm-reset-context-group.js | 63 + .../debugger/wasm-scope-info-expected.txt | 176 +- .../inspector/debugger/wasm-scope-info.js | 48 +- .../debugger/wasm-set-breakpoint-expected.txt | 112 +- .../inspector/debugger/wasm-set-breakpoint.js | 167 +- .../sampling-heap-profiler-expected.txt | 1 + .../heap-profiler/sampling-heap-profiler.js | 9 + deps/v8/test/inspector/inspector-test.cc | 108 +- deps/v8/test/inspector/inspector.status | 38 +- deps/v8/test/inspector/isolate-data.cc | 8 +- deps/v8/test/inspector/isolate-data.h | 1 + deps/v8/test/inspector/protocol-test.js | 73 +- .../console-messages-limits-expected.txt | 2 +- .../runtime/console-methods-expected.txt | 167 + .../test/inspector/runtime/console-methods.js | 7 +- .../runtime/console-table-expected.txt | 385 ++ .../test/inspector/runtime/console-table.js | 102 + .../runtime/custom-preview-expected.txt | 250 + .../test/inspector/runtime/custom-preview.js | 133 + .../inspector/runtime/es6-module-expected.txt | 6 - .../evaluate-run-microtasks-expected.txt | 2 +- .../runtime/evaluate-with-generate-preview.js | 1 + .../runtime/exception-thrown-expected.txt | 10 +- .../runtime/get-properties-expected.txt | 20 - .../get-properties-on-proxy-expected.txt | 12 - .../test/inspector/runtime/get-properties.js | 5 +- .../internal-properties-entries-expected.txt | 202 +- .../runtime/internal-properties-entries.js | 3 + .../runtime/internal-properties-expected.txt | 252 +- .../runtime/remote-object-expected.txt | 2965 ++++++++++ .../remote-object-get-properties-expected.txt | 138 + .../runtime/remote-object-get-properties.js | 61 + .../test/inspector/runtime/remote-object.js | 635 +++ ...e-get-properties-and-accessor-expected.txt | 14 +- .../runtime/runtime-restore-expected.txt | 4 +- .../runtime/stable-object-id-expected.txt | 15 - .../inspector/runtime/stable-object-id.js | 87 - .../runtime/terminate-execution-expected.txt | 2 +- .../runtime-console-api-called-expected.txt | 8 +- .../runtime-evaluate-exception-expected.txt | 16 +- .../sessions/runtime-evaluate-exception.js | 4 +- .../runtime-remote-object-expected.txt | 18 - deps/v8/test/inspector/testcfg.py | 1 - .../type-profiler/type-profile-disable.js | 2 - .../type-profiler/type-profile-start-stop.js | 2 - .../type-profile-with-classes.js | 2 - .../type-profile-with-to-string-tag.js | 2 - .../inspector/type-profiler/type-profile.js | 2 - .../intl/break-iterator/default-locale.js | 3 - .../wellformed-unsupported-locale.js | 32 - deps/v8/test/intl/collator/check-co-option.js | 33 + deps/v8/test/intl/collator/check-kf-option.js | 36 + deps/v8/test/intl/collator/check-kn-option.js | 29 + .../test/intl/collator/constructor-order.js | 30 + deps/v8/test/intl/collator/default-locale.js | 4 - deps/v8/test/intl/collator/options.js | 4 - .../collator/wellformed-unsupported-locale.js | 32 - .../test/intl/date-format/check-ca-option.js | 51 + .../test/intl/date-format/check-hc-option.js | 41 + .../test/intl/date-format/check-nu-option.js | 59 + .../test/intl/date-format/default-locale.js | 3 - .../intl/date-format/property-override.js | 20 +- .../wellformed-unsupported-locale.js | 32 - deps/v8/test/intl/default_locale.js | 17 + .../CanonicalizeLocaleListTakeLocale.js | 101 + deps/v8/test/intl/general/invalid-locale.js | 15 - deps/v8/test/intl/intl.status | 21 +- .../intl/list-format/constructor-order.js | 21 + deps/v8/test/intl/list-format/constructor.js | 32 +- deps/v8/test/intl/list-format/format-en.js | 35 +- .../test/intl/list-format/format-to-parts.js | 16 +- deps/v8/test/intl/list-format/format.js | 9 +- .../test/intl/list-format/resolved-options.js | 47 +- .../intl/locale/locale-canonicalization.js | 2 +- .../v8/test/intl/locale/locale-constructor.js | 8 +- deps/v8/test/intl/locale/property.js | 22 + .../intl/number-format/check-nu-option.js | 59 + .../intl/number-format/constructor-order.js | 42 + .../test/intl/number-format/default-locale.js | 3 - .../wellformed-unsupported-locale.js | 32 - .../intl/plural-rules/constructor-order.js | 33 + deps/v8/test/intl/regexp-assert.js | 19 - deps/v8/test/intl/regexp-prepare.js | 5 - deps/v8/test/intl/regress-7481.js | 39 + deps/v8/test/intl/regress-8432.js | 42 + deps/v8/test/intl/regress-8469.js | 87 + deps/v8/test/intl/regress-8525.js | 27 + deps/v8/test/intl/regress-8657.js | 7 + deps/v8/test/intl/regress-895942.js | 6 + deps/v8/test/intl/regress-900013.js | 9 + deps/v8/test/intl/regress-903566.js | 32 + deps/v8/test/intl/regress-917151.js | 11 + .../relative-time-format/constructor-order.js | 21 + .../intl/relative-time-format/constructor.js | 24 - .../format-to-parts-en.js | 41 + .../resolved-options-nu.js | 97 + .../relative-time-format/resolved-options.js | 18 +- .../v8/test/intl/segmenter/check-lb-option.js | 29 + .../test/intl/segmenter/constructor-order.js | 20 + deps/v8/test/intl/segmenter/constructor.js | 48 +- .../test/intl/segmenter/resolved-options.js | 299 - .../segmenter/segment-grapheme-following.js | 38 + .../segmenter/segment-grapheme-iterable.js | 45 + .../intl/segmenter/segment-grapheme-next.js | 40 + .../segmenter/segment-grapheme-preceding.js | 44 + .../test/intl/segmenter/segment-grapheme.js | 29 + .../segmenter/segment-iterator-breakType.js | 11 + .../segmenter/segment-iterator-following.js | 9 + .../segment-iterator-ownPropertyDescriptor.js | 91 + .../segmenter/segment-iterator-position.js | 11 + .../segmenter/segment-iterator-preceding.js | 9 + .../test/intl/segmenter/segment-iterator.js | 12 +- .../segmenter/segment-sentence-following.js | 38 + .../segmenter/segment-sentence-iterable.js | 45 + .../intl/segmenter/segment-sentence-next.js | 40 + .../segmenter/segment-sentence-preceding.js | 44 + .../test/intl/segmenter/segment-sentence.js | 29 + .../intl/segmenter/segment-word-following.js | 38 + .../intl/segmenter/segment-word-iterable.js | 45 + .../test/intl/segmenter/segment-word-next.js | 40 + .../intl/segmenter/segment-word-preceding.js | 44 + deps/v8/test/intl/segmenter/segment-word.js | 29 + deps/v8/test/intl/segmenter/segment.js | 32 + deps/v8/test/intl/segmenter/subclassing.js | 17 + .../test/intl/segmenter/supported-locale.js | 8 +- deps/v8/test/intl/testcfg.py | 5 +- deps/v8/test/js-perf-test/Array/from.js | 99 +- deps/v8/test/js-perf-test/Array/reduce.js | 2 +- .../indexof-includes-polymorphic.js | 41 + .../ArrayIndexOfIncludesPolymorphic/run.js | 23 + .../run.js | 158 + .../run.js | 155 + .../run.js | 3 +- .../run.js | 94 + .../run.js | 121 + .../run.js | 159 + .../run.js | 158 + .../run.js | 93 + .../run.js | 120 + .../AsyncAwait/baseline-babel-es2017.js | 4 +- .../AsyncAwait/baseline-naive-promises.js | 4 +- .../v8/test/js-perf-test/AsyncAwait/native.js | 4 +- deps/v8/test/js-perf-test/Dates/run.js | 20 + .../test/js-perf-test/Dates/toLocaleString.js | 20 + .../test/js-perf-test/Inspector/debugger.js | 2 +- deps/v8/test/js-perf-test/JSTests.json | 243 +- deps/v8/test/js-perf-test/Modules/run.js | 6 +- deps/v8/test/js-perf-test/Numbers/run.js | 1 + .../js-perf-test/Numbers/toLocaleString.js | 14 + deps/v8/test/js-perf-test/RegExp/base.js | 3 +- .../StringIterators/string-iterator.js | 24 +- .../Strings/string-localeCompare.js | 19 + .../js-perf-test/Strings/string-startswith.js | 78 + deps/v8/test/js-perf-test/TypedArrays/base.js | 26 + .../js-perf-test/TypedArrays/join-bigint.js | 8 + .../js-perf-test/TypedArrays/join-float.js | 8 + .../test/js-perf-test/TypedArrays/join-int.js | 8 + .../TypedArrays/join-sep-bigint.js | 8 + .../TypedArrays/join-sep-float.js | 8 + .../js-perf-test/TypedArrays/join-sep-int.js | 8 + deps/v8/test/js-perf-test/TypedArrays/join.js | 38 + deps/v8/test/js-perf-test/TypedArrays/sort.js | 23 +- deps/v8/test/js-perf-test/base.js | 3 +- deps/v8/test/memory/Memory.json | 4 +- .../foo => message/empty.js} | 0 .../foo => message/empty.out} | 0 .../message/fail/arrow-formal-parameters.out | 2 +- .../message/fail/arrow-param-after-rest-2.out | 2 +- .../message/fail/arrow-param-after-rest.out | 2 +- .../message/fail/arrow-two-rest-params.out | 2 +- deps/v8/test/message/fail/call-async.js | 8 + deps/v8/test/message/fail/call-async.out | 6 + deps/v8/test/message/fail/call-await.js | 8 + deps/v8/test/message/fail/call-await.out | 7 + .../fail/call-let.js} | 7 +- deps/v8/test/message/fail/call-let.out | 6 + deps/v8/test/message/fail/call-static.js | 8 + deps/v8/test/message/fail/call-static.out | 6 + deps/v8/test/message/fail/call-yield.js | 8 + deps/v8/test/message/fail/call-yield.out | 6 + .../class-fields-private-source-positions.js | 12 + .../class-fields-private-source-positions.out | 5 + .../class-fields-private-throw-early-2.js} | 13 +- .../class-fields-private-throw-early-2.out | 6 + .../fail/class-fields-private-throw-early.js | 11 + .../fail/class-fields-private-throw-early.out | 4 + .../fail/class-fields-private-throw-read.js | 12 + .../fail/class-fields-private-throw-read.out | 6 + .../fail/class-fields-private-throw-write.js | 12 + .../fail/class-fields-private-throw-write.out | 6 + .../test/message/fail/class-fields-throw.out | 2 +- ...tructuring-undefined-computed-property.out | 2 +- ...estructuring-undefined-number-property.out | 2 +- ...estructuring-undefined-string-property.out | 2 +- deps/v8/test/message/fail/directive.js | 7 + deps/v8/test/message/fail/directive.out | 4 + deps/v8/test/message/fail/get-iterator1.out | 4 +- .../v8/test/message/fail/invalid-spread-2.out | 6 +- deps/v8/test/message/fail/isvar.js | 31 - deps/v8/test/message/fail/isvar.out | 4 - .../message/fail/list-format-style-narrow.js | 7 + .../message/fail/list-format-style-narrow.out | 8 + .../message/fail/modules-duplicate-export5.js | 9 + .../fail/modules-duplicate-export5.out | 5 + .../fail/object-rest-assignment-pattern.out | 2 +- .../fail/object-rest-binding-pattern.out | 2 +- .../fail/param-arrow-redeclaration-as-let.js | 7 + .../fail/param-arrow-redeclaration-as-let.out | 5 + .../param-async-arrow-redeclaration-as-let.js | 7 + ...param-async-arrow-redeclaration-as-let.out | 5 + ...ram-async-function-redeclaration-as-let.js | 7 + ...am-async-function-redeclaration-as-let.out | 5 + .../param-function-redeclaration-as-let.js | 7 + .../param-function-redeclaration-as-let.out | 5 + .../try-catch-lexical-conflict-preparser.js | 10 + .../try-catch-lexical-conflict-preparser.out | 4 + ...parenthesized-exponentiation-expression.js | 7 + ...arenthesized-exponentiation-expression.out | 4 + .../test/message/fail/weak-refs-makecell1.js | 8 + .../test/message/fail/weak-refs-makecell1.out | 6 + .../test/message/fail/weak-refs-makecell2.js | 9 + .../test/message/fail/weak-refs-makecell2.out | 6 + .../message/fail/weak-refs-weakfactory1.js | 7 + .../message/fail/weak-refs-weakfactory1.out | 6 + .../message/fail/weak-refs-weakfactory2.js | 7 + .../message/fail/weak-refs-weakfactory2.out | 6 + deps/v8/test/message/message.status | 14 + ...romise-result-rejects-with-throw-empty.out | 2 +- .../fail/assert-promise-result-rejects.out | 4 +- .../fail/assert-promise-result-resolves.out | 4 +- .../test/message/regress/fail/regress-8409.js | 5 + .../message/regress/fail/regress-8409.out | 4 + .../message/regress/fail/regress-900383.js | 8 + .../message/regress/fail/regress-900383.out | 4 + .../test/message/wasm-function-name-async.out | 4 +- .../message/wasm-function-name-streaming.out | 4 +- .../wasm-module-and-function-name-async.out | 4 +- ...asm-module-and-function-name-streaming.out | 4 +- .../test/message/wasm-module-name-async.out | 4 +- .../message/wasm-module-name-streaming.out | 4 +- deps/v8/test/message/wasm-no-name-async.out | 4 +- .../test/message/wasm-no-name-streaming.out | 4 +- deps/v8/test/mjsunit/BUILD.gn | 3 - deps/v8/test/mjsunit/array-from-large-set.js | 11 + .../mjsunit/array-functions-prototype-misc.js | 14 - .../test/mjsunit/array-indexing-receiver.js | 18 +- ...element-tostring-prototype-side-effects.js | 14 + ...rray-join-element-tostring-side-effects.js | 152 + .../array-join-index-getter-side-effects.js | 108 + .../array-join-invalid-string-length.js | 63 + deps/v8/test/mjsunit/array-join-nesting.js | 16 + ...oin-nonarray-length-getter-side-effects.js | 29 + ...ay-join-separator-tostring-side-effects.js | 197 + deps/v8/test/mjsunit/array-join.js | 14 +- .../v8/test/mjsunit/array-natives-elements.js | 12 +- deps/v8/test/mjsunit/array-sort.js | 21 + deps/v8/test/mjsunit/array-tolocalestring.js | 72 + deps/v8/test/mjsunit/arrow-with.js | 7 + deps/v8/test/mjsunit/asm/regress-913822.js | 25 + deps/v8/test/mjsunit/asm/regress-920076.js | 13 + .../mjsunit/async-hooks/async-await-tree.js | 26 +- .../mjsunit/async-hooks/chained-promises.js | 8 +- .../mjsunit/async-hooks/execution-order.js | 48 +- .../async-hooks/promises-async-await.js | 4 + ...async-stack-traces-prepare-stacktrace-4.js | 39 + .../mjsunit/async-stack-traces-promise-all.js | 38 + deps/v8/test/mjsunit/async-stack-traces.js | 31 + deps/v8/test/mjsunit/code-coverage-ad-hoc.js | 2 +- .../test/mjsunit/code-coverage-block-noopt.js | 2 +- .../test/mjsunit/code-coverage-block-opt.js | 6 + deps/v8/test/mjsunit/code-coverage-block.js | 6 +- .../mjsunit/code-coverage-class-fields.js | 3 +- deps/v8/test/mjsunit/code-coverage-precise.js | 2 +- .../compiler/abstract-equal-receiver.js | 177 + .../compiler/abstract-equal-undetectable.js | 119 + deps/v8/test/mjsunit/compiler/array-every.js | 18 + deps/v8/test/mjsunit/compiler/array-find.js | 18 + .../test/mjsunit/compiler/array-findindex.js | 18 + .../compiler/array-multiple-receiver-maps.js | 2 +- deps/v8/test/mjsunit/compiler/array-some.js | 18 + deps/v8/test/mjsunit/compiler/dataview-get.js | 4 +- .../mjsunit/compiler/dataview-neutered.js | 38 +- .../mjsunit/compiler/deopt-inlined-smi.js | 2 +- .../instance-of-overridden-has-instance.js | 106 + deps/v8/test/mjsunit/compiler/int64.js | 40 + .../lazy-deopt-async-function-resolve.js | 27 + ...ative-context-specialization-hole-check.js | 5 + deps/v8/test/mjsunit/compiler/number-max.js | 14 + deps/v8/test/mjsunit/compiler/number-min.js | 14 + .../test/mjsunit/compiler/number-modulus.js | 230 - .../test/mjsunit/compiler/number-multiply.js | 59 + deps/v8/test/mjsunit/compiler/osr-assert.js | 9 +- .../compiler/promise-resolve-stable-maps.js | 61 + deps/v8/test/mjsunit/compiler/regress-8380.js | 32 + .../test/mjsunit/compiler/regress-902608.js | 16 + .../test/mjsunit/compiler/regress-905555-2.js | 25 + .../test/mjsunit/compiler/regress-905555.js | 25 + .../test/mjsunit/compiler/regress-910838.js | 20 + .../test/mjsunit/compiler/regress-913232.js | 14 + .../test/mjsunit/compiler/regress-919754.js | 15 + .../mjsunit/compiler/strict-equal-number.js | 16 + .../mjsunit/compiler/strict-equal-receiver.js | 152 + deps/v8/test/mjsunit/d8/d8-arguments.js | 7 + deps/v8/test/mjsunit/date.js | 10 + deps/v8/test/mjsunit/elements-kind.js | 15 +- .../mjsunit/es6/array-iterator-detached.js | 8 +- .../test/mjsunit/es6/array-iterator-turbo.js | 2 +- .../mjsunit/es6/array-prototype-values.js | 2 - .../mjsunit/es6/array-spread-large-holey.js | 17 + .../mjsunit/es6/block-eval-var-over-let.js | 24 +- .../test/mjsunit/es6/block-sloppy-function.js | 7 +- deps/v8/test/mjsunit/es6/classes.js | 154 +- ...collections-constructor-custom-iterator.js | 8 + .../mjsunit/es6/destructuring-assignment.js | 55 + deps/v8/test/mjsunit/es6/destructuring.js | 10 + deps/v8/test/mjsunit/es6/map-iterator-1.js | 23 + deps/v8/test/mjsunit/es6/map-iterator-10.js | 34 + deps/v8/test/mjsunit/es6/map-iterator-11.js | 35 + deps/v8/test/mjsunit/es6/map-iterator-2.js | 20 + deps/v8/test/mjsunit/es6/map-iterator-3.js | 22 + deps/v8/test/mjsunit/es6/map-iterator-4.js | 22 + deps/v8/test/mjsunit/es6/map-iterator-5.js | 22 + deps/v8/test/mjsunit/es6/map-iterator-6.js | 20 + deps/v8/test/mjsunit/es6/map-iterator-7.js | 22 + deps/v8/test/mjsunit/es6/map-iterator-8.js | 32 + deps/v8/test/mjsunit/es6/map-iterator-9.js | 30 + .../v8/test/mjsunit/es6/microtask-delivery.js | 2 +- .../mjsunit/es6/regress/regress-5929-1.js | 2 +- .../test/mjsunit/es6/regress/regress-7706.js | 34 +- .../mjsunit/es6/regress/regress-cr895860.js | 14 + deps/v8/test/mjsunit/es6/set-iterator-1.js | 23 + deps/v8/test/mjsunit/es6/set-iterator-10.js | 34 + deps/v8/test/mjsunit/es6/set-iterator-11.js | 33 + deps/v8/test/mjsunit/es6/set-iterator-2.js | 21 + deps/v8/test/mjsunit/es6/set-iterator-3.js | 23 + deps/v8/test/mjsunit/es6/set-iterator-4.js | 23 + deps/v8/test/mjsunit/es6/set-iterator-5.js | 23 + deps/v8/test/mjsunit/es6/set-iterator-6.js | 21 + deps/v8/test/mjsunit/es6/set-iterator-7.js | 23 + deps/v8/test/mjsunit/es6/set-iterator-8.js | 31 + deps/v8/test/mjsunit/es6/set-iterator-9.js | 31 + deps/v8/test/mjsunit/es6/string-iterator.js | 9 + .../es6/typedarray-construct-by-array-like.js | 4 +- .../test/mjsunit/es6/typedarray-copywithin.js | 4 +- deps/v8/test/mjsunit/es6/typedarray-every.js | 14 +- deps/v8/test/mjsunit/es6/typedarray-fill.js | 4 +- deps/v8/test/mjsunit/es6/typedarray-filter.js | 2 +- deps/v8/test/mjsunit/es6/typedarray-find.js | 4 +- .../test/mjsunit/es6/typedarray-findindex.js | 4 +- .../v8/test/mjsunit/es6/typedarray-foreach.js | 10 +- .../typedarray-from-detached-typedarray.js | 23 + .../es6/typedarray-from-next-overridden.js | 29 + .../typedarray-from-nonfunction-iterator.js | 11 + deps/v8/test/mjsunit/es6/typedarray-from.js | 2 +- .../test/mjsunit/es6/typedarray-indexing.js | 6 +- .../test/mjsunit/es6/typedarray-iteration.js | 6 +- deps/v8/test/mjsunit/es6/typedarray-map.js | 2 +- .../test/mjsunit/es6/typedarray-neutered.js | 4 +- deps/v8/test/mjsunit/es6/typedarray-reduce.js | 4 +- .../v8/test/mjsunit/es6/typedarray-reverse.js | 2 +- deps/v8/test/mjsunit/es6/typedarray-slice.js | 4 +- deps/v8/test/mjsunit/es6/typedarray-sort.js | 2 +- .../test/mjsunit/es6/typedarray-tostring.js | 2 +- deps/v8/test/mjsunit/es6/typedarray.js | 34 +- deps/v8/test/mjsunit/es6/unscopables.js | 6 + .../mjsunit/es7/array-includes-receiver.js | 18 +- deps/v8/test/mjsunit/es7/array-includes.js | 28 + .../es8/async-arrow-default-function-await.js | 5 + .../es8/async-arrow-lexical-arguments.js | 2 +- .../es8/async-arrow-lexical-new.target.js | 2 +- .../mjsunit/es8/async-arrow-lexical-super.js | 2 +- .../mjsunit/es8/async-arrow-lexical-this.js | 2 +- deps/v8/test/mjsunit/es8/async-await-basic.js | 30 +- .../mjsunit/es8/async-await-no-constructor.js | 2 +- .../test/mjsunit/es8/async-await-species.js | 2 +- .../test/mjsunit/es8/async-destructuring.js | 6 +- .../mjsunit/es8/async-function-stacktrace.js | 36 +- .../mjsunit/es8/async-function-try-finally.js | 4 +- .../mjsunit/es9/regress/regress-904167.js | 14 + .../mjsunit/for-of-in-catch-duplicate-decl.js | 5 + .../harmony/async-from-sync-iterator.js | 8 +- .../mjsunit/harmony/async-generators-basic.js | 34 +- .../test/mjsunit/harmony/bigint/as-int-n.js | 4 + deps/v8/test/mjsunit/harmony/bigint/misc.js | 8 + .../mjsunit/harmony/bigint/regressions.js | 4 +- .../default-parameter-do-expression.js | 21 - .../do-expressions-arrow-param-scope.js | 95 - .../mjsunit/harmony/do-expressions-control.js | 109 - .../v8/test/mjsunit/harmony/do-expressions.js | 305 - deps/v8/test/mjsunit/harmony/for-await-of.js | 2 +- deps/v8/test/mjsunit/harmony/generators.js | 10 +- deps/v8/test/mjsunit/harmony/hashbang-eval.js | 11 + .../import-from-compilation-errored.js | 2 +- .../harmony/import-from-evaluation-errored.js | 2 +- .../harmony/import-from-fetch-errored.js | 2 +- .../import-from-instantiation-errored.js | 2 +- .../test/mjsunit/harmony/modules-import-1.js | 2 +- .../test/mjsunit/harmony/modules-import-10.js | 2 +- .../test/mjsunit/harmony/modules-import-11.js | 2 +- .../test/mjsunit/harmony/modules-import-12.js | 2 +- .../test/mjsunit/harmony/modules-import-13.js | 4 +- .../test/mjsunit/harmony/modules-import-14.js | 2 +- .../test/mjsunit/harmony/modules-import-15.js | 6 +- .../test/mjsunit/harmony/modules-import-16.js | 6 +- .../test/mjsunit/harmony/modules-import-17.js | 11 + .../test/mjsunit/harmony/modules-import-2.js | 2 +- .../test/mjsunit/harmony/modules-import-3.js | 2 +- .../test/mjsunit/harmony/modules-import-5.js | 2 +- .../test/mjsunit/harmony/modules-import-6.js | 2 +- .../test/mjsunit/harmony/modules-import-7.js | 2 +- .../test/mjsunit/harmony/modules-import-8.js | 6 +- .../test/mjsunit/harmony/modules-import-9.js | 2 +- .../test/mjsunit/harmony/modules-skip-13.js | 6 + .../mjsunit/harmony/object-fromentries.js | 439 ++ .../mjsunit/harmony/private-fields-static.js | 356 ++ .../harmony/public-static-class-fields.js | 13 + .../mjsunit/harmony/regress/regress-4658.js | 21 - .../mjsunit/harmony/regress/regress-4755.js | 45 - .../mjsunit/harmony/regress/regress-4904.js | 24 - .../mjsunit/harmony/regress/regress-546967.js | 16 - .../mjsunit/harmony/regress/regress-897436.js | 12 + .../mjsunit/harmony/regress/regress-912504.js | 11 + .../harmony/regress/regress-crbug-578038.js | 16 - .../string-matchAll-deleted-matchAll.js | 9 + .../test/mjsunit/harmony/weakrefs/basics.js | 214 + .../cleanup-doesnt-iterate-all-cells.js | 89 + .../weakrefs/cleanup-from-different-realm.js | 34 + .../weakrefs/cleanup-is-a-microtask.js | 56 + .../cleanup-proxy-from-different-realm.js | 34 + .../weakrefs/cleanupsome-cleared-weakcell.js | 35 + .../harmony/weakrefs/cleanupsome-weakcell.js | 33 + .../harmony/weakrefs/clear-after-cleanup.js | 46 + .../harmony/weakrefs/clear-before-cleanup.js | 40 + .../harmony/weakrefs/clear-called-twice.js | 39 + .../weakrefs/clear-clears-factory-pointer.js | 49 + .../harmony/weakrefs/clear-inside-cleanup1.js | 41 + .../harmony/weakrefs/clear-inside-cleanup2.js | 40 + .../harmony/weakrefs/clear-inside-cleanup3.js | 41 + .../harmony/weakrefs/clear-inside-cleanup4.js | 48 + .../clear-when-cleanup-already-scheduled.js | 36 + ...ry-scheduled-for-cleanup-multiple-times.js | 71 + .../harmony/weakrefs/iterating-weak-cells.js | 49 + .../weakrefs/multiple-dirty-weak-factories.js | 44 + .../mjsunit/harmony/weakrefs/two-weakrefs.js | 48 + .../harmony/weakrefs/weak-cell-basics.js | 36 + .../weak-factory-keeps-weak-cells-alive.js | 39 + .../harmony/weakrefs/weakcell-and-weakref.js | 45 + .../weakrefs/weakref-creation-keeps-alive.js | 27 + .../weakrefs/weakref-deref-keeps-alive.js | 45 + deps/v8/test/mjsunit/json.js | 4 +- deps/v8/test/mjsunit/messages.js | 12 +- deps/v8/test/mjsunit/mjsunit.js | 15 + deps/v8/test/mjsunit/mjsunit.status | 137 +- .../test/mjsunit/modules-export-star-as1.js | 10 + .../test/mjsunit/modules-export-star-as2.js | 19 + .../test/mjsunit/modules-export-star-as3.js | 15 + deps/v8/test/mjsunit/modules-imports8.js | 11 + deps/v8/test/mjsunit/modules-namespace1.js | 6 +- deps/v8/test/mjsunit/modules-skip-8.js | 5 + deps/v8/test/mjsunit/modules-skip-9.js | 7 + deps/v8/test/mjsunit/neuter-twice.js | 4 +- deps/v8/test/mjsunit/object-seal.js | 4 + deps/v8/test/mjsunit/opt-elements-kind.js | 14 +- deps/v8/test/mjsunit/osr-elements-kind.js | 14 +- .../v8/test/mjsunit/parallel-compile-tasks.js | 70 + deps/v8/test/mjsunit/regexp-override-exec.js | 19 + .../regexp-override-symbol-match-all.js | 12 + .../mjsunit/regexp-override-symbol-match.js | 10 + .../mjsunit/regexp-override-symbol-replace.js | 10 + .../mjsunit/regexp-override-symbol-search.js | 10 + .../mjsunit/regexp-override-symbol-split.js | 10 + deps/v8/test/mjsunit/regexp.js | 16 + deps/v8/test/mjsunit/regress-906893.js | 21 + deps/v8/test/mjsunit/regress-918763.js | 14 + .../regress-regexp-functional-replace-slow.js | 7 + deps/v8/test/mjsunit/regress-v8-8445-2.js | 27 + deps/v8/test/mjsunit/regress-v8-8445.js | 17 + .../test/mjsunit/regress/regress-1199637.js | 25 +- deps/v8/test/mjsunit/regress/regress-2618.js | 6 +- deps/v8/test/mjsunit/regress/regress-2989.js | 7 +- deps/v8/test/mjsunit/regress/regress-334.js | 17 +- .../v8/test/mjsunit/regress/regress-336820.js | 15 +- .../v8/test/mjsunit/regress/regress-353004.js | 18 +- deps/v8/test/mjsunit/regress/regress-4964.js | 12 +- deps/v8/test/mjsunit/regress/regress-5405.js | 2 +- deps/v8/test/mjsunit/regress/regress-5691.js | 2 +- deps/v8/test/mjsunit/regress/regress-6711.js | 21 + .../v8/test/mjsunit/regress/regress-682349.js | 2 +- .../v8/test/mjsunit/regress/regress-707410.js | 2 +- .../v8/test/mjsunit/regress/regress-740694.js | 2 +- .../v8/test/mjsunit/regress/regress-748069.js | 3 + deps/v8/test/mjsunit/regress/regress-7773.js | 71 + .../v8/test/mjsunit/regress/regress-778668.js | 17 +- .../v8/test/mjsunit/regress/regress-797581.js | 2 +- .../v8/test/mjsunit/regress/regress-800651.js | 2 +- .../v8/test/mjsunit/regress/regress-813440.js | 2 +- deps/v8/test/mjsunit/regress/regress-8241.js | 6 + deps/v8/test/mjsunit/regress/regress-8377.js | 24 + deps/v8/test/mjsunit/regress/regress-8384.js | 64 + .../v8/test/mjsunit/regress/regress-840106.js | 2 +- .../v8/test/mjsunit/regress/regress-852765.js | 10 +- deps/v8/test/mjsunit/regress/regress-8607.js | 8 + deps/v8/test/mjsunit/regress/regress-8630.js | 32 + deps/v8/test/mjsunit/regress/regress-8659.js | 5 + deps/v8/test/mjsunit/regress/regress-8708.js | 10 + .../v8/test/mjsunit/regress/regress-896326.js | 11 + .../v8/test/mjsunit/regress/regress-897512.js | 3 +- .../v8/test/mjsunit/regress/regress-897815.js | 16 + .../v8/test/mjsunit/regress/regress-898812.js | 5 + .../v8/test/mjsunit/regress/regress-898936.js | 5 + .../v8/test/mjsunit/regress/regress-899115.js | 13 + .../v8/test/mjsunit/regress/regress-899133.js | 5 + .../v8/test/mjsunit/regress/regress-899474.js | 5 + .../v8/test/mjsunit/regress/regress-899537.js | 5 + .../v8/test/mjsunit/regress/regress-900085.js | 7 + .../v8/test/mjsunit/regress/regress-900585.js | 5 + .../v8/test/mjsunit/regress/regress-900786.js | 5 + .../v8/test/mjsunit/regress/regress-901633.js | 24 + .../v8/test/mjsunit/regress/regress-901798.js | 14 + .../v8/test/mjsunit/regress/regress-902552.js | 11 + .../v8/test/mjsunit/regress/regress-902810.js | 5 + .../v8/test/mjsunit/regress/regress-903527.js | 5 + .../v8/test/mjsunit/regress/regress-903697.js | 12 + .../v8/test/mjsunit/regress/regress-903874.js | 6 + .../v8/test/mjsunit/regress/regress-904255.js | 5 + .../v8/test/mjsunit/regress/regress-904275.js | 30 + .../v8/test/mjsunit/regress/regress-904417.js | 18 + .../v8/test/mjsunit/regress/regress-904707.js | 14 + .../v8/test/mjsunit/regress/regress-905587.js | 5 + .../v8/test/mjsunit/regress/regress-905907.js | 10 + .../v8/test/mjsunit/regress/regress-906406.js | 7 + .../v8/test/mjsunit/regress/regress-907479.js | 23 + .../v8/test/mjsunit/regress/regress-907575.js | 6 + .../v8/test/mjsunit/regress/regress-907669.js | 5 + .../v8/test/mjsunit/regress/regress-908231.js | 8 + .../v8/test/mjsunit/regress/regress-908250.js | 5 + .../v8/test/mjsunit/regress/regress-908975.js | 6 + .../v8/test/mjsunit/regress/regress-913844.js | 7 + .../v8/test/mjsunit/regress/regress-917215.js | 6 + .../v8/test/mjsunit/regress/regress-917755.js | 12 + .../v8/test/mjsunit/regress/regress-917988.js | 31 + .../v8/test/mjsunit/regress/regress-919340.js | 17 + .../v8/test/mjsunit/regress/regress-919710.js | 5 + .../v8/test/mjsunit/regress/regress-921382.js | 5 + .../v8/test/mjsunit/regress/regress-923723.js | 14 + .../regress/regress-cntl-descriptors-enum.js | 11 +- .../mjsunit/regress/regress-crbug-178790.js | 2 + .../mjsunit/regress/regress-crbug-546968.js | 14 - .../mjsunit/regress/regress-crbug-691323.js | 6 +- .../mjsunit/regress/regress-crbug-772056.js | 2 +- .../mjsunit/regress/regress-crbug-781116-1.js | 1 - .../mjsunit/regress/regress-crbug-781116-2.js | 1 - .../mjsunit/regress/regress-crbug-800032.js | 5 +- .../mjsunit/regress/regress-crbug-806388.js | 5 +- .../mjsunit/regress/regress-crbug-860788.js | 2 +- .../mjsunit/regress/regress-crbug-867776.js | 2 +- .../mjsunit/regress/regress-crbug-895199.js | 17 + .../mjsunit/regress/regress-crbug-896181.js | 14 + .../mjsunit/regress/regress-crbug-896700.js | 10 + .../mjsunit/regress/regress-crbug-897098.js | 8 + .../mjsunit/regress/regress-crbug-897404.js | 16 + .../mjsunit/regress/regress-crbug-897406.js | 14 + .../mjsunit/regress/regress-crbug-898785.js | 11 + .../mjsunit/regress/regress-crbug-898974.js | 34 + .../mjsunit/regress/regress-crbug-899464.js | 7 + .../mjsunit/regress/regress-crbug-899535.js | 6 + .../mjsunit/regress/regress-crbug-900674.js | 12 + .../mjsunit/regress/regress-crbug-902395.js | 37 + .../mjsunit/regress/regress-crbug-902610.js | 11 + .../mjsunit/regress/regress-crbug-902672.js | 8 + .../mjsunit/regress/regress-crbug-905457.js | 49 + .../mjsunit/regress/regress-crbug-906043.js | 33 + .../mjsunit/regress/regress-crbug-906220.js | 12 + .../mjsunit/regress/regress-crbug-906870.js | 49 + .../mjsunit/regress/regress-crbug-908309.js | 27 + .../mjsunit/regress/regress-crbug-909614.js | 9 + .../mjsunit/regress/regress-crbug-911416.js | 5 + .../mjsunit/regress/regress-crbug-913212.js | 11 + .../mjsunit/regress/regress-crbug-913296.js | 13 + .../mjsunit/regress/regress-crbug-915783.js | 35 + .../mjsunit/regress/regress-crbug-916288.js | 5 + .../mjsunit/regress/regress-crbug-917076.js | 20 + .../mjsunit/regress/regress-crbug-917980.js | 33 + .../mjsunit/regress/regress-crbug-920184.js | 14 + .../mjsunit/regress/regress-crbug-923264.js | 27 + .../mjsunit/regress/regress-crbug-923265.js | 9 + .../mjsunit/regress/regress-crbug-923705.js | 15 + .../test/mjsunit/regress/regress-directive.js | 10 + ...ess-loop-var-assign-without-block-scope.js | 14 + .../regress/regress-osr-in-case-label.js | 18 - .../mjsunit/regress/regress-osr-in-literal.js | 30 - ...reparse-inner-arrow-duplicate-parameter.js | 5 + ...-sloppy-block-function-hoisting-dynamic.js | 6 + .../test/mjsunit/regress/regress-v8-8357.js | 31 + .../mjsunit/regress/wasm/regress-02256.js | 2 +- .../mjsunit/regress/wasm/regress-651961.js | 2 +- .../mjsunit/regress/wasm/regress-680938.js | 4 +- .../mjsunit/regress/wasm/regress-688876.js | 2 +- .../mjsunit/regress/wasm/regress-699485.js | 2 +- .../mjsunit/regress/wasm/regress-702460.js | 50 +- .../mjsunit/regress/wasm/regress-710844.js | 2 +- .../mjsunit/regress/wasm/regress-734108.js | 2 - .../test/mjsunit/regress/wasm/regress-7353.js | 2 +- .../mjsunit/regress/wasm/regress-736584.js | 2 +- .../mjsunit/regress/wasm/regress-739768.js | 4 +- .../mjsunit/regress/wasm/regress-763439.js | 2 +- .../test/mjsunit/regress/wasm/regress-7914.js | 2 +- .../mjsunit/regress/wasm/regress-803788.js | 2 +- .../mjsunit/regress/wasm/regress-808980.js | 2 +- .../mjsunit/regress/wasm/regress-816226.js | 2 +- .../mjsunit/regress/wasm/regress-817380.js | 2 +- .../mjsunit/regress/wasm/regress-825087a.js | 2 +- .../mjsunit/regress/wasm/regress-825087b.js | 2 +- .../mjsunit/regress/wasm/regress-834619.js | 2 +- .../mjsunit/regress/wasm/regress-834693.js | 2 +- .../test/mjsunit/regress/wasm/regress-8505.js | 204 + .../test/mjsunit/regress/wasm/regress-8533.js | 85 + .../mjsunit/regress/wasm/regress-894307.js | 16 + .../mjsunit/regress/wasm/regress-894374.js | 20 + .../mjsunit/regress/wasm/regress-898932.js | 13 + .../mjsunit/regress/wasm/regress-905815.js | 27 + .../mjsunit/regress/wasm/regress-910824.js | 37 + .../mjsunit/regress/wasm/regress-913804.js | 17 + .../mjsunit/regress/wasm/regress-916869.js | 14 + .../mjsunit/regress/wasm/regress-917412.js | 34 + .../mjsunit/regress/wasm/regress-917588.js | 26 + .../mjsunit/regress/wasm/regress-917588b.js | 55 + .../mjsunit/regress/wasm/regress-918149.js | 12 + .../mjsunit/regress/wasm/regress-918284.js | 21 + .../mjsunit/regress/wasm/regress-918917.js | 22 + .../mjsunit/regress/wasm/regress-919308.js | 37 + .../mjsunit/regress/wasm/regress-919533.js | 25 + .../mjsunit/regress/wasm/regress-922432.js | 21 + .../mjsunit/regress/wasm/regress-922670.js | 32 + .../mjsunit/regress/wasm/regress-922933.js | 52 + deps/v8/test/mjsunit/samevalue.js | 2 +- .../mjsunit/shared-function-tier-up-turbo.js | 4 + deps/v8/test/mjsunit/smi-ops-inlined.js | 2 - deps/v8/test/mjsunit/spread-large-array.js | 13 + deps/v8/test/mjsunit/spread-large-map.js | 17 + deps/v8/test/mjsunit/spread-large-set.js | 21 + deps/v8/test/mjsunit/spread-large-string.js | 13 + .../test/mjsunit/stack-traces-class-fields.js | 16 +- deps/v8/test/mjsunit/test-async.js | 4 +- deps/v8/test/mjsunit/testcfg.py | 25 - .../try-catch-default-destructuring.js | 24 + .../mjsunit/type-profile/regress-707223.js | 2 - .../mjsunit/unicodelctest-no-optimization.js | 1 + deps/v8/test/mjsunit/unicodelctest.js | 1 + deps/v8/test/mjsunit/wasm/OWNERS | 2 - deps/v8/test/mjsunit/wasm/anyfunc.js | 43 + deps/v8/test/mjsunit/wasm/anyref-globals.js | 313 + deps/v8/test/mjsunit/wasm/anyref.js | 70 + .../mjsunit/wasm/asm-wasm-math-intrinsic.js | 295 + deps/v8/test/mjsunit/wasm/async-compile.js | 21 +- deps/v8/test/mjsunit/wasm/atomics-stress.js | 554 ++ deps/v8/test/mjsunit/wasm/atomics64-stress.js | 596 ++ deps/v8/test/mjsunit/wasm/bigint.js | 207 + .../mjsunit/wasm/bounds-check-turbofan.js | 24 + deps/v8/test/mjsunit/wasm/bulk-memory.js | 375 ++ .../mjsunit/wasm/code-space-exhaustion.js | 18 + .../wasm/compiled-module-serialization.js | 6 +- deps/v8/test/mjsunit/wasm/errors.js | 7 +- .../v8/test/mjsunit/wasm/exceptions-anyref.js | 101 + .../test/mjsunit/wasm/exceptions-rethrow.js | 121 + .../v8/test/mjsunit/wasm/exceptions-shared.js | 16 +- deps/v8/test/mjsunit/wasm/exceptions-simd.js | 51 + deps/v8/test/mjsunit/wasm/exceptions-utils.js | 28 + deps/v8/test/mjsunit/wasm/exceptions.js | 292 +- .../mjsunit/wasm/export-mutable-global.js | 2 - deps/v8/test/mjsunit/wasm/futex.js | 310 + .../v8/test/mjsunit/wasm/graceful_shutdown.js | 2 +- .../mjsunit/wasm/grow-memory-detaching.js | 2 +- .../mjsunit/wasm/grow-memory-in-branch.js | 52 +- .../test/mjsunit/wasm/grow-memory-in-call.js | 60 +- .../test/mjsunit/wasm/grow-memory-in-loop.js | 28 +- deps/v8/test/mjsunit/wasm/grow-memory.js | 120 +- deps/v8/test/mjsunit/wasm/huge-memory.js | 25 +- deps/v8/test/mjsunit/wasm/import-memory.js | 26 +- .../mjsunit/wasm/import-mutable-global.js | 2 +- deps/v8/test/mjsunit/wasm/import-table.js | 36 +- deps/v8/test/mjsunit/wasm/indirect-calls.js | 216 +- deps/v8/test/mjsunit/wasm/indirect-tables.js | 53 +- .../mjsunit/wasm/instance-memory-gc-stress.js | 2 +- .../v8/test/mjsunit/wasm/interpreter-mixed.js | 4 +- deps/v8/test/mjsunit/wasm/interpreter.js | 27 +- deps/v8/test/mjsunit/wasm/js-api.js | 91 +- deps/v8/test/mjsunit/wasm/jsapi-harness.js | 139 - deps/v8/test/mjsunit/wasm/large-offset.js | 8 +- deps/v8/test/mjsunit/wasm/liftoff.js | 3 +- deps/v8/test/mjsunit/wasm/loop-rotation.js | 77 + .../wasm/memory-instance-validation.js | 2 +- deps/v8/test/mjsunit/wasm/memory.js | 18 +- deps/v8/test/mjsunit/wasm/mutable-globals.js | 6 +- .../v8/test/mjsunit/wasm/streaming-compile.js | 2 +- .../mjsunit/wasm/streaming-error-position.js | 2 +- .../mjsunit/wasm/streaming-trap-location.js | 2 +- deps/v8/test/mjsunit/wasm/table-copy.js | 275 + deps/v8/test/mjsunit/wasm/table-grow.js | 12 +- deps/v8/test/mjsunit/wasm/table.js | 53 +- deps/v8/test/mjsunit/wasm/wasm-constants.js | 58 +- .../test/mjsunit/wasm/wasm-math-intrinsic.js | 257 + .../test/mjsunit/wasm/wasm-module-builder.js | 173 +- deps/v8/test/mkgrokdump/mkgrokdump.cc | 12 +- deps/v8/test/mkgrokdump/mkgrokdump.status | 6 +- deps/v8/test/test262/BUILD.gn | 3 +- deps/v8/test/test262/detachArrayBuffer.js | 2 +- .../test262/harness-adapt-donotevaluate.js | 12 + deps/v8/test/test262/test262.status | 1221 ++-- deps/v8/test/test262/testcfg.py | 72 +- deps/v8/test/torque/test-torque.tq | 212 +- deps/v8/test/unittests/BUILD.gn | 30 +- .../v8/test/unittests/api/isolate-unittest.cc | 4 +- .../unittests/asmjs/asm-types-unittest.cc | 2 +- .../unittests/asmjs/switch-logic-unittest.cc | 89 - .../assembler/turbo-assembler-arm-unittest.cc | 22 +- .../turbo-assembler-arm64-unittest.cc | 22 +- .../turbo-assembler-ia32-unittest.cc | 22 +- .../turbo-assembler-mips-unittest.cc | 22 +- .../turbo-assembler-mips64-unittest.cc | 22 +- .../assembler/turbo-assembler-ppc-unittest.cc | 22 +- .../turbo-assembler-s390-unittest.cc | 22 +- .../assembler/turbo-assembler-x64-unittest.cc | 22 +- ...cc => background-compile-task-unittest.cc} | 180 +- .../unittests/base/atomic-utils-unittest.cc | 18 +- .../test/unittests/base/ieee754-unittest.cc | 9 +- .../test/unittests/base/logging-unittest.cc | 3 +- .../platform/condition-variable-unittest.cc | 30 +- .../unittests/base/platform/mutex-unittest.cc | 8 +- .../unittests/base/threaded-list-unittest.cc | 31 +- .../unittests/cancelable-tasks-unittest.cc | 330 +- .../unittests/char-predicates-unittest.cc | 217 +- .../unittests/code-stub-assembler-unittest.cc | 10 +- .../compiler-dispatcher-tracer-unittest.cc | 47 - .../compiler-dispatcher-unittest.cc | 475 +- .../optimizing-compile-dispatcher-unittest.cc | 3 + .../arm/instruction-selector-arm-unittest.cc | 2 +- .../instruction-selector-arm64-unittest.cc | 16 +- .../instruction-selector-unittest.cc | 35 +- .../instruction-selector-unittest.h | 6 +- .../instruction-sequence-unittest.cc | 87 +- .../instruction-sequence-unittest.h | 17 +- .../{ => backend}/instruction-unittest.cc | 2 +- .../compiler/code-assembler-unittest.cc | 38 + .../constant-folding-reducer-unittest.cc | 44 +- .../test/unittests/compiler/graph-unittest.cc | 13 +- .../test/unittests/compiler/graph-unittest.h | 7 +- .../instruction-selector-ia32-unittest.cc | 2 +- .../compiler/js-call-reducer-unittest.cc | 25 +- .../compiler/js-create-lowering-unittest.cc | 6 +- ...-native-context-specialization-unittest.cc | 12 +- .../compiler/js-typed-lowering-unittest.cc | 5 +- .../unittests/compiler/live-range-builder.h | 78 - .../machine-operator-reducer-unittest.cc | 22 +- .../compiler/machine-operator-unittest.cc | 3 - deps/v8/test/unittests/compiler/mips/OWNERS | 5 +- .../instruction-selector-mips-unittest.cc | 2 +- deps/v8/test/unittests/compiler/mips64/OWNERS | 5 +- .../instruction-selector-mips64-unittest.cc | 2 +- .../unittests/compiler/node-test-utils.cc | 11 +- .../test/unittests/compiler/node-test-utils.h | 10 + .../unittests/compiler/persistent-unittest.cc | 24 +- deps/v8/test/unittests/compiler/ppc/OWNERS | 3 +- .../ppc/instruction-selector-ppc-unittest.cc | 2 +- .../redundancy-elimination-unittest.cc | 207 +- .../compiler/regalloc/live-range-unittest.cc | 60 +- .../regalloc/move-optimizer-unittest.cc | 11 +- .../regalloc/register-allocator-unittest.cc | 24 +- deps/v8/test/unittests/compiler/s390/OWNERS | 3 +- .../instruction-selector-s390-unittest.cc | 2 +- .../compiler/simplified-lowering-unittest.cc | 6 +- .../simplified-operator-reducer-unittest.cc | 5 +- .../compiler/typed-optimization-unittest.cc | 3 +- .../test/unittests/compiler/typer-unittest.cc | 34 +- .../x64/instruction-selector-x64-unittest.cc | 108 +- .../unittests/compiler/zone-stats-unittest.cc | 2 +- .../v8/test/unittests/conversions-unittest.cc | 76 + .../unittests/detachable-vector-unittest.cc | 60 + .../test/unittests/heap/barrier-unittest.cc | 22 +- .../heap/embedder-tracing-unittest.cc | 83 +- .../test/unittests/heap/gc-tracer-unittest.cc | 26 +- deps/v8/test/unittests/heap/heap-unittest.cc | 36 +- .../test/unittests/heap/marking-unittest.cc | 8 +- .../test/unittests/heap/slot-set-unittest.cc | 95 +- .../v8/test/unittests/heap/spaces-unittest.cc | 21 +- .../test/unittests/heap/unmapper-unittest.cc | 299 +- .../bytecode-array-builder-unittest.cc | 11 +- .../bytecode-array-iterator-unittest.cc | 7 +- ...bytecode-array-random-iterator-unittest.cc | 43 +- .../interpreter/bytecode-decoder-unittest.cc | 7 +- .../interpreter/bytecodes-unittest.cc | 2 +- .../constant-array-builder-unittest.cc | 16 +- .../unittests/microtask-queue-unittest.cc | 187 + .../objects/microtask-queue-unittest.cc | 55 - .../register-configuration-unittest.cc | 16 +- deps/v8/test/unittests/test-helpers.cc | 2 +- deps/v8/test/unittests/test-helpers.h | 1 - deps/v8/test/unittests/test-utils.cc | 105 +- deps/v8/test/unittests/test-utils.h | 295 +- .../test/unittests/torque/torque-unittest.cc | 21 + deps/v8/test/unittests/unicode-unittest.cc | 3 +- deps/v8/test/unittests/unittests.status | 7 + deps/v8/test/unittests/utils-unittest.cc | 68 + .../unittests/value-serializer-unittest.cc | 218 +- deps/v8/test/unittests/wasm/OWNERS | 2 - .../test/unittests/wasm/decoder-unittest.cc | 4 +- .../wasm/function-body-decoder-unittest.cc | 337 +- .../unittests/wasm/module-decoder-unittest.cc | 1939 +++---- .../wasm/streaming-decoder-unittest.cc | 82 +- ...test.cc => trap-handler-posix-unittest.cc} | 4 +- .../wasm/trap-handler-win-unittest.cc | 93 + .../wasm/trap-handler-x64-unittest.cc | 478 ++ .../wasm/wasm-code-manager-unittest.cc | 137 +- .../unittests/wasm/wasm-compiler-unittest.cc | 71 + deps/v8/test/wasm-js/BUILD.gn | 17 + deps/v8/test/wasm-js/LICENSE.testharness | 30 + deps/v8/test/wasm-js/testcfg.py | 74 + deps/v8/test/wasm-js/testharness-after.js | 16 + deps/v8/test/wasm-js/testharness.js | 148 + deps/v8/test/wasm-js/wasm-js.status | 27 + .../v8/test/wasm-spec-tests/tests.tar.gz.sha1 | 2 +- .../wasm-spec-tests/wasm-spec-tests.status | 7 + deps/v8/test/webkit/array-holes-expected.txt | 2 +- deps/v8/test/webkit/array-holes.js | 2 +- .../class-syntax-semicolon-expected.txt | 3 - deps/v8/test/webkit/class-syntax-semicolon.js | 3 - .../webkit/fast/js/kde/delete-expected.txt | 2 +- deps/v8/test/webkit/fast/js/kde/delete.js | 2 +- deps/v8/test/webkit/fast/js/kde/exceptions.js | 2 +- .../fast/js/toString-overrides-expected.txt | 4 +- .../webkit/fast/regex/toString-expected.txt | 8 +- deps/v8/test/webkit/nested-functions.js | 2 +- .../webkit/propertyIsEnumerable-expected.txt | 2 +- deps/v8/test/webkit/propertyIsEnumerable.js | 2 +- .../test/webkit/resources/JSON-stringify.js | 30 +- .../test/webkit/resources/json2-es5-compat.js | 12 +- .../webkit/run-json-stringify-expected.txt | 29 +- deps/v8/test/webkit/webkit.status | 19 +- deps/v8/third_party/binutils/download.py | 15 +- deps/v8/third_party/googletest/BUILD.gn | 12 +- .../v8/third_party/googletest/README.chromium | 2 +- .../inspector_protocol/CodeGenerator.py | 6 - .../ConvertProtocolToJSON.py | 10 - .../third_party/inspector_protocol/README.md | 18 + .../third_party/inspector_protocol/README.v8 | 2 +- .../check_protocol_compatibility.py | 5 + .../inspector_protocol/code_generator.py | 19 + .../convert_protocol_to_json.py | 22 +- .../lib/Allocator_h.template | 7 - .../lib/Collections_h.template | 0 .../lib/DispatcherBase_cpp.template | 16 +- .../inspector_protocol/lib/Forward_h.template | 1 + .../inspector_protocol/lib/Maybe_h.template | 9 + .../inspector_protocol/lib/Object_h.template | 2 +- .../lib/ValueConversions_h.template | 22 + deps/v8/third_party/inspector_protocol/pdl.py | 21 +- deps/v8/third_party/v8/builtins/array-sort.tq | 187 +- deps/v8/tools/BUILD.gn | 1 + deps/v8/tools/{unittests => }/PRESUBMIT.py | 3 +- deps/v8/tools/blink_tests/TestExpectations | 7 - deps/v8/tools/callstats.html | 14 +- deps/v8/tools/callstats.py | 2 + deps/v8/tools/check-unused-symbols.sh | 24 + deps/v8/tools/clusterfuzz/v8_mock_archs.js | 17 +- deps/v8/tools/deprecation_stats.py | 105 + deps/v8/tools/dev/gm.py | 59 +- deps/v8/tools/gdbinit | 33 +- deps/v8/tools/gen-keywords-gen-h.py | 252 + deps/v8/tools/gen-postmortem-metadata.py | 25 +- .../tools/generate-header-include-checks.py | 16 +- deps/v8/tools/heap-stats/categories.js | 28 +- deps/v8/tools/heap-stats/index.html | 1 - .../tools/heap-stats/trace-file-reader.html | 8 +- deps/v8/tools/heap-stats/trace-file-reader.js | 5 +- deps/v8/tools/ic-explorer.html | 23 +- deps/v8/tools/ic-processor.js | 10 + deps/v8/tools/js2c.py | 239 +- deps/v8/tools/jsfunfuzz/fuzz-harness.sh | 19 +- deps/v8/tools/jsfunfuzz/jsfunfuzz.tar.gz.sha1 | 2 +- deps/v8/tools/jsmin.py | 298 - deps/v8/tools/linux-tick-processor | 4 +- deps/v8/tools/locs.py | 376 ++ deps/v8/tools/map-processor | 2 +- deps/v8/tools/map-processor.html | 432 +- deps/v8/tools/map-processor.js | 26 +- deps/v8/tools/mb/docs/design_spec.md | 2 +- deps/v8/tools/mb/docs/user_guide.md | 4 +- deps/v8/tools/node/README.md | 12 + deps/v8/tools/node/backport_node.py | 126 - deps/v8/tools/node/fetch_deps.py | 2 - deps/v8/tools/node/test_backport_node.py | 70 - deps/v8/tools/node/update_node.py | 3 +- deps/v8/tools/parse-processor | 2 +- deps/v8/tools/parse-processor.html | 27 +- deps/v8/tools/plot-timer-events | 2 +- deps/v8/tools/profview/profview.js | 15 +- deps/v8/tools/release/auto_roll.py | 5 +- deps/v8/tools/release/common_includes.py | 2 +- deps/v8/tools/release/create_release.py | 11 +- deps/v8/tools/release/filter_build_files.py | 1 + deps/v8/tools/release/git_recipes.py | 8 +- deps/v8/tools/release/test_scripts.py | 9 +- deps/v8/tools/run-clang-tidy.py | 3 +- deps/v8/tools/run-tests.py.vpython | 32 - deps/v8/tools/run_perf.py | 60 +- .../v8/tools/sanitizers/tsan_suppressions.txt | 4 - deps/v8/tools/snapshot/asm_to_inline_asm.py | 31 + deps/v8/tools/testrunner/base_runner.py | 80 +- deps/v8/tools/testrunner/local/android.py | 21 +- .../fake_testsuite/fake_testsuite.status | 5 + .../local/fake_testsuite/testcfg.py | 23 + deps/v8/tools/testrunner/local/statusfile.py | 3 +- deps/v8/tools/testrunner/local/testsuite.py | 119 +- .../testrunner/local/testsuite_unittest.py | 128 +- deps/v8/tools/testrunner/num_fuzzer.py | 36 +- deps/v8/tools/testrunner/objects/testcase.py | 9 +- deps/v8/tools/testrunner/outproc/test262.py | 35 +- deps/v8/tools/testrunner/standard_runner.py | 11 +- deps/v8/tools/testrunner/test_config.py | 2 + deps/v8/tools/testrunner/testproc/fuzzer.py | 11 +- deps/v8/tools/testrunner/testproc/progress.py | 25 +- deps/v8/tools/tick-processor.html | 6 +- deps/v8/tools/torque/format-torque.py | 128 +- .../tools/torque/vim-torque/syntax/torque.vim | 8 +- .../syntaxes/torque.tmLanguage.json | 4 +- deps/v8/tools/try_perf.py | 54 +- deps/v8/tools/turbolizer/README.md | 7 +- deps/v8/tools/turbolizer/deploy.sh | 18 +- deps/v8/tools/turbolizer/expand-all.jpg | Bin 2839 -> 0 bytes .../hide-selected-icon.png} | Bin .../hide-unselected-icon.png} | Bin .../turbolizer/{ => img}/layout-icon.png | Bin .../v8/tools/turbolizer/img/show-all-icon.png | Bin 0 -> 4915 bytes .../turbolizer/img/show-control-icon.png | Bin 0 -> 5749 bytes .../toggle-hide-dead-icon.png} | Bin .../{types.png => img/toggle-types-icon.png} | Bin .../zoom-selection-icon.png} | Bin deps/v8/tools/turbolizer/index.html | 103 +- deps/v8/tools/turbolizer/info-view.html | 119 + deps/v8/tools/turbolizer/package-lock.json | 2604 +++++++-- deps/v8/tools/turbolizer/package.json | 25 +- deps/v8/tools/turbolizer/rollup.config.js | 24 +- deps/v8/tools/turbolizer/src/code-view.ts | 105 +- .../tools/turbolizer/src/disassembly-view.ts | 364 +- deps/v8/tools/turbolizer/src/edge.ts | 70 +- deps/v8/tools/turbolizer/src/graph-layout.ts | 342 +- deps/v8/tools/turbolizer/src/graph-view.ts | 818 ++- deps/v8/tools/turbolizer/src/graph.ts | 107 + .../v8/tools/turbolizer/src/graphmultiview.ts | 110 +- deps/v8/tools/turbolizer/src/info-view.ts | 17 + .../tools/turbolizer/src/lang-disassembly.ts | 14 - deps/v8/tools/turbolizer/src/node-label.ts | 86 + deps/v8/tools/turbolizer/src/node.ts | 166 +- deps/v8/tools/turbolizer/src/resizer.ts | 199 + deps/v8/tools/turbolizer/src/schedule-view.ts | 100 +- .../tools/turbolizer/src/selection-broker.ts | 44 +- .../tools/turbolizer/src/selection-handler.ts | 25 +- deps/v8/tools/turbolizer/src/selection.ts | 18 +- deps/v8/tools/turbolizer/src/sequence-view.ts | 93 +- .../tools/turbolizer/src/source-resolver.ts | 251 +- deps/v8/tools/turbolizer/src/tabs.ts | 114 + deps/v8/tools/turbolizer/src/text-view.ts | 133 +- .../tools/turbolizer/src/turbo-visualizer.ts | 305 +- deps/v8/tools/turbolizer/src/util.ts | 71 +- deps/v8/tools/turbolizer/src/view.ts | 39 +- deps/v8/tools/turbolizer/tabs.css | 55 + .../turbolizer/test/source-resolver-test.ts | 10 + deps/v8/tools/turbolizer/tsconfig.json | 67 +- deps/v8/tools/turbolizer/tsconfig.test.json | 6 + deps/v8/tools/turbolizer/tslint.json | 45 + deps/v8/tools/turbolizer/turbo-visualizer.css | 652 ++- deps/v8/tools/ubsan/blacklist.txt | 6 +- deps/v8/tools/unittests/run_perf_test.py | 27 +- deps/v8/tools/unittests/run_tests_test.py | 175 +- .../testdata/testroot1/v8_build_config.json | 6 +- .../testdata/testroot2/v8_build_config.json | 6 +- deps/v8/tools/update-object-macros-undef.py | 46 + deps/v8/tools/v8_presubmit.py | 28 +- deps/v8/tools/v8heapconst.py | 654 ++- deps/v8/tools/wasm/update-wasm-spec-tests.sh | 8 +- .../v8/tools/wasm/wasm-import-profiler-end.js | 6 + deps/v8/tools/wasm/wasm-import-profiler.js | 131 + deps/v8/tools/whitespace.txt | 2 +- 2728 files changed, 168630 insertions(+), 116726 deletions(-) create mode 100644 deps/v8/benchmarks/micro/slice-perf.js delete mode 100644 deps/v8/include/PRESUBMIT.py create mode 100644 deps/v8/include/v8-wasm-trap-handler-posix.h create mode 100644 deps/v8/include/v8-wasm-trap-handler-win.h delete mode 100644 deps/v8/src/PRESUBMIT.py delete mode 100644 deps/v8/src/arm/code-stubs-arm.cc delete mode 100644 deps/v8/src/arm/code-stubs-arm.h delete mode 100644 deps/v8/src/arm/codegen-arm.cc create mode 100644 deps/v8/src/arm/register-arm.h delete mode 100644 deps/v8/src/arm64/code-stubs-arm64.cc delete mode 100644 deps/v8/src/arm64/code-stubs-arm64.h delete mode 100644 deps/v8/src/arm64/codegen-arm64.cc create mode 100644 deps/v8/src/arm64/register-arm64.cc create mode 100644 deps/v8/src/arm64/register-arm64.h delete mode 100644 deps/v8/src/asmjs/switch-logic.cc delete mode 100644 deps/v8/src/asmjs/switch-logic.h delete mode 100644 deps/v8/src/assembler-arch-inl.h delete mode 100644 deps/v8/src/ast/context-slot-cache.cc delete mode 100644 deps/v8/src/ast/context-slot-cache.h delete mode 100644 deps/v8/src/ast/scopes-inl.h create mode 100644 deps/v8/src/base/enum-set.h create mode 100644 deps/v8/src/base/overflowing-math.h create mode 100644 deps/v8/src/base/small-vector.h create mode 100644 deps/v8/src/builtins/arguments.tq create mode 100644 deps/v8/src/builtins/array-filter.tq create mode 100644 deps/v8/src/builtins/array-join.tq create mode 100644 deps/v8/src/builtins/array-of.tq create mode 100644 deps/v8/src/builtins/array-slice.tq create mode 100644 deps/v8/src/builtins/builtins-bigint-gen.cc create mode 100644 deps/v8/src/builtins/builtins-collections-gen.h create mode 100644 deps/v8/src/builtins/builtins-extras-utils.cc delete mode 100644 deps/v8/src/builtins/builtins-interpreter.cc create mode 100644 deps/v8/src/builtins/builtins-microtask-queue-gen.cc create mode 100644 deps/v8/src/builtins/builtins-object-gen.h create mode 100644 deps/v8/src/builtins/builtins-promise.h delete mode 100644 deps/v8/src/builtins/builtins-test-gen.h create mode 100644 deps/v8/src/builtins/builtins-weak-refs.cc create mode 100644 deps/v8/src/builtins/collections.tq create mode 100644 deps/v8/src/builtins/extras-utils.tq create mode 100644 deps/v8/src/builtins/frames.tq create mode 100644 deps/v8/src/builtins/iterator.tq create mode 100644 deps/v8/src/builtins/object-fromentries.tq create mode 100644 deps/v8/src/builtins/object.tq create mode 100644 deps/v8/src/builtins/typed-array-createtypedarray.tq create mode 100644 deps/v8/src/code-comments.cc create mode 100644 deps/v8/src/code-comments.h delete mode 100644 deps/v8/src/code-stubs-utils.h delete mode 100644 deps/v8/src/code-stubs.cc delete mode 100644 deps/v8/src/code-stubs.h delete mode 100644 deps/v8/src/codegen.cc delete mode 100644 deps/v8/src/codegen.h delete mode 100644 deps/v8/src/compiler-dispatcher/compiler-dispatcher-job.cc delete mode 100644 deps/v8/src/compiler-dispatcher/compiler-dispatcher-job.h delete mode 100644 deps/v8/src/compiler-dispatcher/compiler-dispatcher-tracer.cc delete mode 100644 deps/v8/src/compiler-dispatcher/compiler-dispatcher-tracer.h delete mode 100644 deps/v8/src/compiler-dispatcher/unoptimized-compile-job.cc delete mode 100644 deps/v8/src/compiler-dispatcher/unoptimized-compile-job.h create mode 100644 deps/v8/src/compiler/allocation-builder-inl.h create mode 100644 deps/v8/src/compiler/backend/OWNERS rename deps/v8/src/compiler/{ => backend}/arm/code-generator-arm.cc (97%) rename deps/v8/src/compiler/{ => backend}/arm/instruction-codes-arm.h (98%) rename deps/v8/src/compiler/{ => backend}/arm/instruction-scheduler-arm.cc (98%) rename deps/v8/src/compiler/{ => backend}/arm/instruction-selector-arm.cc (99%) rename deps/v8/src/compiler/{ => backend}/arm/unwinding-info-writer-arm.cc (78%) rename deps/v8/src/compiler/{ => backend}/arm/unwinding-info-writer-arm.h (89%) rename deps/v8/src/compiler/{ => backend}/arm64/code-generator-arm64.cc (96%) rename deps/v8/src/compiler/{ => backend}/arm64/instruction-codes-arm64.h (98%) rename deps/v8/src/compiler/{ => backend}/arm64/instruction-scheduler-arm64.cc (99%) rename deps/v8/src/compiler/{ => backend}/arm64/instruction-selector-arm64.cc (99%) rename deps/v8/src/compiler/{ => backend}/arm64/unwinding-info-writer-arm64.cc (77%) rename deps/v8/src/compiler/{ => backend}/arm64/unwinding-info-writer-arm64.h (88%) rename deps/v8/src/compiler/{ => backend}/code-generator-impl.h (96%) rename deps/v8/src/compiler/{ => backend}/code-generator.cc (87%) rename deps/v8/src/compiler/{ => backend}/code-generator.h (96%) rename deps/v8/src/compiler/{ => backend}/frame-elider.cc (99%) rename deps/v8/src/compiler/{ => backend}/frame-elider.h (83%) rename deps/v8/src/compiler/{ => backend}/gap-resolver.cc (84%) rename deps/v8/src/compiler/{ => backend}/gap-resolver.h (89%) rename deps/v8/src/compiler/{ => backend}/ia32/code-generator-ia32.cc (93%) rename deps/v8/src/compiler/{ => backend}/ia32/instruction-codes-ia32.h (98%) rename deps/v8/src/compiler/{ => backend}/ia32/instruction-scheduler-ia32.cc (98%) rename deps/v8/src/compiler/{ => backend}/ia32/instruction-selector-ia32.cc (97%) rename deps/v8/src/compiler/{ => backend}/instruction-codes.h (91%) rename deps/v8/src/compiler/{ => backend}/instruction-scheduler.cc (95%) rename deps/v8/src/compiler/{ => backend}/instruction-scheduler.h (92%) rename deps/v8/src/compiler/{ => backend}/instruction-selector-impl.h (97%) rename deps/v8/src/compiler/{ => backend}/instruction-selector.cc (97%) rename deps/v8/src/compiler/{ => backend}/instruction-selector.h (98%) rename deps/v8/src/compiler/{ => backend}/instruction.cc (84%) rename deps/v8/src/compiler/{ => backend}/instruction.h (94%) rename deps/v8/src/compiler/{ => backend}/jump-threading.cc (93%) rename deps/v8/src/compiler/{ => backend}/jump-threading.h (84%) rename deps/v8/src/compiler/{ => backend}/live-range-separator.cc (66%) rename deps/v8/src/compiler/{ => backend}/live-range-separator.h (90%) create mode 100644 deps/v8/src/compiler/backend/mips/OWNERS rename deps/v8/src/compiler/{ => backend}/mips/code-generator-mips.cc (92%) rename deps/v8/src/compiler/{ => backend}/mips/instruction-codes-mips.h (98%) rename deps/v8/src/compiler/{ => backend}/mips/instruction-scheduler-mips.cc (99%) rename deps/v8/src/compiler/{ => backend}/mips/instruction-selector-mips.cc (95%) create mode 100644 deps/v8/src/compiler/backend/mips64/OWNERS rename deps/v8/src/compiler/{ => backend}/mips64/code-generator-mips64.cc (94%) rename deps/v8/src/compiler/{ => backend}/mips64/instruction-codes-mips64.h (98%) rename deps/v8/src/compiler/{ => backend}/mips64/instruction-scheduler-mips64.cc (99%) rename deps/v8/src/compiler/{ => backend}/mips64/instruction-selector-mips64.cc (96%) rename deps/v8/src/compiler/{ => backend}/move-optimizer.cc (99%) rename deps/v8/src/compiler/{ => backend}/move-optimizer.h (91%) create mode 100644 deps/v8/src/compiler/backend/ppc/OWNERS rename deps/v8/src/compiler/{ => backend}/ppc/code-generator-ppc.cc (90%) create mode 100644 deps/v8/src/compiler/backend/ppc/instruction-codes-ppc.h rename deps/v8/src/compiler/{ => backend}/ppc/instruction-scheduler-ppc.cc (68%) rename deps/v8/src/compiler/{ => backend}/ppc/instruction-selector-ppc.cc (91%) rename deps/v8/src/compiler/{ => backend}/register-allocator-verifier.cc (98%) rename deps/v8/src/compiler/{ => backend}/register-allocator-verifier.h (97%) rename deps/v8/src/compiler/{ => backend}/register-allocator.cc (89%) rename deps/v8/src/compiler/{ => backend}/register-allocator.h (91%) create mode 100644 deps/v8/src/compiler/backend/s390/OWNERS rename deps/v8/src/compiler/{ => backend}/s390/code-generator-s390.cc (73%) create mode 100644 deps/v8/src/compiler/backend/s390/instruction-codes-s390.h rename deps/v8/src/compiler/{ => backend}/s390/instruction-scheduler-s390.cc (94%) rename deps/v8/src/compiler/{ => backend}/s390/instruction-selector-s390.cc (96%) rename deps/v8/src/compiler/{ => backend}/unwinding-info-writer.h (73%) rename deps/v8/src/compiler/{ => backend}/x64/code-generator-x64.cc (86%) rename deps/v8/src/compiler/{ => backend}/x64/instruction-codes-x64.h (89%) rename deps/v8/src/compiler/{ => backend}/x64/instruction-scheduler-x64.cc (90%) rename deps/v8/src/compiler/{ => backend}/x64/instruction-selector-x64.cc (85%) rename deps/v8/src/compiler/{ => backend}/x64/unwinding-info-writer-x64.cc (70%) rename deps/v8/src/compiler/{ => backend}/x64/unwinding-info-writer-x64.h (90%) delete mode 100644 deps/v8/src/compiler/mips/OWNERS delete mode 100644 deps/v8/src/compiler/mips64/OWNERS delete mode 100644 deps/v8/src/compiler/ppc/OWNERS delete mode 100644 deps/v8/src/compiler/ppc/instruction-codes-ppc.h delete mode 100644 deps/v8/src/compiler/s390/OWNERS delete mode 100644 deps/v8/src/compiler/s390/instruction-codes-s390.h create mode 100644 deps/v8/src/compiler/serializer-for-background-compilation.cc create mode 100644 deps/v8/src/compiler/serializer-for-background-compilation.h create mode 100644 deps/v8/src/constant-pool.cc create mode 100644 deps/v8/src/constant-pool.h create mode 100644 deps/v8/src/constants-arch.h create mode 100644 deps/v8/src/cpu-features.h rename deps/v8/src/{d8.js => d8-js.cc} (92%) create mode 100644 deps/v8/src/d8-platforms.cc create mode 100644 deps/v8/src/d8-platforms.h create mode 100644 deps/v8/src/debug/debug-property-iterator.cc create mode 100644 deps/v8/src/debug/debug-property-iterator.h create mode 100644 deps/v8/src/detachable-vector.cc create mode 100644 deps/v8/src/heap/slot-set.cc delete mode 100644 deps/v8/src/ia32/code-stubs-ia32.cc delete mode 100644 deps/v8/src/ia32/codegen-ia32.cc create mode 100644 deps/v8/src/ia32/register-ia32.h delete mode 100644 deps/v8/src/ia32/simulator-ia32.cc delete mode 100644 deps/v8/src/ia32/simulator-ia32.h delete mode 100644 deps/v8/src/inspector/PRESUBMIT.py delete mode 100644 deps/v8/src/inspector/build/check_injected_script_source.py delete mode 100644 deps/v8/src/inspector/build/closure-compiler.tar.gz.sha1 delete mode 100755 deps/v8/src/inspector/build/compile-scripts.py delete mode 100755 deps/v8/src/inspector/build/generate_protocol_externs.py delete mode 100755 deps/v8/src/inspector/build/rjsmin.py delete mode 100644 deps/v8/src/inspector/build/xxd.py create mode 100644 deps/v8/src/inspector/custom-preview.cc create mode 100644 deps/v8/src/inspector/custom-preview.h delete mode 100644 deps/v8/src/inspector/injected-script-source.js delete mode 100644 deps/v8/src/inspector/injected_script_externs.js delete mode 100644 deps/v8/src/inspector/v8-function-call.cc delete mode 100644 deps/v8/src/inspector/v8-function-call.h delete mode 100644 deps/v8/src/inspector/v8-injected-script-host.cc delete mode 100644 deps/v8/src/inspector/v8-injected-script-host.h delete mode 100644 deps/v8/src/inspector/v8-internal-value-type.cc delete mode 100644 deps/v8/src/inspector/v8-internal-value-type.h create mode 100644 deps/v8/src/inspector/value-mirror.cc create mode 100644 deps/v8/src/inspector/value-mirror.h delete mode 100644 deps/v8/src/instruction-stream.cc delete mode 100644 deps/v8/src/instruction-stream.h delete mode 100644 deps/v8/src/intl.cc delete mode 100644 deps/v8/src/intl.h create mode 100644 deps/v8/src/isolate-allocator.cc create mode 100644 deps/v8/src/isolate-allocator.h create mode 100644 deps/v8/src/isolate-data.h delete mode 100644 deps/v8/src/js/OWNERS delete mode 100644 deps/v8/src/js/array.js delete mode 100644 deps/v8/src/js/intl.js delete mode 100644 deps/v8/src/js/macros.py delete mode 100644 deps/v8/src/js/prologue.js delete mode 100644 deps/v8/src/js/typedarray.js delete mode 100644 deps/v8/src/lsan.h create mode 100644 deps/v8/src/memcopy.cc create mode 100644 deps/v8/src/memcopy.h create mode 100644 deps/v8/src/message-template.h create mode 100644 deps/v8/src/microtask-queue.cc create mode 100644 deps/v8/src/microtask-queue.h delete mode 100644 deps/v8/src/mips/code-stubs-mips.cc delete mode 100644 deps/v8/src/mips/code-stubs-mips.h delete mode 100644 deps/v8/src/mips/codegen-mips.cc create mode 100644 deps/v8/src/mips/register-mips.h delete mode 100644 deps/v8/src/mips64/code-stubs-mips64.cc delete mode 100644 deps/v8/src/mips64/code-stubs-mips64.h delete mode 100644 deps/v8/src/mips64/codegen-mips64.cc create mode 100644 deps/v8/src/mips64/register-mips64.h rename deps/v8/src/objects/{microtask-queue-inl.h => cell-inl.h} (50%) create mode 100644 deps/v8/src/objects/cell.h create mode 100644 deps/v8/src/objects/descriptor-array-inl.h create mode 100644 deps/v8/src/objects/dictionary-inl.h create mode 100644 deps/v8/src/objects/embedder-data-array-inl.h create mode 100644 deps/v8/src/objects/embedder-data-array.cc create mode 100644 deps/v8/src/objects/embedder-data-array.h create mode 100644 deps/v8/src/objects/embedder-data-slot-inl.h create mode 100644 deps/v8/src/objects/embedder-data-slot.h create mode 100644 deps/v8/src/objects/feedback-cell-inl.h create mode 100644 deps/v8/src/objects/feedback-cell.h create mode 100644 deps/v8/src/objects/foreign-inl.h create mode 100644 deps/v8/src/objects/foreign.h create mode 100644 deps/v8/src/objects/free-space-inl.h create mode 100644 deps/v8/src/objects/free-space.h create mode 100644 deps/v8/src/objects/heap-number-inl.h create mode 100644 deps/v8/src/objects/heap-number.h create mode 100644 deps/v8/src/objects/heap-object-inl.h create mode 100644 deps/v8/src/objects/heap-object.h create mode 100644 deps/v8/src/objects/instance-type-inl.h create mode 100644 deps/v8/src/objects/instance-type.h delete mode 100644 deps/v8/src/objects/intl-objects-inl.h create mode 100644 deps/v8/src/objects/js-segment-iterator-inl.h create mode 100644 deps/v8/src/objects/js-segment-iterator.cc create mode 100644 deps/v8/src/objects/js-segment-iterator.h create mode 100644 deps/v8/src/objects/js-weak-refs-inl.h create mode 100644 deps/v8/src/objects/js-weak-refs.h delete mode 100644 deps/v8/src/objects/microtask-queue.cc delete mode 100644 deps/v8/src/objects/microtask-queue.h create mode 100644 deps/v8/src/objects/oddball-inl.h create mode 100644 deps/v8/src/objects/oddball.h create mode 100644 deps/v8/src/objects/property-cell-inl.h create mode 100644 deps/v8/src/objects/property-cell.h create mode 100644 deps/v8/src/objects/slots-atomic-inl.h create mode 100644 deps/v8/src/objects/slots-inl.h create mode 100644 deps/v8/src/objects/slots.h create mode 100644 deps/v8/src/objects/smi-inl.h create mode 100644 deps/v8/src/objects/smi.h create mode 100644 deps/v8/src/objects/string-table-inl.h create mode 100644 deps/v8/src/objects/struct-inl.h create mode 100644 deps/v8/src/objects/struct.h delete mode 100644 deps/v8/src/parsing/duplicate-finder.h delete mode 100644 deps/v8/src/parsing/expression-classifier.h create mode 100644 deps/v8/src/parsing/expression-scope.h create mode 100644 deps/v8/src/parsing/keywords-gen.h create mode 100644 deps/v8/src/parsing/keywords.txt create mode 100644 deps/v8/src/parsing/preparse-data-impl.h create mode 100644 deps/v8/src/parsing/preparse-data.cc create mode 100644 deps/v8/src/parsing/preparse-data.h delete mode 100644 deps/v8/src/parsing/preparsed-scope-data-impl.h delete mode 100644 deps/v8/src/parsing/preparsed-scope-data.cc delete mode 100644 deps/v8/src/parsing/preparsed-scope-data.h create mode 100644 deps/v8/src/pointer-with-payload.h delete mode 100644 deps/v8/src/ppc/code-stubs-ppc.h delete mode 100644 deps/v8/src/ppc/codegen-ppc.cc create mode 100644 deps/v8/src/ppc/register-ppc.h create mode 100644 deps/v8/src/ptr-compr-inl.h create mode 100644 deps/v8/src/ptr-compr.h create mode 100644 deps/v8/src/register-arch.h create mode 100644 deps/v8/src/register.h create mode 100644 deps/v8/src/runtime/runtime-weak-refs.cc delete mode 100644 deps/v8/src/s390/code-stubs-s390.h delete mode 100644 deps/v8/src/s390/codegen-s390.cc create mode 100644 deps/v8/src/s390/register-s390.h delete mode 100644 deps/v8/src/snapshot/builtin-deserializer-allocator.cc delete mode 100644 deps/v8/src/snapshot/builtin-deserializer-allocator.h delete mode 100644 deps/v8/src/snapshot/builtin-deserializer.cc delete mode 100644 deps/v8/src/snapshot/builtin-deserializer.h delete mode 100644 deps/v8/src/snapshot/builtin-serializer-allocator.cc delete mode 100644 deps/v8/src/snapshot/builtin-serializer-allocator.h delete mode 100644 deps/v8/src/snapshot/builtin-serializer.cc delete mode 100644 deps/v8/src/snapshot/builtin-serializer.h rename deps/v8/src/snapshot/{default-deserializer-allocator.cc => deserializer-allocator.cc} (57%) rename deps/v8/src/snapshot/{default-deserializer-allocator.h => deserializer-allocator.h} (73%) create mode 100644 deps/v8/src/snapshot/embedded-data.cc create mode 100644 deps/v8/src/snapshot/embedded-data.h create mode 100644 deps/v8/src/snapshot/embedded-file-writer.cc create mode 100644 deps/v8/src/snapshot/embedded-file-writer.h delete mode 100644 deps/v8/src/snapshot/macros.h create mode 100644 deps/v8/src/snapshot/read-only-deserializer.cc create mode 100644 deps/v8/src/snapshot/read-only-deserializer.h create mode 100644 deps/v8/src/snapshot/read-only-serializer.cc create mode 100644 deps/v8/src/snapshot/read-only-serializer.h create mode 100644 deps/v8/src/snapshot/roots-serializer.cc create mode 100644 deps/v8/src/snapshot/roots-serializer.h rename deps/v8/src/snapshot/{default-serializer-allocator.cc => serializer-allocator.cc} (81%) rename deps/v8/src/snapshot/{default-serializer-allocator.h => serializer-allocator.h} (83%) create mode 100644 deps/v8/src/task-utils.cc create mode 100644 deps/v8/src/task-utils.h create mode 100644 deps/v8/src/third_party/siphash/LICENSE create mode 100644 deps/v8/src/third_party/siphash/halfsiphash.cc create mode 100644 deps/v8/src/third_party/siphash/halfsiphash.h create mode 100644 deps/v8/src/thread-id.cc create mode 100644 deps/v8/src/thread-id.h delete mode 100644 deps/v8/src/torque-assembler.h delete mode 100644 deps/v8/src/torque/scope.cc delete mode 100644 deps/v8/src/torque/scope.h create mode 100644 deps/v8/src/tracing/OWNERS rename deps/v8/src/trap-handler/{handler-inside-linux.cc => handler-inside-posix.cc} (79%) create mode 100644 deps/v8/src/trap-handler/handler-inside-posix.h create mode 100644 deps/v8/src/trap-handler/handler-inside-win.cc create mode 100644 deps/v8/src/trap-handler/handler-inside-win.h rename deps/v8/src/trap-handler/{handler-outside-linux.cc => handler-outside-posix.cc} (78%) delete mode 100644 deps/v8/src/unicode-cache-inl.h create mode 100644 deps/v8/src/unwinder.cc create mode 100644 deps/v8/src/wasm/compilation-environment.h create mode 100644 deps/v8/src/wasm/graph-builder-interface.cc create mode 100644 deps/v8/src/wasm/graph-builder-interface.h create mode 100644 deps/v8/src/wasm/js-to-wasm-wrapper-cache-inl.h create mode 100644 deps/v8/src/wasm/module-instantiate.cc create mode 100644 deps/v8/src/wasm/module-instantiate.h create mode 100644 deps/v8/src/wasm/wasm-import-wrapper-cache-inl.h delete mode 100644 deps/v8/src/x64/code-stubs-x64.cc delete mode 100644 deps/v8/src/x64/codegen-x64.cc create mode 100644 deps/v8/src/x64/register-x64.h delete mode 100644 deps/v8/src/x64/simulator-x64.cc delete mode 100644 deps/v8/src/x64/simulator-x64.h create mode 100644 deps/v8/test/benchmarks/csuite/README.md create mode 100755 deps/v8/test/benchmarks/csuite/benchmark.py create mode 100755 deps/v8/test/benchmarks/csuite/compare-baseline.py create mode 100755 deps/v8/test/benchmarks/csuite/csuite.py rename deps/v8/test/{mjsunit/regress/regress-85177.js => benchmarks/csuite/run-kraken.js} (55%) create mode 100644 deps/v8/test/benchmarks/csuite/sunspider-standalone-driver.js delete mode 100644 deps/v8/test/cctest/compiler/test-run-stubs.cc create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/DestructuringAssignment.golden delete mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/DoExpression.golden delete mode 100644 deps/v8/test/cctest/test-code-stubs-arm.cc delete mode 100644 deps/v8/test/cctest/test-code-stubs-arm64.cc delete mode 100644 deps/v8/test/cctest/test-code-stubs-ia32.cc delete mode 100644 deps/v8/test/cctest/test-code-stubs-mips.cc delete mode 100644 deps/v8/test/cctest/test-code-stubs-mips64.cc delete mode 100644 deps/v8/test/cctest/test-code-stubs-x64.cc delete mode 100644 deps/v8/test/cctest/test-code-stubs.cc delete mode 100644 deps/v8/test/cctest/test-code-stubs.h delete mode 100644 deps/v8/test/cctest/test-experimental-extra.js create mode 100644 deps/v8/test/cctest/test-factory.cc create mode 100644 deps/v8/test/cctest/test-icache.cc delete mode 100644 deps/v8/test/cctest/test-isolate-independent-builtins.cc create mode 100644 deps/v8/test/cctest/test-js-weak-refs.cc create mode 100644 deps/v8/test/cctest/test-unwinder.cc create mode 100644 deps/v8/test/cctest/wasm/test-wasm-import-wrapper-cache.cc create mode 100644 deps/v8/test/debugger/debug/lazy-deopt-then-flush-bytecode.js delete mode 100644 deps/v8/test/fuzzer/wasm-data-section.cc delete mode 100644 deps/v8/test/fuzzer/wasm-function-sigs-section.cc delete mode 100644 deps/v8/test/fuzzer/wasm-globals-section.cc delete mode 100644 deps/v8/test/fuzzer/wasm-imports-section.cc delete mode 100644 deps/v8/test/fuzzer/wasm-memory-section.cc delete mode 100644 deps/v8/test/fuzzer/wasm-names-section.cc delete mode 100644 deps/v8/test/fuzzer/wasm-types-section.cc delete mode 100644 deps/v8/test/fuzzer/wasm_globals_section/foo delete mode 100644 deps/v8/test/fuzzer/wasm_imports_section/foo delete mode 100644 deps/v8/test/fuzzer/wasm_memory_section/foo delete mode 100644 deps/v8/test/fuzzer/wasm_names_section/foo delete mode 100644 deps/v8/test/fuzzer/wasm_types_section/foo delete mode 100644 deps/v8/test/inspector/PRESUBMIT.py delete mode 100644 deps/v8/test/inspector/debugger/async-function-step-out-optimized-expected.txt delete mode 100644 deps/v8/test/inspector/debugger/async-function-step-out-optimized.js delete mode 100644 deps/v8/test/inspector/debugger/break-locations-var-init-optimized-expected.txt delete mode 100644 deps/v8/test/inspector/debugger/break-locations-var-init-optimized.js create mode 100644 deps/v8/test/inspector/debugger/class-fields-scopes-expected.txt create mode 100644 deps/v8/test/inspector/debugger/class-fields-scopes.js rename deps/v8/test/inspector/debugger/{schedule-step-into-async-set-timeout-expected.txt => pause-on-async-call-set-timeout-expected.txt} (93%) rename deps/v8/test/inspector/debugger/{schedule-step-into-async-set-timeout.js => pause-on-async-call-set-timeout.js} (63%) delete mode 100644 deps/v8/test/inspector/debugger/schedule-step-into-async-expected.txt delete mode 100644 deps/v8/test/inspector/debugger/schedule-step-into-async.js create mode 100644 deps/v8/test/inspector/debugger/script-origin-stack-expected.txt create mode 100644 deps/v8/test/inspector/debugger/script-origin-stack.js delete mode 100644 deps/v8/test/inspector/debugger/stepping-ignores-injected-script-expected.txt delete mode 100644 deps/v8/test/inspector/debugger/stepping-ignores-injected-script.js delete mode 100644 deps/v8/test/inspector/debugger/stepping-with-exposed-injected-script-expected.txt delete mode 100644 deps/v8/test/inspector/debugger/stepping-with-exposed-injected-script.js create mode 100644 deps/v8/test/inspector/debugger/wasm-reset-context-group-expected.txt create mode 100644 deps/v8/test/inspector/debugger/wasm-reset-context-group.js create mode 100644 deps/v8/test/inspector/runtime/console-table-expected.txt create mode 100644 deps/v8/test/inspector/runtime/console-table.js create mode 100644 deps/v8/test/inspector/runtime/custom-preview-expected.txt create mode 100644 deps/v8/test/inspector/runtime/custom-preview.js create mode 100644 deps/v8/test/inspector/runtime/remote-object-expected.txt create mode 100644 deps/v8/test/inspector/runtime/remote-object-get-properties-expected.txt create mode 100644 deps/v8/test/inspector/runtime/remote-object-get-properties.js create mode 100644 deps/v8/test/inspector/runtime/remote-object.js delete mode 100644 deps/v8/test/inspector/runtime/stable-object-id-expected.txt delete mode 100644 deps/v8/test/inspector/runtime/stable-object-id.js delete mode 100644 deps/v8/test/intl/break-iterator/wellformed-unsupported-locale.js create mode 100644 deps/v8/test/intl/collator/check-co-option.js create mode 100644 deps/v8/test/intl/collator/check-kf-option.js create mode 100644 deps/v8/test/intl/collator/check-kn-option.js create mode 100644 deps/v8/test/intl/collator/constructor-order.js delete mode 100644 deps/v8/test/intl/collator/wellformed-unsupported-locale.js create mode 100644 deps/v8/test/intl/date-format/check-ca-option.js create mode 100644 deps/v8/test/intl/date-format/check-hc-option.js create mode 100644 deps/v8/test/intl/date-format/check-nu-option.js delete mode 100644 deps/v8/test/intl/date-format/wellformed-unsupported-locale.js create mode 100644 deps/v8/test/intl/default_locale.js create mode 100644 deps/v8/test/intl/general/CanonicalizeLocaleListTakeLocale.js create mode 100644 deps/v8/test/intl/list-format/constructor-order.js create mode 100644 deps/v8/test/intl/locale/property.js create mode 100644 deps/v8/test/intl/number-format/check-nu-option.js create mode 100644 deps/v8/test/intl/number-format/constructor-order.js delete mode 100644 deps/v8/test/intl/number-format/wellformed-unsupported-locale.js create mode 100644 deps/v8/test/intl/plural-rules/constructor-order.js delete mode 100644 deps/v8/test/intl/regexp-assert.js delete mode 100644 deps/v8/test/intl/regexp-prepare.js create mode 100644 deps/v8/test/intl/regress-7481.js create mode 100644 deps/v8/test/intl/regress-8432.js create mode 100644 deps/v8/test/intl/regress-8469.js create mode 100644 deps/v8/test/intl/regress-8525.js create mode 100644 deps/v8/test/intl/regress-8657.js create mode 100644 deps/v8/test/intl/regress-895942.js create mode 100644 deps/v8/test/intl/regress-900013.js create mode 100644 deps/v8/test/intl/regress-903566.js create mode 100644 deps/v8/test/intl/regress-917151.js create mode 100644 deps/v8/test/intl/relative-time-format/constructor-order.js create mode 100644 deps/v8/test/intl/relative-time-format/resolved-options-nu.js create mode 100644 deps/v8/test/intl/segmenter/check-lb-option.js create mode 100644 deps/v8/test/intl/segmenter/constructor-order.js delete mode 100644 deps/v8/test/intl/segmenter/resolved-options.js create mode 100644 deps/v8/test/intl/segmenter/segment-grapheme-following.js create mode 100644 deps/v8/test/intl/segmenter/segment-grapheme-iterable.js create mode 100644 deps/v8/test/intl/segmenter/segment-grapheme-next.js create mode 100644 deps/v8/test/intl/segmenter/segment-grapheme-preceding.js create mode 100644 deps/v8/test/intl/segmenter/segment-grapheme.js create mode 100644 deps/v8/test/intl/segmenter/segment-iterator-breakType.js create mode 100644 deps/v8/test/intl/segmenter/segment-iterator-ownPropertyDescriptor.js create mode 100644 deps/v8/test/intl/segmenter/segment-iterator-position.js create mode 100644 deps/v8/test/intl/segmenter/segment-sentence-following.js create mode 100644 deps/v8/test/intl/segmenter/segment-sentence-iterable.js create mode 100644 deps/v8/test/intl/segmenter/segment-sentence-next.js create mode 100644 deps/v8/test/intl/segmenter/segment-sentence-preceding.js create mode 100644 deps/v8/test/intl/segmenter/segment-sentence.js create mode 100644 deps/v8/test/intl/segmenter/segment-word-following.js create mode 100644 deps/v8/test/intl/segmenter/segment-word-iterable.js create mode 100644 deps/v8/test/intl/segmenter/segment-word-next.js create mode 100644 deps/v8/test/intl/segmenter/segment-word-preceding.js create mode 100644 deps/v8/test/intl/segmenter/segment-word.js create mode 100644 deps/v8/test/intl/segmenter/subclassing.js create mode 100644 deps/v8/test/js-perf-test/ArrayIndexOfIncludesPolymorphic/indexof-includes-polymorphic.js create mode 100644 deps/v8/test/js-perf-test/ArrayIndexOfIncludesPolymorphic/run.js create mode 100644 deps/v8/test/js-perf-test/ArrayLiteralInitialSpreadLargeDoubleHoley/run.js create mode 100644 deps/v8/test/js-perf-test/ArrayLiteralInitialSpreadLargeDoublePacked/run.js create mode 100644 deps/v8/test/js-perf-test/ArrayLiteralInitialSpreadLargeSmiMap/run.js create mode 100644 deps/v8/test/js-perf-test/ArrayLiteralInitialSpreadLargeSmiSet/run.js create mode 100644 deps/v8/test/js-perf-test/ArrayLiteralInitialSpreadSmallDoubleHoley/run.js create mode 100644 deps/v8/test/js-perf-test/ArrayLiteralInitialSpreadSmallDoublePacked/run.js create mode 100644 deps/v8/test/js-perf-test/ArrayLiteralInitialSpreadSmallSmiMap/run.js create mode 100644 deps/v8/test/js-perf-test/ArrayLiteralInitialSpreadSmallSmiSet/run.js create mode 100644 deps/v8/test/js-perf-test/Dates/run.js create mode 100644 deps/v8/test/js-perf-test/Dates/toLocaleString.js create mode 100644 deps/v8/test/js-perf-test/Numbers/toLocaleString.js create mode 100644 deps/v8/test/js-perf-test/Strings/string-localeCompare.js create mode 100644 deps/v8/test/js-perf-test/Strings/string-startswith.js create mode 100644 deps/v8/test/js-perf-test/TypedArrays/base.js create mode 100644 deps/v8/test/js-perf-test/TypedArrays/join-bigint.js create mode 100644 deps/v8/test/js-perf-test/TypedArrays/join-float.js create mode 100644 deps/v8/test/js-perf-test/TypedArrays/join-int.js create mode 100644 deps/v8/test/js-perf-test/TypedArrays/join-sep-bigint.js create mode 100644 deps/v8/test/js-perf-test/TypedArrays/join-sep-float.js create mode 100644 deps/v8/test/js-perf-test/TypedArrays/join-sep-int.js create mode 100644 deps/v8/test/js-perf-test/TypedArrays/join.js rename deps/v8/test/{fuzzer/wasm_data_section/foo => message/empty.js} (100%) rename deps/v8/test/{fuzzer/wasm_function_sigs_section/foo => message/empty.out} (100%) create mode 100644 deps/v8/test/message/fail/call-async.js create mode 100644 deps/v8/test/message/fail/call-async.out create mode 100644 deps/v8/test/message/fail/call-await.js create mode 100644 deps/v8/test/message/fail/call-await.out rename deps/v8/test/{mjsunit/regress/regress-408036.js => message/fail/call-let.js} (52%) create mode 100644 deps/v8/test/message/fail/call-let.out create mode 100644 deps/v8/test/message/fail/call-static.js create mode 100644 deps/v8/test/message/fail/call-static.out create mode 100644 deps/v8/test/message/fail/call-yield.js create mode 100644 deps/v8/test/message/fail/call-yield.out create mode 100644 deps/v8/test/message/fail/class-fields-private-source-positions.js create mode 100644 deps/v8/test/message/fail/class-fields-private-source-positions.out rename deps/v8/test/{mjsunit/mjsunit_suppressions.js => message/fail/class-fields-private-throw-early-2.js} (58%) create mode 100644 deps/v8/test/message/fail/class-fields-private-throw-early-2.out create mode 100644 deps/v8/test/message/fail/class-fields-private-throw-early.js create mode 100644 deps/v8/test/message/fail/class-fields-private-throw-early.out create mode 100644 deps/v8/test/message/fail/class-fields-private-throw-read.js create mode 100644 deps/v8/test/message/fail/class-fields-private-throw-read.out create mode 100644 deps/v8/test/message/fail/class-fields-private-throw-write.js create mode 100644 deps/v8/test/message/fail/class-fields-private-throw-write.out create mode 100644 deps/v8/test/message/fail/directive.js create mode 100644 deps/v8/test/message/fail/directive.out delete mode 100644 deps/v8/test/message/fail/isvar.js delete mode 100644 deps/v8/test/message/fail/isvar.out create mode 100644 deps/v8/test/message/fail/list-format-style-narrow.js create mode 100644 deps/v8/test/message/fail/list-format-style-narrow.out create mode 100644 deps/v8/test/message/fail/modules-duplicate-export5.js create mode 100644 deps/v8/test/message/fail/modules-duplicate-export5.out create mode 100644 deps/v8/test/message/fail/param-arrow-redeclaration-as-let.js create mode 100644 deps/v8/test/message/fail/param-arrow-redeclaration-as-let.out create mode 100644 deps/v8/test/message/fail/param-async-arrow-redeclaration-as-let.js create mode 100644 deps/v8/test/message/fail/param-async-arrow-redeclaration-as-let.out create mode 100644 deps/v8/test/message/fail/param-async-function-redeclaration-as-let.js create mode 100644 deps/v8/test/message/fail/param-async-function-redeclaration-as-let.out create mode 100644 deps/v8/test/message/fail/param-function-redeclaration-as-let.js create mode 100644 deps/v8/test/message/fail/param-function-redeclaration-as-let.out create mode 100644 deps/v8/test/message/fail/try-catch-lexical-conflict-preparser.js create mode 100644 deps/v8/test/message/fail/try-catch-lexical-conflict-preparser.out create mode 100644 deps/v8/test/message/fail/unparenthesized-exponentiation-expression.js create mode 100644 deps/v8/test/message/fail/unparenthesized-exponentiation-expression.out create mode 100644 deps/v8/test/message/fail/weak-refs-makecell1.js create mode 100644 deps/v8/test/message/fail/weak-refs-makecell1.out create mode 100644 deps/v8/test/message/fail/weak-refs-makecell2.js create mode 100644 deps/v8/test/message/fail/weak-refs-makecell2.out create mode 100644 deps/v8/test/message/fail/weak-refs-weakfactory1.js create mode 100644 deps/v8/test/message/fail/weak-refs-weakfactory1.out create mode 100644 deps/v8/test/message/fail/weak-refs-weakfactory2.js create mode 100644 deps/v8/test/message/fail/weak-refs-weakfactory2.out create mode 100644 deps/v8/test/message/regress/fail/regress-8409.js create mode 100644 deps/v8/test/message/regress/fail/regress-8409.out create mode 100644 deps/v8/test/message/regress/fail/regress-900383.js create mode 100644 deps/v8/test/message/regress/fail/regress-900383.out create mode 100644 deps/v8/test/mjsunit/array-from-large-set.js create mode 100644 deps/v8/test/mjsunit/array-join-element-tostring-prototype-side-effects.js create mode 100644 deps/v8/test/mjsunit/array-join-element-tostring-side-effects.js create mode 100644 deps/v8/test/mjsunit/array-join-index-getter-side-effects.js create mode 100644 deps/v8/test/mjsunit/array-join-invalid-string-length.js create mode 100644 deps/v8/test/mjsunit/array-join-nesting.js create mode 100644 deps/v8/test/mjsunit/array-join-nonarray-length-getter-side-effects.js create mode 100644 deps/v8/test/mjsunit/array-join-separator-tostring-side-effects.js create mode 100644 deps/v8/test/mjsunit/array-tolocalestring.js create mode 100644 deps/v8/test/mjsunit/arrow-with.js create mode 100644 deps/v8/test/mjsunit/asm/regress-913822.js create mode 100644 deps/v8/test/mjsunit/asm/regress-920076.js create mode 100644 deps/v8/test/mjsunit/async-stack-traces-prepare-stacktrace-4.js create mode 100644 deps/v8/test/mjsunit/async-stack-traces-promise-all.js create mode 100644 deps/v8/test/mjsunit/compiler/abstract-equal-receiver.js create mode 100644 deps/v8/test/mjsunit/compiler/abstract-equal-undetectable.js create mode 100644 deps/v8/test/mjsunit/compiler/array-every.js create mode 100644 deps/v8/test/mjsunit/compiler/array-find.js create mode 100644 deps/v8/test/mjsunit/compiler/array-findindex.js create mode 100644 deps/v8/test/mjsunit/compiler/array-some.js create mode 100644 deps/v8/test/mjsunit/compiler/instance-of-overridden-has-instance.js create mode 100644 deps/v8/test/mjsunit/compiler/lazy-deopt-async-function-resolve.js create mode 100644 deps/v8/test/mjsunit/compiler/number-multiply.js create mode 100644 deps/v8/test/mjsunit/compiler/promise-resolve-stable-maps.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-8380.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-902608.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-905555-2.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-905555.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-910838.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-913232.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-919754.js create mode 100644 deps/v8/test/mjsunit/compiler/strict-equal-number.js create mode 100644 deps/v8/test/mjsunit/compiler/strict-equal-receiver.js create mode 100644 deps/v8/test/mjsunit/d8/d8-arguments.js create mode 100644 deps/v8/test/mjsunit/es6/array-spread-large-holey.js create mode 100644 deps/v8/test/mjsunit/es6/map-iterator-1.js create mode 100644 deps/v8/test/mjsunit/es6/map-iterator-10.js create mode 100644 deps/v8/test/mjsunit/es6/map-iterator-11.js create mode 100644 deps/v8/test/mjsunit/es6/map-iterator-2.js create mode 100644 deps/v8/test/mjsunit/es6/map-iterator-3.js create mode 100644 deps/v8/test/mjsunit/es6/map-iterator-4.js create mode 100644 deps/v8/test/mjsunit/es6/map-iterator-5.js create mode 100644 deps/v8/test/mjsunit/es6/map-iterator-6.js create mode 100644 deps/v8/test/mjsunit/es6/map-iterator-7.js create mode 100644 deps/v8/test/mjsunit/es6/map-iterator-8.js create mode 100644 deps/v8/test/mjsunit/es6/map-iterator-9.js create mode 100644 deps/v8/test/mjsunit/es6/regress/regress-cr895860.js create mode 100644 deps/v8/test/mjsunit/es6/set-iterator-1.js create mode 100644 deps/v8/test/mjsunit/es6/set-iterator-10.js create mode 100644 deps/v8/test/mjsunit/es6/set-iterator-11.js create mode 100644 deps/v8/test/mjsunit/es6/set-iterator-2.js create mode 100644 deps/v8/test/mjsunit/es6/set-iterator-3.js create mode 100644 deps/v8/test/mjsunit/es6/set-iterator-4.js create mode 100644 deps/v8/test/mjsunit/es6/set-iterator-5.js create mode 100644 deps/v8/test/mjsunit/es6/set-iterator-6.js create mode 100644 deps/v8/test/mjsunit/es6/set-iterator-7.js create mode 100644 deps/v8/test/mjsunit/es6/set-iterator-8.js create mode 100644 deps/v8/test/mjsunit/es6/set-iterator-9.js create mode 100644 deps/v8/test/mjsunit/es6/typedarray-from-detached-typedarray.js create mode 100644 deps/v8/test/mjsunit/es6/typedarray-from-next-overridden.js create mode 100644 deps/v8/test/mjsunit/es6/typedarray-from-nonfunction-iterator.js create mode 100644 deps/v8/test/mjsunit/es8/async-arrow-default-function-await.js create mode 100644 deps/v8/test/mjsunit/es9/regress/regress-904167.js create mode 100644 deps/v8/test/mjsunit/for-of-in-catch-duplicate-decl.js create mode 100644 deps/v8/test/mjsunit/harmony/bigint/misc.js delete mode 100644 deps/v8/test/mjsunit/harmony/default-parameter-do-expression.js delete mode 100644 deps/v8/test/mjsunit/harmony/do-expressions-arrow-param-scope.js delete mode 100644 deps/v8/test/mjsunit/harmony/do-expressions-control.js delete mode 100644 deps/v8/test/mjsunit/harmony/do-expressions.js create mode 100644 deps/v8/test/mjsunit/harmony/hashbang-eval.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-import-17.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-skip-13.js create mode 100644 deps/v8/test/mjsunit/harmony/object-fromentries.js create mode 100644 deps/v8/test/mjsunit/harmony/private-fields-static.js delete mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-4658.js delete mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-4755.js delete mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-4904.js delete mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-546967.js create mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-897436.js create mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-912504.js delete mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-crbug-578038.js create mode 100644 deps/v8/test/mjsunit/harmony/string-matchAll-deleted-matchAll.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/basics.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/cleanup-doesnt-iterate-all-cells.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/cleanup-from-different-realm.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/cleanup-is-a-microtask.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/cleanup-proxy-from-different-realm.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/cleanupsome-cleared-weakcell.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/cleanupsome-weakcell.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/clear-after-cleanup.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/clear-before-cleanup.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/clear-called-twice.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/clear-clears-factory-pointer.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/clear-inside-cleanup1.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/clear-inside-cleanup2.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/clear-inside-cleanup3.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/clear-inside-cleanup4.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/clear-when-cleanup-already-scheduled.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/factory-scheduled-for-cleanup-multiple-times.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/iterating-weak-cells.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/multiple-dirty-weak-factories.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/two-weakrefs.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/weak-cell-basics.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/weak-factory-keeps-weak-cells-alive.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/weakcell-and-weakref.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/weakref-creation-keeps-alive.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/weakref-deref-keeps-alive.js create mode 100644 deps/v8/test/mjsunit/modules-export-star-as1.js create mode 100644 deps/v8/test/mjsunit/modules-export-star-as2.js create mode 100644 deps/v8/test/mjsunit/modules-export-star-as3.js create mode 100644 deps/v8/test/mjsunit/modules-imports8.js create mode 100644 deps/v8/test/mjsunit/modules-skip-8.js create mode 100644 deps/v8/test/mjsunit/modules-skip-9.js create mode 100644 deps/v8/test/mjsunit/parallel-compile-tasks.js create mode 100644 deps/v8/test/mjsunit/regexp-override-exec.js create mode 100644 deps/v8/test/mjsunit/regexp-override-symbol-match-all.js create mode 100644 deps/v8/test/mjsunit/regexp-override-symbol-match.js create mode 100644 deps/v8/test/mjsunit/regexp-override-symbol-replace.js create mode 100644 deps/v8/test/mjsunit/regexp-override-symbol-search.js create mode 100644 deps/v8/test/mjsunit/regexp-override-symbol-split.js create mode 100644 deps/v8/test/mjsunit/regress-906893.js create mode 100644 deps/v8/test/mjsunit/regress-918763.js create mode 100644 deps/v8/test/mjsunit/regress-regexp-functional-replace-slow.js create mode 100644 deps/v8/test/mjsunit/regress-v8-8445-2.js create mode 100644 deps/v8/test/mjsunit/regress-v8-8445.js create mode 100644 deps/v8/test/mjsunit/regress/regress-6711.js create mode 100644 deps/v8/test/mjsunit/regress/regress-7773.js create mode 100644 deps/v8/test/mjsunit/regress/regress-8241.js create mode 100644 deps/v8/test/mjsunit/regress/regress-8377.js create mode 100644 deps/v8/test/mjsunit/regress/regress-8384.js create mode 100644 deps/v8/test/mjsunit/regress/regress-8607.js create mode 100644 deps/v8/test/mjsunit/regress/regress-8630.js create mode 100644 deps/v8/test/mjsunit/regress/regress-8659.js create mode 100644 deps/v8/test/mjsunit/regress/regress-8708.js create mode 100644 deps/v8/test/mjsunit/regress/regress-896326.js create mode 100644 deps/v8/test/mjsunit/regress/regress-897815.js create mode 100644 deps/v8/test/mjsunit/regress/regress-898812.js create mode 100644 deps/v8/test/mjsunit/regress/regress-898936.js create mode 100644 deps/v8/test/mjsunit/regress/regress-899115.js create mode 100644 deps/v8/test/mjsunit/regress/regress-899133.js create mode 100644 deps/v8/test/mjsunit/regress/regress-899474.js create mode 100644 deps/v8/test/mjsunit/regress/regress-899537.js create mode 100644 deps/v8/test/mjsunit/regress/regress-900085.js create mode 100644 deps/v8/test/mjsunit/regress/regress-900585.js create mode 100644 deps/v8/test/mjsunit/regress/regress-900786.js create mode 100644 deps/v8/test/mjsunit/regress/regress-901633.js create mode 100644 deps/v8/test/mjsunit/regress/regress-901798.js create mode 100644 deps/v8/test/mjsunit/regress/regress-902552.js create mode 100644 deps/v8/test/mjsunit/regress/regress-902810.js create mode 100644 deps/v8/test/mjsunit/regress/regress-903527.js create mode 100644 deps/v8/test/mjsunit/regress/regress-903697.js create mode 100644 deps/v8/test/mjsunit/regress/regress-903874.js create mode 100644 deps/v8/test/mjsunit/regress/regress-904255.js create mode 100644 deps/v8/test/mjsunit/regress/regress-904275.js create mode 100644 deps/v8/test/mjsunit/regress/regress-904417.js create mode 100644 deps/v8/test/mjsunit/regress/regress-904707.js create mode 100644 deps/v8/test/mjsunit/regress/regress-905587.js create mode 100644 deps/v8/test/mjsunit/regress/regress-905907.js create mode 100644 deps/v8/test/mjsunit/regress/regress-906406.js create mode 100644 deps/v8/test/mjsunit/regress/regress-907479.js create mode 100644 deps/v8/test/mjsunit/regress/regress-907575.js create mode 100644 deps/v8/test/mjsunit/regress/regress-907669.js create mode 100644 deps/v8/test/mjsunit/regress/regress-908231.js create mode 100644 deps/v8/test/mjsunit/regress/regress-908250.js create mode 100644 deps/v8/test/mjsunit/regress/regress-908975.js create mode 100644 deps/v8/test/mjsunit/regress/regress-913844.js create mode 100644 deps/v8/test/mjsunit/regress/regress-917215.js create mode 100644 deps/v8/test/mjsunit/regress/regress-917755.js create mode 100644 deps/v8/test/mjsunit/regress/regress-917988.js create mode 100644 deps/v8/test/mjsunit/regress/regress-919340.js create mode 100644 deps/v8/test/mjsunit/regress/regress-919710.js create mode 100644 deps/v8/test/mjsunit/regress/regress-921382.js create mode 100644 deps/v8/test/mjsunit/regress/regress-923723.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-546968.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-895199.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-896181.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-896700.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-897098.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-897404.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-897406.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-898785.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-898974.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-899464.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-899535.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-900674.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-902395.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-902610.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-902672.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-905457.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-906043.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-906220.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-906870.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-908309.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-909614.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-911416.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-913212.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-913296.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-915783.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-916288.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-917076.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-917980.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-920184.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-923264.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-923265.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-923705.js create mode 100644 deps/v8/test/mjsunit/regress/regress-directive.js create mode 100644 deps/v8/test/mjsunit/regress/regress-loop-var-assign-without-block-scope.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-osr-in-case-label.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-osr-in-literal.js create mode 100644 deps/v8/test/mjsunit/regress/regress-preparse-inner-arrow-duplicate-parameter.js create mode 100644 deps/v8/test/mjsunit/regress/regress-sloppy-block-function-hoisting-dynamic.js create mode 100644 deps/v8/test/mjsunit/regress/regress-v8-8357.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-8505.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-8533.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-894307.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-894374.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-898932.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-905815.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-910824.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-913804.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-916869.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-917412.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-917588.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-917588b.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-918149.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-918284.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-918917.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-919308.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-919533.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-922432.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-922670.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-922933.js create mode 100644 deps/v8/test/mjsunit/spread-large-array.js create mode 100644 deps/v8/test/mjsunit/spread-large-map.js create mode 100644 deps/v8/test/mjsunit/spread-large-set.js create mode 100644 deps/v8/test/mjsunit/spread-large-string.js create mode 100644 deps/v8/test/mjsunit/try-catch-default-destructuring.js create mode 100644 deps/v8/test/mjsunit/wasm/anyfunc.js create mode 100644 deps/v8/test/mjsunit/wasm/anyref-globals.js create mode 100644 deps/v8/test/mjsunit/wasm/asm-wasm-math-intrinsic.js create mode 100644 deps/v8/test/mjsunit/wasm/atomics-stress.js create mode 100644 deps/v8/test/mjsunit/wasm/atomics64-stress.js create mode 100644 deps/v8/test/mjsunit/wasm/bigint.js create mode 100644 deps/v8/test/mjsunit/wasm/bounds-check-turbofan.js create mode 100644 deps/v8/test/mjsunit/wasm/bulk-memory.js create mode 100644 deps/v8/test/mjsunit/wasm/code-space-exhaustion.js create mode 100644 deps/v8/test/mjsunit/wasm/exceptions-anyref.js create mode 100644 deps/v8/test/mjsunit/wasm/exceptions-rethrow.js create mode 100644 deps/v8/test/mjsunit/wasm/exceptions-simd.js create mode 100644 deps/v8/test/mjsunit/wasm/exceptions-utils.js create mode 100644 deps/v8/test/mjsunit/wasm/futex.js delete mode 100644 deps/v8/test/mjsunit/wasm/jsapi-harness.js create mode 100644 deps/v8/test/mjsunit/wasm/loop-rotation.js create mode 100644 deps/v8/test/mjsunit/wasm/table-copy.js create mode 100644 deps/v8/test/mjsunit/wasm/wasm-math-intrinsic.js create mode 100644 deps/v8/test/test262/harness-adapt-donotevaluate.js delete mode 100644 deps/v8/test/unittests/asmjs/switch-logic-unittest.cc rename deps/v8/test/unittests/{compiler-dispatcher/unoptimized-compile-job-unittest.cc => background-compile-task-unittest.cc} (54%) delete mode 100644 deps/v8/test/unittests/compiler-dispatcher/compiler-dispatcher-tracer-unittest.cc rename deps/v8/test/unittests/compiler/{ => backend}/instruction-selector-unittest.cc (99%) rename deps/v8/test/unittests/compiler/{ => backend}/instruction-selector-unittest.h (98%) rename deps/v8/test/unittests/compiler/{ => backend}/instruction-sequence-unittest.cc (92%) rename deps/v8/test/unittests/compiler/{ => backend}/instruction-sequence-unittest.h (95%) rename deps/v8/test/unittests/compiler/{ => backend}/instruction-unittest.cc (99%) delete mode 100644 deps/v8/test/unittests/compiler/live-range-builder.h create mode 100644 deps/v8/test/unittests/conversions-unittest.cc create mode 100644 deps/v8/test/unittests/microtask-queue-unittest.cc delete mode 100644 deps/v8/test/unittests/objects/microtask-queue-unittest.cc create mode 100644 deps/v8/test/unittests/torque/torque-unittest.cc rename deps/v8/test/unittests/wasm/{trap-handler-unittest.cc => trap-handler-posix-unittest.cc} (96%) create mode 100644 deps/v8/test/unittests/wasm/trap-handler-win-unittest.cc create mode 100644 deps/v8/test/unittests/wasm/trap-handler-x64-unittest.cc create mode 100644 deps/v8/test/unittests/wasm/wasm-compiler-unittest.cc create mode 100644 deps/v8/test/wasm-js/BUILD.gn create mode 100644 deps/v8/test/wasm-js/LICENSE.testharness create mode 100644 deps/v8/test/wasm-js/testcfg.py create mode 100644 deps/v8/test/wasm-js/testharness-after.js create mode 100644 deps/v8/test/wasm-js/testharness.js create mode 100644 deps/v8/test/wasm-js/wasm-js.status delete mode 100755 deps/v8/third_party/inspector_protocol/CodeGenerator.py delete mode 100755 deps/v8/third_party/inspector_protocol/ConvertProtocolToJSON.py delete mode 100644 deps/v8/third_party/inspector_protocol/lib/Collections_h.template rename deps/v8/tools/{unittests => }/PRESUBMIT.py (73%) create mode 100755 deps/v8/tools/check-unused-symbols.sh create mode 100755 deps/v8/tools/deprecation_stats.py create mode 100755 deps/v8/tools/gen-keywords-gen-h.py delete mode 100644 deps/v8/tools/jsmin.py create mode 100755 deps/v8/tools/locs.py create mode 100644 deps/v8/tools/node/README.md delete mode 100755 deps/v8/tools/node/backport_node.py delete mode 100755 deps/v8/tools/node/test_backport_node.py delete mode 100644 deps/v8/tools/run-tests.py.vpython create mode 100644 deps/v8/tools/snapshot/asm_to_inline_asm.py create mode 100644 deps/v8/tools/testrunner/local/fake_testsuite/fake_testsuite.status create mode 100644 deps/v8/tools/testrunner/local/fake_testsuite/testcfg.py delete mode 100644 deps/v8/tools/turbolizer/expand-all.jpg rename deps/v8/tools/turbolizer/{hide-selected.png => img/hide-selected-icon.png} (100%) rename deps/v8/tools/turbolizer/{hide-unselected.png => img/hide-unselected-icon.png} (100%) rename deps/v8/tools/turbolizer/{ => img}/layout-icon.png (100%) create mode 100644 deps/v8/tools/turbolizer/img/show-all-icon.png create mode 100644 deps/v8/tools/turbolizer/img/show-control-icon.png rename deps/v8/tools/turbolizer/{live.png => img/toggle-hide-dead-icon.png} (100%) rename deps/v8/tools/turbolizer/{types.png => img/toggle-types-icon.png} (100%) rename deps/v8/tools/turbolizer/{search.png => img/zoom-selection-icon.png} (100%) create mode 100644 deps/v8/tools/turbolizer/info-view.html create mode 100644 deps/v8/tools/turbolizer/src/graph.ts create mode 100644 deps/v8/tools/turbolizer/src/info-view.ts delete mode 100644 deps/v8/tools/turbolizer/src/lang-disassembly.ts create mode 100644 deps/v8/tools/turbolizer/src/node-label.ts create mode 100644 deps/v8/tools/turbolizer/src/resizer.ts create mode 100644 deps/v8/tools/turbolizer/src/tabs.ts create mode 100644 deps/v8/tools/turbolizer/tabs.css create mode 100644 deps/v8/tools/turbolizer/test/source-resolver-test.ts create mode 100644 deps/v8/tools/turbolizer/tsconfig.test.json create mode 100644 deps/v8/tools/turbolizer/tslint.json create mode 100755 deps/v8/tools/update-object-macros-undef.py create mode 100644 deps/v8/tools/wasm/wasm-import-profiler-end.js create mode 100644 deps/v8/tools/wasm/wasm-import-profiler.js diff --git a/deps/v8/.clang-tidy b/deps/v8/.clang-tidy index 31d7ddc750011f..80e243c5a0ea37 100644 --- a/deps/v8/.clang-tidy +++ b/deps/v8/.clang-tidy @@ -4,13 +4,13 @@ modernize-redundant-void-arg, modernize-replace-random-shuffle, modernize-shrink-to-fit, - modernize-use-auto, + # modernize-use-auto, modernize-use-bool-literals, modernize-use-equals-default, - modernize-use-equals-delete, + # modernize-use-equals-delete, modernize-use-nullptr, modernize-use-override, - google-build-explicit-make-pair, + # google-build-explicit-make-pair, google-explicit-constructor, google-readability-casting' WarningsAsErrors: '' diff --git a/deps/v8/.gitignore b/deps/v8/.gitignore index 7f09c89e360f8e..6cf6ab4e9199e8 100644 --- a/deps/v8/.gitignore +++ b/deps/v8/.gitignore @@ -32,6 +32,7 @@ .project .pydevproject .settings +.torquelint-cache .vscode /_* /build @@ -51,7 +52,7 @@ /test/mozilla/data /test/test262/data /test/test262/harness -/test/wasm-js +/test/wasm-js/data /test/wasm-spec-tests/tests /test/wasm-spec-tests/tests.tar.gz /third_party/* diff --git a/deps/v8/.vpython b/deps/v8/.vpython index 398cef1ad526c0..f8d3b7278a466e 100644 --- a/deps/v8/.vpython +++ b/deps/v8/.vpython @@ -43,3 +43,26 @@ wheel: < platform: "win_amd64" > > + +# Used by: +# tools/unittests/run_perf_test.py +wheel: < + name: "infra/python/wheels/coverage/${vpython_platform}" + version: "version:4.3.4" +> +wheel: < + name: "infra/python/wheels/six-py2_py3" + version: "version:1.10.0" +> +wheel: < + name: "infra/python/wheels/pbr-py2_py3" + version: "version:3.0.0" +> +wheel: < + name: "infra/python/wheels/funcsigs-py2_py3" + version: "version:1.0.2" +> +wheel: < + name: "infra/python/wheels/mock-py2_py3" + version: "version:2.0.0" +> diff --git a/deps/v8/AUTHORS b/deps/v8/AUTHORS index b935565945dad7..57c8890f297288 100644 --- a/deps/v8/AUTHORS +++ b/deps/v8/AUTHORS @@ -15,6 +15,7 @@ NVIDIA Corporation <*@nvidia.com> BlackBerry Limited <*@blackberry.com> Opera Software ASA <*@opera.com> Intel Corporation <*@intel.com> +Microsoft <*@microsoft.com> MIPS Technologies, Inc. <*@mips.com> Imagination Technologies, LLC <*@imgtec.com> Wave Computing, Inc. <*@wavecomp.com> @@ -39,6 +40,7 @@ Cloudflare, Inc. <*@cloudflare.com> Aaron Bieber Abdulla Kamar Akinori MUSHA +Alessandro Pignotti Alex Kodat Alexander Botero-Lowry Alexander Karpinsky @@ -50,6 +52,7 @@ Andrew Paprocki Andrei Kashcha Anna Henningsen Bangfu Tao +Daniel Shelton Ben Coe Ben Newman Ben Noordhuis @@ -109,10 +112,11 @@ Maciej Małecki Marcin Cieślak Marcin Wiącek Mateusz Czeladka -Matheus Marchini +Matheus Marchini Mathias Bynens Matt Hanselman Matthew Sporleder +Maxim Mazurok Maxim Mossienko Michael Lutz Michael Smith @@ -161,6 +165,7 @@ Victor Costan Vlad Burlik Vladimir Krivosheev Vladimir Shutoff +Wenlu Wang Wiktor Garbacz Xiaoyin Liu Yannic Bonenberger diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn index 6bb77db7ea96d5..16e0b60ca78441 100644 --- a/deps/v8/BUILD.gn +++ b/deps/v8/BUILD.gn @@ -18,6 +18,15 @@ if (is_android) { import("gni/v8.gni") import("snapshot_toolchain.gni") +# Specifies if the target build is a simulator build. Comparing target cpu +# with v8 target cpu to not affect simulator builds for making cross-compile +# snapshots. +is_target_simulator = (target_cpu != v8_target_cpu && !v8_multi_arch_build) || + (current_cpu != v8_current_cpu && v8_multi_arch_build) + +# For faster Windows builds. See https://crbug.com/v8/8475. +emit_builtins_as_inline_asm = is_win && is_clang + declare_args() { # Print to stdout on Android. v8_android_log_stdout = false @@ -32,6 +41,11 @@ declare_args() { # Sets -DV8_ENABLE_FUTURE. v8_enable_future = false + # Lite mode disables a number of performance optimizations to reduce memory + # at the cost of performance. + # Sets --DV8_LITE_MODE. + v8_enable_lite_mode = false + # Sets -DVERIFY_HEAP. v8_enable_verify_heap = "" @@ -72,15 +86,17 @@ declare_args() { v8_enable_fast_mksnapshot = false # Enable embedded builtins. - # TODO(jgruber,v8:6666): Support ia32 and maybe MSVC. - v8_enable_embedded_builtins = v8_use_snapshot && v8_current_cpu != "x86" && - !is_aix && (!is_win || is_clang) + v8_enable_embedded_builtins = true + + # Enable code comments for builtins in the snapshot (impacts performance). + v8_enable_snapshot_code_comments = false # Enable code-generation-time checking of types in the CodeStubAssembler. v8_enable_verify_csa = false # Enable pointer compression (sets -dV8_COMPRESS_POINTERS). v8_enable_pointer_compression = false + v8_enable_31bit_smis_on_64bit_arch = false # Interpreted regexp engine exists as platform-independent alternative # based where the regular expression is compiled to a bytecode. @@ -107,15 +123,14 @@ declare_args() { # Enables various testing features. v8_enable_test_features = "" - # Build the snapshot with unwinding information for perf. - # Sets -dV8_USE_SNAPSHOT_WITH_UNWINDING_INFO. - v8_perf_prof_unwinding_info = false - # 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 + # Use Siphash as added protection against hash flooding attacks. + v8_use_siphash = false + # Switches off inlining in V8. v8_no_inline = false @@ -137,12 +152,6 @@ declare_args() { # This default is used by cctests. Projects using V8 will want to override. v8_extra_library_files = [ "//test/cctest/test-extra.js" ] - # Like v8_extra_library_files but for experimental features. - # - # This default is used by cctests. Projects using V8 will want to override. - v8_experimental_extra_library_files = - [ "//test/cctest/test-experimental-extra.js" ] - v8_enable_gdbjit = ((v8_current_cpu == "x86" || v8_current_cpu == "x64") && (is_linux || is_mac)) || (v8_current_cpu == "ppc64" && is_linux) @@ -152,7 +161,12 @@ declare_args() { v8_check_microtasks_scopes_consistency = "" # Enable mitigations for executing untrusted code. - v8_untrusted_code_mitigations = true + # Disabled by default on ia32 due to conflicting requirements with embedded + # builtins. Enabled by default on Android since it doesn't support + # site-isolation in Chrome and on simulator builds which test code generation + # on these platforms. + v8_untrusted_code_mitigations = + v8_current_cpu != "x86" && (is_android || is_target_simulator) # Enable minor mark compact. v8_enable_minor_mc = true @@ -198,17 +212,13 @@ if (v8_check_microtasks_scopes_consistency == "") { v8_enable_debugging_features || dcheck_always_on } -assert(!v8_enable_embedded_builtins || v8_use_snapshot, - "Embedded builtins only work with snapshots") -assert( - v8_current_cpu != "x86" || !v8_enable_embedded_builtins || - !v8_untrusted_code_mitigations, - "Embedded builtins on ia32 and untrusted code mitigations are incompatible") +assert(v8_current_cpu != "x86" || !v8_untrusted_code_mitigations, + "Untrusted code mitigations are unsupported on ia32") -# Specifies if the target build is a simulator build. Comparing target cpu -# with v8 target cpu to not affect simulator builds for making cross-compile -# snapshots. -is_target_simulator = target_cpu != v8_target_cpu +assert(!v8_enable_lite_mode || v8_enable_embedded_builtins, + "Lite mode requires embedded builtins") +assert(!v8_enable_lite_mode || v8_use_snapshot, + "Lite mode requires a snapshot build") v8_random_seed = "314159265" v8_toolset_for_shell = "host" @@ -224,10 +234,10 @@ config("internal_config") { "$target_gen_dir", ] - defines = [] + configs = [ "//build/config/compiler:wexit_time_destructors" ] if (is_component_build) { - defines += [ "BUILDING_V8_SHARED" ] + defines = [ "BUILDING_V8_SHARED" ] } } @@ -314,6 +324,13 @@ config("features") { if (v8_enable_future) { defines += [ "V8_ENABLE_FUTURE" ] } + if (v8_enable_lite_mode) { + defines += [ "V8_LITE_MODE" ] + + # TODO(v8:7777): Remove the define once the --jitless runtime flag does + # everything we need. + defines += [ "V8_JITLESS_MODE" ] + } if (v8_enable_gdbjit) { defines += [ "ENABLE_GDB_JIT_INTERFACE" ] } @@ -326,6 +343,9 @@ config("features") { if (v8_enable_pointer_compression) { defines += [ "V8_COMPRESS_POINTERS" ] } + if (v8_enable_31bit_smis_on_64bit_arch) { + defines += [ "V8_31BIT_SMIS_ON_64BIT_ARCH" ] + } if (v8_enable_object_print) { defines += [ "OBJECT_PRINT" ] } @@ -351,7 +371,7 @@ config("features") { if (v8_enable_v8_checks) { defines += [ "V8_ENABLE_CHECKS" ] } - if (v8_interpreted_regexp) { + if (v8_interpreted_regexp || v8_enable_lite_mode) { defines += [ "V8_INTERPRETED_REGEXP" ] } if (v8_deprecation_warnings) { @@ -368,9 +388,6 @@ config("features") { } if (v8_use_snapshot) { defines += [ "V8_USE_SNAPSHOT" ] - if (v8_perf_prof_unwinding_info) { - defines += [ "V8_USE_SNAPSHOT_WITH_UNWINDING_INFO" ] - } } if (v8_use_external_startup_data) { defines += [ "V8_USE_EXTERNAL_STARTUP_DATA" ] @@ -382,14 +399,14 @@ config("features") { defines += [ "V8_CHECK_MICROTASKS_SCOPES_CONSISTENCY" ] } if (v8_enable_embedded_builtins) { - defines += [ - "V8_EMBEDDED_BUILTINS", - "V8_EMBEDDED_BYTECODE_HANDLERS", - ] + defines += [ "V8_EMBEDDED_BUILTINS" ] } if (v8_use_multi_snapshots) { defines += [ "V8_MULTI_SNAPSHOTS" ] } + if (v8_use_siphash) { + defines += [ "V8_USE_SIPHASH" ] + } } config("toolchain") { @@ -661,44 +678,35 @@ config("v8_gcov_coverage_ldflags") { # Actions # -action("js2c") { - visibility = [ ":*" ] # Only targets in this file can depend on this. - - script = "tools/js2c.py" - - # The script depends on this other script, this rule causes a rebuild if it - # changes. - inputs = [ - "tools/jsmin.py", - ] - - # NOSORT - sources = [ - "src/js/macros.py", - "src/messages.h", - "src/js/prologue.js", - "src/js/array.js", - "src/js/typedarray.js", - ] - - outputs = [ - "$target_gen_dir/libraries.cc", - ] - - if (v8_enable_i18n_support) { - sources += [ "src/js/intl.js" ] +# Only for Windows clang builds. Converts the embedded.S file produced by +# mksnapshot into an embedded.cc file with corresponding inline assembly. +template("asm_to_inline_asm") { + name = target_name + if (name == "default") { + suffix = "" + } else { + suffix = "_$name" } - args = [ - rebase_path("$target_gen_dir/libraries.cc", root_build_dir), - "CORE", - ] + rebase_path(sources, root_build_dir) + action("asm_to_inline_asm_" + name) { + visibility = [ ":*" ] # Only targets in this file can depend on this. - if (v8_use_external_startup_data) { - outputs += [ "$target_gen_dir/libraries.bin" ] + assert(emit_builtins_as_inline_asm) + + script = "tools/snapshot/asm_to_inline_asm.py" + deps = [ + ":run_mksnapshot_" + name, + ] + sources = [ + "$target_gen_dir/embedded${suffix}.S", + ] + outputs = [ + "$target_gen_dir/embedded${suffix}.cc", + ] + args = invoker.args args += [ - "--startup_blob", - rebase_path("$target_gen_dir/libraries.bin", root_build_dir), + rebase_path("$target_gen_dir/embedded${suffix}.S", root_build_dir), + rebase_path("$target_gen_dir/embedded${suffix}.cc", root_build_dir), ] } } @@ -708,12 +716,6 @@ action("js2c_extras") { script = "tools/js2c.py" - # The script depends on this other script, this rule causes a rebuild if it - # changes. - inputs = [ - "tools/jsmin.py", - ] - sources = v8_extra_library_files outputs = [ @@ -734,58 +736,6 @@ action("js2c_extras") { } } -action("js2c_experimental_extras") { - visibility = [ ":*" ] # Only targets in this file can depend on this. - - script = "tools/js2c.py" - - # The script depends on this other script, this rule causes a rebuild if it - # changes. - inputs = [ - "tools/jsmin.py", - ] - - sources = v8_experimental_extra_library_files - - outputs = [ - "$target_gen_dir/experimental-extras-libraries.cc", - ] - - args = [ - rebase_path("$target_gen_dir/experimental-extras-libraries.cc", - root_build_dir), - "EXPERIMENTAL_EXTRAS", - ] + rebase_path(sources, root_build_dir) - - if (v8_use_external_startup_data) { - outputs += [ "$target_gen_dir/libraries_experimental_extras.bin" ] - args += [ - "--startup_blob", - rebase_path("$target_gen_dir/libraries_experimental_extras.bin", - root_build_dir), - ] - } -} - -action("d8_js2c") { - visibility = [ ":*" ] # Only targets in this file can depend on this. - - script = "tools/js2c.py" - - # NOSORT - inputs = [ - "src/d8.js", - "src/js/macros.py", - ] - - outputs = [ - "$target_gen_dir/d8-js.cc", - ] - - args = rebase_path(outputs, root_build_dir) + [ "D8" ] + - rebase_path(inputs, root_build_dir) -} - if (is_android && enable_java_templates) { android_assets("v8_external_startup_data_assets") { if (v8_use_external_startup_data) { @@ -814,16 +764,12 @@ if (v8_use_external_startup_data) { visibility = [ ":*" ] # Only targets in this file can depend on this. deps = [ - ":js2c", - ":js2c_experimental_extras", ":js2c_extras", ] # NOSORT sources = [ - "$target_gen_dir/libraries.bin", "$target_gen_dir/libraries_extras.bin", - "$target_gen_dir/libraries_experimental_extras.bin", ] outputs = [ @@ -856,18 +802,29 @@ action("postmortem-metadata") { "src/objects-inl.h", "src/objects/allocation-site-inl.h", "src/objects/allocation-site.h", + "src/objects/cell-inl.h", + "src/objects/cell.h", "src/objects/code-inl.h", "src/objects/code.h", "src/objects/data-handler.h", "src/objects/data-handler-inl.h", + "src/objects/feedback-cell.h", + "src/objects/feedback-cell-inl.h", "src/objects/fixed-array-inl.h", "src/objects/fixed-array.h", + "src/objects/heap-number-inl.h", + "src/objects/heap-number.h", + "src/objects/heap-object-inl.h", + "src/objects/heap-object.h", + "src/objects/instance-type.h", "src/objects/js-array-inl.h", "src/objects/js-array.h", "src/objects/js-array-buffer-inl.h", "src/objects/js-array-buffer.h", "src/objects/js-objects-inl.h", "src/objects/js-objects.h", + "src/objects/js-promise-inl.h", + "src/objects/js-promise.h", "src/objects/js-regexp-inl.h", "src/objects/js-regexp.h", "src/objects/js-regexp-string-iterator-inl.h", @@ -876,6 +833,8 @@ action("postmortem-metadata") { "src/objects/map-inl.h", "src/objects/name.h", "src/objects/name-inl.h", + "src/objects/oddball-inl.h", + "src/objects/oddball.h", "src/objects/scope-info.h", "src/objects/script.h", "src/objects/script-inl.h", @@ -883,6 +842,8 @@ action("postmortem-metadata") { "src/objects/shared-function-info-inl.h", "src/objects/string.h", "src/objects/string-inl.h", + "src/objects/struct.h", + "src/objects/struct-inl.h", ] outputs = [ @@ -895,24 +856,41 @@ action("postmortem-metadata") { torque_files = [ "src/builtins/base.tq", + "src/builtins/frames.tq", + "src/builtins/arguments.tq", "src/builtins/array.tq", "src/builtins/array-copywithin.tq", + "src/builtins/array-filter.tq", "src/builtins/array-foreach.tq", + "src/builtins/array-join.tq", "src/builtins/array-lastindexof.tq", + "src/builtins/array-of.tq", "src/builtins/array-reverse.tq", + "src/builtins/array-slice.tq", "src/builtins/array-splice.tq", "src/builtins/array-unshift.tq", - "src/builtins/typed-array.tq", + "src/builtins/collections.tq", "src/builtins/data-view.tq", + "src/builtins/extras-utils.tq", + "src/builtins/object.tq", + "src/builtins/object-fromentries.tq", + "src/builtins/iterator.tq", + "src/builtins/typed-array.tq", + "src/builtins/typed-array-createtypedarray.tq", "test/torque/test-torque.tq", "third_party/v8/builtins/array-sort.tq", ] -torque_modules = [ +torque_namespaces = [ "base", + "arguments", "array", + "collections", + "iterator", + "object", "typed-array", "data-view", + "extras-utils", "test", ] @@ -934,10 +912,10 @@ action("run_torque") { outputs = [ "$target_gen_dir/torque-generated/builtin-definitions-from-dsl.h", ] - foreach(module, torque_modules) { + foreach(namespace, torque_namespaces) { outputs += [ - "$target_gen_dir/torque-generated/builtins-$module-from-dsl-gen.cc", - "$target_gen_dir/torque-generated/builtins-$module-from-dsl-gen.h", + "$target_gen_dir/torque-generated/builtins-$namespace-from-dsl-gen.cc", + "$target_gen_dir/torque-generated/builtins-$namespace-from-dsl-gen.h", ] } @@ -954,20 +932,6 @@ action("run_torque") { } } -v8_header_set("torque_generated_core") { - visibility = [ ":*" ] # Only targets in this file can depend on this. - - deps = [ - ":run_torque", - ] - - sources = [ - "$target_gen_dir/torque-generated/builtin-definitions-from-dsl.h", - ] - - configs = [ ":internal_config" ] -} - v8_source_set("torque_generated_initializers") { visibility = [ ":*" ] # Only targets in this file can depend on this. @@ -983,10 +947,10 @@ v8_source_set("torque_generated_initializers") { } sources = [] - foreach(module, torque_modules) { + foreach(namespace, torque_namespaces) { sources += [ - "$target_gen_dir/torque-generated/builtins-$module-from-dsl-gen.cc", - "$target_gen_dir/torque-generated/builtins-$module-from-dsl-gen.h", + "$target_gen_dir/torque-generated/builtins-$namespace-from-dsl-gen.cc", + "$target_gen_dir/torque-generated/builtins-$namespace-from-dsl-gen.h", ] } @@ -1007,14 +971,15 @@ action("generate_bytecode_builtins_list") { ":bytecode_builtins_list_generator($v8_generator_toolchain)", "root_out_dir") + "/bytecode_builtins_list_generator", root_build_dir), - rebase_path("$target_gen_dir/builtins-generated/bytecodes-builtins-list.h"), + rebase_path("$target_gen_dir/builtins-generated/bytecodes-builtins-list.h", + root_build_dir), ] } # Template to generate different V8 snapshots based on different runtime flags. # Can be invoked with run_mksnapshot(). The target will resolve to # run_mksnapshot_. If is "default", no file suffixes will be used. -# Otherwise files are suffixed, e.g. embedded_.cc and +# Otherwise files are suffixed, e.g. embedded_.S and # snapshot_blob_.bin. # # The template exposes the variables: @@ -1053,10 +1018,10 @@ template("run_mksnapshot") { args += invoker.args if (v8_enable_embedded_builtins) { - outputs += [ "$target_gen_dir/embedded${suffix}.cc" ] + outputs += [ "$target_gen_dir/embedded${suffix}.S" ] args += [ "--embedded_src", - rebase_path("$target_gen_dir/embedded${suffix}.cc", root_build_dir), + rebase_path("$target_gen_dir/embedded${suffix}.S", root_build_dir), ] if (invoker.embedded_variant != "") { args += [ @@ -1080,10 +1045,6 @@ template("run_mksnapshot") { ] } - if (v8_perf_prof_unwinding_info) { - args += [ "--perf-prof-unwinding-info" ] - } - if (v8_use_external_startup_data) { outputs += [ "$root_out_dir/snapshot_blob${suffix}.bin" ] data += [ "$root_out_dir/snapshot_blob${suffix}.bin" ] @@ -1104,6 +1065,10 @@ template("run_mksnapshot") { args += [ rebase_path(v8_embed_script, root_build_dir) ] } + if (v8_enable_snapshot_code_comments) { + args += [ "--code-comments" ] + } + if (v8_enable_fast_mksnapshot) { args += [ "--no-turbo-rewrite-far-jumps", @@ -1125,6 +1090,11 @@ if (v8_use_snapshot) { embedded_variant = "Default" } } + if (emit_builtins_as_inline_asm) { + asm_to_inline_asm("default") { + args = [] + } + } if (v8_use_multi_snapshots) { run_mksnapshot("trusted") { args = [ "--no-untrusted-code-mitigations" ] @@ -1132,6 +1102,11 @@ if (v8_use_snapshot) { embedded_variant = "Trusted" } } + if (emit_builtins_as_inline_asm) { + asm_to_inline_asm("trusted") { + args = [] + } + } } } @@ -1160,6 +1135,10 @@ action("v8_dump_build_config") { "v8_enable_verify_predictable=$v8_enable_verify_predictable", "v8_target_cpu=\"$v8_target_cpu\"", "v8_use_snapshot=$v8_use_snapshot", + "v8_enable_embedded_builtins=$v8_enable_embedded_builtins", + "v8_enable_verify_csa=$v8_enable_verify_csa", + "v8_enable_lite_mode=$v8_enable_lite_mode", + "v8_enable_pointer_compression=$v8_enable_pointer_compression", ] if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel" || @@ -1197,29 +1176,16 @@ v8_source_set("v8_nosnapshot") { visibility = [ ":*" ] # Only targets in this file can depend on this. deps = [ - ":js2c", - ":js2c_experimental_extras", ":js2c_extras", ":v8_base", ] sources = [ - "$target_gen_dir/experimental-extras-libraries.cc", "$target_gen_dir/extras-libraries.cc", - "$target_gen_dir/libraries.cc", "src/snapshot/embedded-empty.cc", "src/snapshot/snapshot-empty.cc", ] - if (use_jumbo_build == true) { - jumbo_excluded_sources = [ - # TODO(mostynb@vewd.com): don't exclude these http://crbug.com/752428 - # Generated source, contains same variable names as libraries.cc - "$target_gen_dir/experimental-extras-libraries.cc", - "$target_gen_dir/libraries.cc", - ] - } - configs = [ ":internal_config" ] } @@ -1233,8 +1199,6 @@ if (v8_use_snapshot && !v8_use_external_startup_data) { ] deps = [ - ":js2c", - ":js2c_experimental_extras", ":js2c_extras", ":v8_base", ] @@ -1248,28 +1212,20 @@ if (v8_use_snapshot && !v8_use_external_startup_data) { public = [] sources = [ - "$target_gen_dir/experimental-extras-libraries.cc", "$target_gen_dir/extras-libraries.cc", - "$target_gen_dir/libraries.cc", "$target_gen_dir/snapshot.cc", "src/setup-isolate-deserialize.cc", ] - if (v8_enable_embedded_builtins) { + if (v8_enable_embedded_builtins && emit_builtins_as_inline_asm) { + deps += [ ":asm_to_inline_asm_default" ] sources += [ "$target_gen_dir/embedded.cc" ] + } else if (v8_enable_embedded_builtins) { + sources += [ "$target_gen_dir/embedded.S" ] } else { sources += [ "src/snapshot/embedded-empty.cc" ] } - if (use_jumbo_build == true) { - jumbo_excluded_sources = [ - # TODO(mostynb@vewd.com): don't exclude these http://crbug.com/752428 - # Generated source, contains same variable names as libraries.cc - "$target_gen_dir/experimental-extras-libraries.cc", - "$target_gen_dir/libraries.cc", - ] - } - configs = [ ":internal_config" ] } } @@ -1279,8 +1235,6 @@ if (v8_use_snapshot && v8_use_external_startup_data) { visibility = [ ":*" ] # Only targets in this file can depend on this. deps = [ - ":js2c", - ":js2c_experimental_extras", ":js2c_extras", ":v8_base", ] @@ -1302,16 +1256,28 @@ if (v8_use_snapshot && v8_use_external_startup_data) { # Do not publicize any header to remove build dependency. public = [] - if (v8_enable_embedded_builtins) { + if (v8_enable_embedded_builtins && emit_builtins_as_inline_asm) { + deps += [ ":asm_to_inline_asm_default" ] sources += [ "$target_gen_dir/embedded.cc" ] if (v8_use_multi_snapshots) { + deps += [ ":asm_to_inline_asm_trusted" ] sources += [ "$target_gen_dir/embedded_trusted.cc" ] + if (use_jumbo_build == true) { + jumbo_excluded_sources = [ "$target_gen_dir/embedded_trusted.cc" ] + } + } + } else if (v8_enable_embedded_builtins) { + sources += [ "$target_gen_dir/embedded.S" ] + + if (v8_use_multi_snapshots) { + sources += [ "$target_gen_dir/embedded_trusted.S" ] + if (use_jumbo_build == true) { jumbo_excluded_sources = [ - # Duplicated symbols with embedded.cc - "$target_gen_dir/embedded_trusted.cc", + # Duplicated symbols with embedded.S + "$target_gen_dir/embedded_trusted.S", ] } } @@ -1345,6 +1311,7 @@ v8_source_set("v8_initializers") { "src/builtins/builtins-async-gen.h", "src/builtins/builtins-async-generator-gen.cc", "src/builtins/builtins-async-iterator-gen.cc", + "src/builtins/builtins-bigint-gen.cc", "src/builtins/builtins-boolean-gen.cc", "src/builtins/builtins-call-gen.cc", "src/builtins/builtins-call-gen.h", @@ -1371,6 +1338,7 @@ v8_source_set("v8_initializers") { "src/builtins/builtins-lazy-gen.h", "src/builtins/builtins-math-gen.cc", "src/builtins/builtins-math-gen.h", + "src/builtins/builtins-microtask-queue-gen.cc", "src/builtins/builtins-number-gen.cc", "src/builtins/builtins-object-gen.cc", "src/builtins/builtins-promise-gen.cc", @@ -1391,6 +1359,8 @@ v8_source_set("v8_initializers") { "src/builtins/growable-fixed-array-gen.cc", "src/builtins/growable-fixed-array-gen.h", "src/builtins/setup-builtins-internal.cc", + "src/code-stub-assembler.cc", + "src/code-stub-assembler.h", "src/heap/setup-heap-internal.cc", "src/ic/accessor-assembler.cc", "src/ic/accessor-assembler.h", @@ -1412,9 +1382,10 @@ v8_source_set("v8_initializers") { "src/builtins/builtins-async-iterator-gen.cc", "src/builtins/builtins-async-generator-gen.cc", - # This source file takes an unusually large amount of time to - # compile. Build it separately to avoid bottlenecks. + # These source files take an unusually large amount of time to + # compile. Build them separately to avoid bottlenecks. "src/builtins/builtins-regexp-gen.cc", + "src/code-stub-assembler.cc", ] } @@ -1510,6 +1481,14 @@ v8_header_set("v8_headers") { "include/v8config.h", ] + if (is_linux || is_mac) { + sources += [ "include/v8-wasm-trap-handler-posix.h" ] + } + + if (is_win) { + sources += [ "include/v8-wasm-trap-handler-win.h" ] + } + deps = [ ":v8_version", ] @@ -1533,6 +1512,7 @@ v8_source_set("v8_base") { "include/v8-profiler.h", "include/v8-testing.h", "include/v8-util.h", + "include/v8-wasm-trap-handler-posix.h", "include/v8.h", "include/v8config.h", "src/accessors.cc", @@ -1563,8 +1543,6 @@ v8_source_set("v8_base") { "src/asmjs/asm-scanner.h", "src/asmjs/asm-types.cc", "src/asmjs/asm-types.h", - "src/asmjs/switch-logic.cc", - "src/asmjs/switch-logic.h", "src/assembler-arch-inl.h", "src/assembler-arch.h", "src/assembler-inl.h", @@ -1580,13 +1558,10 @@ v8_source_set("v8_base") { "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", "src/ast/prettyprinter.h", - "src/ast/scopes-inl.h", "src/ast/scopes.cc", "src/ast/scopes.h", "src/ast/source-range-ast-visitor.cc", @@ -1621,16 +1596,17 @@ v8_source_set("v8_base") { "src/builtins/builtins-definitions.h", "src/builtins/builtins-descriptors.h", "src/builtins/builtins-error.cc", + "src/builtins/builtins-extras-utils.cc", "src/builtins/builtins-function.cc", "src/builtins/builtins-global.cc", "src/builtins/builtins-internal.cc", - "src/builtins/builtins-interpreter.cc", "src/builtins/builtins-intl.cc", "src/builtins/builtins-json.cc", "src/builtins/builtins-math.cc", "src/builtins/builtins-number.cc", "src/builtins/builtins-object.cc", "src/builtins/builtins-promise.cc", + "src/builtins/builtins-promise.h", "src/builtins/builtins-reflect.cc", "src/builtins/builtins-regexp.cc", "src/builtins/builtins-sharedarraybuffer.cc", @@ -1640,6 +1616,7 @@ v8_source_set("v8_base") { "src/builtins/builtins-typed-array.cc", "src/builtins/builtins-utils-inl.h", "src/builtins/builtins-utils.h", + "src/builtins/builtins-weak-refs.cc", "src/builtins/builtins.cc", "src/builtins/builtins.h", "src/builtins/constants-table-builder.cc", @@ -1653,34 +1630,23 @@ v8_source_set("v8_base") { "src/char-predicates.cc", "src/char-predicates.h", "src/checks.h", + "src/code-comments.cc", + "src/code-comments.h", "src/code-events.h", "src/code-factory.cc", "src/code-factory.h", "src/code-reference.cc", "src/code-reference.h", - "src/code-stub-assembler.cc", - "src/code-stub-assembler.h", - "src/code-stubs-utils.h", - "src/code-stubs.cc", - "src/code-stubs.h", "src/code-tracer.h", - "src/codegen.cc", - "src/codegen.h", "src/collector.h", "src/compilation-cache.cc", "src/compilation-cache.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/compiler-dispatcher-tracer.cc", - "src/compiler-dispatcher/compiler-dispatcher-tracer.h", "src/compiler-dispatcher/compiler-dispatcher.cc", "src/compiler-dispatcher/compiler-dispatcher.h", "src/compiler-dispatcher/optimizing-compile-dispatcher.cc", "src/compiler-dispatcher/optimizing-compile-dispatcher.h", - "src/compiler-dispatcher/unoptimized-compile-job.cc", - "src/compiler-dispatcher/unoptimized-compile-job.h", "src/compiler.cc", "src/compiler.h", "src/compiler/access-builder.cc", @@ -1689,7 +1655,34 @@ v8_source_set("v8_base") { "src/compiler/access-info.h", "src/compiler/all-nodes.cc", "src/compiler/all-nodes.h", + "src/compiler/allocation-builder-inl.h", "src/compiler/allocation-builder.h", + "src/compiler/backend/code-generator-impl.h", + "src/compiler/backend/code-generator.cc", + "src/compiler/backend/code-generator.h", + "src/compiler/backend/frame-elider.cc", + "src/compiler/backend/frame-elider.h", + "src/compiler/backend/gap-resolver.cc", + "src/compiler/backend/gap-resolver.h", + "src/compiler/backend/instruction-codes.h", + "src/compiler/backend/instruction-scheduler.cc", + "src/compiler/backend/instruction-scheduler.h", + "src/compiler/backend/instruction-selector-impl.h", + "src/compiler/backend/instruction-selector.cc", + "src/compiler/backend/instruction-selector.h", + "src/compiler/backend/instruction.cc", + "src/compiler/backend/instruction.h", + "src/compiler/backend/jump-threading.cc", + "src/compiler/backend/jump-threading.h", + "src/compiler/backend/live-range-separator.cc", + "src/compiler/backend/live-range-separator.h", + "src/compiler/backend/move-optimizer.cc", + "src/compiler/backend/move-optimizer.h", + "src/compiler/backend/register-allocator-verifier.cc", + "src/compiler/backend/register-allocator-verifier.h", + "src/compiler/backend/register-allocator.cc", + "src/compiler/backend/register-allocator.h", + "src/compiler/backend/unwinding-info-writer.h", "src/compiler/basic-block-instrumentor.cc", "src/compiler/basic-block-instrumentor.h", "src/compiler/branch-elimination.cc", @@ -1705,9 +1698,6 @@ v8_source_set("v8_base") { "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/common-node-cache.cc", "src/compiler/common-node-cache.h", "src/compiler/common-operator-reducer.cc", @@ -1733,15 +1723,11 @@ v8_source_set("v8_base") { "src/compiler/escape-analysis-reducer.h", "src/compiler/escape-analysis.cc", "src/compiler/escape-analysis.h", - "src/compiler/frame-elider.cc", - "src/compiler/frame-elider.h", "src/compiler/frame-states.cc", "src/compiler/frame-states.h", "src/compiler/frame.cc", "src/compiler/frame.h", "src/compiler/functional-list.h", - "src/compiler/gap-resolver.cc", - "src/compiler/gap-resolver.h", "src/compiler/graph-assembler.cc", "src/compiler/graph-assembler.h", "src/compiler/graph-reducer.cc", @@ -1752,14 +1738,6 @@ v8_source_set("v8_base") { "src/compiler/graph-visualizer.h", "src/compiler/graph.cc", "src/compiler/graph.h", - "src/compiler/instruction-codes.h", - "src/compiler/instruction-scheduler.cc", - "src/compiler/instruction-scheduler.h", - "src/compiler/instruction-selector-impl.h", - "src/compiler/instruction-selector.cc", - "src/compiler/instruction-selector.h", - "src/compiler/instruction.cc", - "src/compiler/instruction.h", "src/compiler/int64-lowering.cc", "src/compiler/int64-lowering.h", "src/compiler/js-call-reducer.cc", @@ -1790,12 +1768,8 @@ v8_source_set("v8_base") { "src/compiler/js-type-hint-lowering.h", "src/compiler/js-typed-lowering.cc", "src/compiler/js-typed-lowering.h", - "src/compiler/jump-threading.cc", - "src/compiler/jump-threading.h", "src/compiler/linkage.cc", "src/compiler/linkage.h", - "src/compiler/live-range-separator.cc", - "src/compiler/live-range-separator.h", "src/compiler/load-elimination.cc", "src/compiler/load-elimination.h", "src/compiler/loop-analysis.cc", @@ -1814,8 +1788,6 @@ v8_source_set("v8_base") { "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", "src/compiler/node-cache.cc", "src/compiler/node-cache.h", @@ -1853,10 +1825,6 @@ v8_source_set("v8_base") { "src/compiler/redundancy-elimination.h", "src/compiler/refs-map.cc", "src/compiler/refs-map.h", - "src/compiler/register-allocator-verifier.cc", - "src/compiler/register-allocator-verifier.h", - "src/compiler/register-allocator.cc", - "src/compiler/register-allocator.h", "src/compiler/representation-change.cc", "src/compiler/representation-change.h", "src/compiler/schedule.cc", @@ -1865,6 +1833,8 @@ v8_source_set("v8_base") { "src/compiler/scheduler.h", "src/compiler/select-lowering.cc", "src/compiler/select-lowering.h", + "src/compiler/serializer-for-background-compilation.cc", + "src/compiler/serializer-for-background-compilation.h", "src/compiler/simd-scalar-lowering.cc", "src/compiler/simd-scalar-lowering.h", "src/compiler/simplified-lowering.cc", @@ -1887,7 +1857,6 @@ v8_source_set("v8_base") { "src/compiler/typer.h", "src/compiler/types.cc", "src/compiler/types.h", - "src/compiler/unwinding-info-writer.h", "src/compiler/value-numbering-reducer.cc", "src/compiler/value-numbering-reducer.h", "src/compiler/verifier.cc", @@ -1896,6 +1865,9 @@ v8_source_set("v8_base") { "src/compiler/wasm-compiler.h", "src/compiler/zone-stats.cc", "src/compiler/zone-stats.h", + "src/constant-pool.cc", + "src/constant-pool.h", + "src/constants-arch.h", "src/contexts-inl.h", "src/contexts.cc", "src/contexts.h", @@ -1905,6 +1877,7 @@ v8_source_set("v8_base") { "src/counters-inl.h", "src/counters.cc", "src/counters.h", + "src/cpu-features.h", "src/date.cc", "src/date.h", "src/dateparser-inl.h", @@ -1917,6 +1890,8 @@ v8_source_set("v8_base") { "src/debug/debug-frames.cc", "src/debug/debug-frames.h", "src/debug/debug-interface.h", + "src/debug/debug-property-iterator.cc", + "src/debug/debug-property-iterator.h", "src/debug/debug-scope-iterator.cc", "src/debug/debug-scope-iterator.h", "src/debug/debug-scopes.cc", @@ -1934,6 +1909,7 @@ v8_source_set("v8_base") { "src/deoptimize-reason.h", "src/deoptimizer.cc", "src/deoptimizer.h", + "src/detachable-vector.cc", "src/detachable-vector.h", "src/disasm.h", "src/disassembler.cc", @@ -2055,6 +2031,7 @@ v8_source_set("v8_base") { "src/heap/scavenger-inl.h", "src/heap/scavenger.cc", "src/heap/scavenger.h", + "src/heap/slot-set.cc", "src/heap/slot-set.h", "src/heap/spaces-inl.h", "src/heap/spaces.cc", @@ -2085,8 +2062,6 @@ v8_source_set("v8_base") { "src/icu_util.h", "src/identity-map.cc", "src/identity-map.h", - "src/instruction-stream.cc", - "src/instruction-stream.h", "src/interface-descriptors.cc", "src/interface-descriptors.h", "src/interpreter/block-coverage-builder.h", @@ -2134,8 +2109,9 @@ v8_source_set("v8_base") { "src/interpreter/interpreter-intrinsics.h", "src/interpreter/interpreter.cc", "src/interpreter/interpreter.h", - "src/intl.cc", - "src/intl.h", + "src/isolate-allocator.cc", + "src/isolate-allocator.h", + "src/isolate-data.h", "src/isolate-inl.h", "src/isolate.cc", "src/isolate.h", @@ -2162,7 +2138,6 @@ v8_source_set("v8_base") { "src/lookup-inl.h", "src/lookup.cc", "src/lookup.h", - "src/lsan.h", "src/machine-type.cc", "src/machine-type.h", "src/macro-assembler-inl.h", @@ -2173,8 +2148,13 @@ v8_source_set("v8_base") { "src/math-random.h", "src/maybe-handles-inl.h", "src/maybe-handles.h", + "src/memcopy.cc", + "src/memcopy.h", + "src/message-template.h", "src/messages.cc", "src/messages.h", + "src/microtask-queue.cc", + "src/microtask-queue.h", "src/msan.h", "src/objects-body-descriptors-inl.h", "src/objects-body-descriptors.h", @@ -2190,6 +2170,8 @@ v8_source_set("v8_base") { "src/objects/bigint.cc", "src/objects/bigint.h", "src/objects/builtin-function-id.h", + "src/objects/cell-inl.h", + "src/objects/cell.h", "src/objects/code-inl.h", "src/objects/code.h", "src/objects/compilation-cache-inl.h", @@ -2197,15 +2179,29 @@ v8_source_set("v8_base") { "src/objects/debug-objects-inl.h", "src/objects/debug-objects.cc", "src/objects/debug-objects.h", + "src/objects/descriptor-array-inl.h", "src/objects/descriptor-array.h", + "src/objects/dictionary-inl.h", "src/objects/dictionary.h", + "src/objects/embedder-data-array-inl.h", + "src/objects/embedder-data-array.cc", + "src/objects/embedder-data-array.h", + "src/objects/embedder-data-slot-inl.h", + "src/objects/embedder-data-slot.h", + "src/objects/feedback-cell-inl.h", + "src/objects/feedback-cell.h", "src/objects/fixed-array-inl.h", "src/objects/fixed-array.h", "src/objects/frame-array-inl.h", "src/objects/frame-array.h", "src/objects/hash-table-inl.h", "src/objects/hash-table.h", - "src/objects/intl-objects-inl.h", + "src/objects/heap-number-inl.h", + "src/objects/heap-number.h", + "src/objects/heap-object-inl.h", + "src/objects/heap-object.h", + "src/objects/instance-type-inl.h", + "src/objects/instance-type.h", "src/objects/intl-objects.cc", "src/objects/intl-objects.h", "src/objects/js-array-buffer-inl.h", @@ -2251,9 +2247,14 @@ v8_source_set("v8_base") { "src/objects/js-relative-time-format-inl.h", "src/objects/js-relative-time-format.cc", "src/objects/js-relative-time-format.h", + "src/objects/js-segment-iterator-inl.h", + "src/objects/js-segment-iterator.cc", + "src/objects/js-segment-iterator.h", "src/objects/js-segmenter-inl.h", "src/objects/js-segmenter.cc", "src/objects/js-segmenter.h", + "src/objects/js-weak-refs-inl.h", + "src/objects/js-weak-refs.h", "src/objects/literal-objects-inl.h", "src/objects/literal-objects.cc", "src/objects/literal-objects.h", @@ -2264,9 +2265,6 @@ v8_source_set("v8_base") { "src/objects/maybe-object-inl.h", "src/objects/maybe-object.h", "src/objects/microtask-inl.h", - "src/objects/microtask-queue-inl.h", - "src/objects/microtask-queue.cc", - "src/objects/microtask-queue.h", "src/objects/microtask.h", "src/objects/module-inl.h", "src/objects/module.cc", @@ -2275,6 +2273,8 @@ v8_source_set("v8_base") { "src/objects/name.h", "src/objects/object-macros-undef.h", "src/objects/object-macros.h", + "src/objects/oddball-inl.h", + "src/objects/oddball.h", "src/objects/ordered-hash-table-inl.h", "src/objects/ordered-hash-table.cc", "src/objects/ordered-hash-table.h", @@ -2282,6 +2282,8 @@ v8_source_set("v8_base") { "src/objects/promise.h", "src/objects/property-array-inl.h", "src/objects/property-array.h", + "src/objects/property-cell-inl.h", + "src/objects/property-cell.h", "src/objects/property-descriptor-object-inl.h", "src/objects/property-descriptor-object.h", "src/objects/prototype-info-inl.h", @@ -2293,11 +2295,17 @@ v8_source_set("v8_base") { "src/objects/script.h", "src/objects/shared-function-info-inl.h", "src/objects/shared-function-info.h", + "src/objects/slots-atomic-inl.h", + "src/objects/slots-inl.h", + "src/objects/slots.h", "src/objects/stack-frame-info-inl.h", "src/objects/stack-frame-info.h", "src/objects/string-inl.h", + "src/objects/string-table-inl.h", "src/objects/string-table.h", "src/objects/string.h", + "src/objects/struct-inl.h", + "src/objects/struct.h", "src/objects/template-objects.cc", "src/objects/template-objects.h", "src/objects/templates-inl.h", @@ -2306,10 +2314,9 @@ v8_source_set("v8_base") { "src/optimized-compilation-info.h", "src/ostreams.cc", "src/ostreams.h", - "src/parsing/duplicate-finder.h", - "src/parsing/expression-classifier.h", "src/parsing/expression-scope-reparenter.cc", "src/parsing/expression-scope-reparenter.h", + "src/parsing/expression-scope.h", "src/parsing/func-name-inferrer.cc", "src/parsing/func-name-inferrer.h", "src/parsing/parse-info.cc", @@ -2320,9 +2327,9 @@ v8_source_set("v8_base") { "src/parsing/parsing.cc", "src/parsing/parsing.h", "src/parsing/pattern-rewriter.cc", - "src/parsing/preparsed-scope-data-impl.h", - "src/parsing/preparsed-scope-data.cc", - "src/parsing/preparsed-scope-data.h", + "src/parsing/preparse-data-impl.h", + "src/parsing/preparse-data.cc", + "src/parsing/preparse-data.h", "src/parsing/preparser-logger.h", "src/parsing/preparser.cc", "src/parsing/preparser.h", @@ -2338,6 +2345,7 @@ v8_source_set("v8_base") { "src/pending-compilation-error-handler.h", "src/perf-jit.cc", "src/perf-jit.h", + "src/pointer-with-payload.h", "src/profiler/allocation-tracker.cc", "src/profiler/allocation-tracker.h", "src/profiler/circular-queue-inl.h", @@ -2371,6 +2379,8 @@ v8_source_set("v8_base") { "src/property.cc", "src/property.h", "src/prototype.h", + "src/ptr-compr-inl.h", + "src/ptr-compr.h", "src/regexp/bytecodes-irregexp.h", "src/regexp/interpreter-irregexp.cc", "src/regexp/interpreter-irregexp.h", @@ -2394,8 +2404,10 @@ v8_source_set("v8_base") { "src/regexp/regexp-stack.h", "src/regexp/regexp-utils.cc", "src/regexp/regexp-utils.h", + "src/register-arch.h", "src/register-configuration.cc", "src/register-configuration.h", + "src/register.h", "src/reglist.h", "src/reloc-info.cc", "src/reloc-info.h", @@ -2434,6 +2446,7 @@ v8_source_set("v8_base") { "src/runtime/runtime-typedarray.cc", "src/runtime/runtime-utils.h", "src/runtime/runtime-wasm.cc", + "src/runtime/runtime-weak-refs.cc", "src/runtime/runtime.cc", "src/runtime/runtime.h", "src/safepoint-table.cc", @@ -2443,23 +2456,14 @@ v8_source_set("v8_base") { "src/simulator-base.cc", "src/simulator-base.h", "src/simulator.h", - "src/snapshot/builtin-deserializer-allocator.cc", - "src/snapshot/builtin-deserializer-allocator.h", - "src/snapshot/builtin-deserializer.cc", - "src/snapshot/builtin-deserializer.h", - "src/snapshot/builtin-serializer-allocator.cc", - "src/snapshot/builtin-serializer-allocator.h", - "src/snapshot/builtin-serializer.cc", - "src/snapshot/builtin-serializer.h", "src/snapshot/code-serializer.cc", "src/snapshot/code-serializer.h", - "src/snapshot/default-deserializer-allocator.cc", - "src/snapshot/default-deserializer-allocator.h", - "src/snapshot/default-serializer-allocator.cc", - "src/snapshot/default-serializer-allocator.h", + "src/snapshot/deserializer-allocator.cc", + "src/snapshot/deserializer-allocator.h", "src/snapshot/deserializer.cc", "src/snapshot/deserializer.h", - "src/snapshot/macros.h", + "src/snapshot/embedded-data.cc", + "src/snapshot/embedded-data.h", "src/snapshot/natives-common.cc", "src/snapshot/natives.h", "src/snapshot/object-deserializer.cc", @@ -2468,7 +2472,15 @@ v8_source_set("v8_base") { "src/snapshot/partial-deserializer.h", "src/snapshot/partial-serializer.cc", "src/snapshot/partial-serializer.h", + "src/snapshot/read-only-deserializer.cc", + "src/snapshot/read-only-deserializer.h", + "src/snapshot/read-only-serializer.cc", + "src/snapshot/read-only-serializer.h", "src/snapshot/references.h", + "src/snapshot/roots-serializer.cc", + "src/snapshot/roots-serializer.h", + "src/snapshot/serializer-allocator.cc", + "src/snapshot/serializer-allocator.h", "src/snapshot/serializer-common.cc", "src/snapshot/serializer-common.h", "src/snapshot/serializer.cc", @@ -2502,8 +2514,13 @@ v8_source_set("v8_base") { "src/string-stream.h", "src/strtod.cc", "src/strtod.h", + "src/task-utils.cc", + "src/task-utils.h", + "src/third_party/siphash/halfsiphash.cc", + "src/third_party/siphash/halfsiphash.h", "src/third_party/utf8-decoder/utf8-decoder.h", - "src/torque-assembler.h", + "src/thread-id.cc", + "src/thread-id.h", "src/tracing/trace-event.cc", "src/tracing/trace-event.h", "src/tracing/traced-value.cc", @@ -2522,7 +2539,6 @@ v8_source_set("v8_base") { "src/turbo-assembler.h", "src/type-hints.cc", "src/type-hints.h", - "src/unicode-cache-inl.h", "src/unicode-cache.h", "src/unicode-decoder.cc", "src/unicode-decoder.h", @@ -2531,6 +2547,7 @@ v8_source_set("v8_base") { "src/unicode.h", "src/unoptimized-compilation-info.cc", "src/unoptimized-compilation-info.h", + "src/unwinder.cc", "src/uri.cc", "src/uri.h", "src/utils-inl.h", @@ -2558,12 +2575,16 @@ v8_source_set("v8_base") { "src/wasm/baseline/liftoff-compiler.cc", "src/wasm/baseline/liftoff-compiler.h", "src/wasm/baseline/liftoff-register.h", + "src/wasm/compilation-environment.h", "src/wasm/decoder.h", "src/wasm/function-body-decoder-impl.h", "src/wasm/function-body-decoder.cc", "src/wasm/function-body-decoder.h", "src/wasm/function-compiler.cc", "src/wasm/function-compiler.h", + "src/wasm/graph-builder-interface.cc", + "src/wasm/graph-builder-interface.h", + "src/wasm/js-to-wasm-wrapper-cache-inl.h", "src/wasm/jump-table-assembler.cc", "src/wasm/jump-table-assembler.h", "src/wasm/leb-helper.h", @@ -2575,6 +2596,8 @@ v8_source_set("v8_base") { "src/wasm/module-compiler.h", "src/wasm/module-decoder.cc", "src/wasm/module-decoder.h", + "src/wasm/module-instantiate.cc", + "src/wasm/module-instantiate.h", "src/wasm/object-access.h", "src/wasm/signature-map.cc", "src/wasm/signature-map.h", @@ -2592,6 +2615,7 @@ v8_source_set("v8_base") { "src/wasm/wasm-feature-flags.h", "src/wasm/wasm-features.cc", "src/wasm/wasm-features.h", + "src/wasm/wasm-import-wrapper-cache-inl.h", "src/wasm/wasm-interpreter.cc", "src/wasm/wasm-interpreter.h", "src/wasm/wasm-js.cc", @@ -2645,7 +2669,6 @@ v8_source_set("v8_base") { # These source files take an unusually large amount of time to # compile. Build them separately to avoid bottlenecks. "src/api.cc", - "src/code-stub-assembler.cc", "src/elements.cc", "src/heap/heap.cc", "src/objects.cc", @@ -2655,16 +2678,14 @@ v8_source_set("v8_base") { if (v8_current_cpu == "x86") { sources += [ ### gcmole(arch:ia32) ### - "src/compiler/ia32/code-generator-ia32.cc", - "src/compiler/ia32/instruction-codes-ia32.h", - "src/compiler/ia32/instruction-scheduler-ia32.cc", - "src/compiler/ia32/instruction-selector-ia32.cc", + "src/compiler/backend/ia32/code-generator-ia32.cc", + "src/compiler/backend/ia32/instruction-codes-ia32.h", + "src/compiler/backend/ia32/instruction-scheduler-ia32.cc", + "src/compiler/backend/ia32/instruction-selector-ia32.cc", "src/debug/ia32/debug-ia32.cc", "src/ia32/assembler-ia32-inl.h", "src/ia32/assembler-ia32.cc", "src/ia32/assembler-ia32.h", - "src/ia32/code-stubs-ia32.cc", - "src/ia32/codegen-ia32.cc", "src/ia32/constants-ia32.h", "src/ia32/cpu-ia32.cc", "src/ia32/deoptimizer-ia32.cc", @@ -2674,8 +2695,7 @@ v8_source_set("v8_base") { "src/ia32/interface-descriptors-ia32.cc", "src/ia32/macro-assembler-ia32.cc", "src/ia32/macro-assembler-ia32.h", - "src/ia32/simulator-ia32.cc", - "src/ia32/simulator-ia32.h", + "src/ia32/register-ia32.h", "src/ia32/sse-instr.h", "src/regexp/ia32/regexp-macro-assembler-ia32.cc", "src/regexp/ia32/regexp-macro-assembler-ia32.h", @@ -2683,12 +2703,12 @@ v8_source_set("v8_base") { ] } else if (v8_current_cpu == "x64") { sources += [ ### gcmole(arch:x64) ### - "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/compiler/backend/x64/code-generator-x64.cc", + "src/compiler/backend/x64/instruction-codes-x64.h", + "src/compiler/backend/x64/instruction-scheduler-x64.cc", + "src/compiler/backend/x64/instruction-selector-x64.cc", + "src/compiler/backend/x64/unwinding-info-writer-x64.cc", + "src/compiler/backend/x64/unwinding-info-writer-x64.h", "src/debug/x64/debug-x64.cc", "src/regexp/x64/regexp-macro-assembler-x64.cc", "src/regexp/x64/regexp-macro-assembler-x64.h", @@ -2697,8 +2717,6 @@ v8_source_set("v8_base") { "src/x64/assembler-x64-inl.h", "src/x64/assembler-x64.cc", "src/x64/assembler-x64.h", - "src/x64/code-stubs-x64.cc", - "src/x64/codegen-x64.cc", "src/x64/constants-x64.h", "src/x64/cpu-x64.cc", "src/x64/deoptimizer-x64.cc", @@ -2709,27 +2727,28 @@ v8_source_set("v8_base") { "src/x64/interface-descriptors-x64.cc", "src/x64/macro-assembler-x64.cc", "src/x64/macro-assembler-x64.h", - "src/x64/simulator-x64.cc", - "src/x64/simulator-x64.h", + "src/x64/register-x64.h", "src/x64/sse-instr.h", ] - if (is_linux) { + if (is_linux || is_mac) { sources += [ - "src/trap-handler/handler-inside-linux.cc", - "src/trap-handler/handler-outside-linux.cc", + "src/trap-handler/handler-inside-posix.cc", + "src/trap-handler/handler-inside-posix.h", + "src/trap-handler/handler-outside-posix.cc", ] } if (is_win) { - sources += [ "src/trap-handler/handler-outside-win.cc" ] + sources += [ + "src/trap-handler/handler-inside-win.cc", + "src/trap-handler/handler-inside-win.h", + "src/trap-handler/handler-outside-win.cc", + ] } } else if (v8_current_cpu == "arm") { sources += [ ### gcmole(arch:arm) ### "src/arm/assembler-arm-inl.h", "src/arm/assembler-arm.cc", "src/arm/assembler-arm.h", - "src/arm/code-stubs-arm.cc", - "src/arm/code-stubs-arm.h", - "src/arm/codegen-arm.cc", "src/arm/constants-arm.cc", "src/arm/constants-arm.h", "src/arm/cpu-arm.cc", @@ -2741,14 +2760,15 @@ v8_source_set("v8_base") { "src/arm/interface-descriptors-arm.cc", "src/arm/macro-assembler-arm.cc", "src/arm/macro-assembler-arm.h", + "src/arm/register-arm.h", "src/arm/simulator-arm.cc", "src/arm/simulator-arm.h", - "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/compiler/backend/arm/code-generator-arm.cc", + "src/compiler/backend/arm/instruction-codes-arm.h", + "src/compiler/backend/arm/instruction-scheduler-arm.cc", + "src/compiler/backend/arm/instruction-selector-arm.cc", + "src/compiler/backend/arm/unwinding-info-writer-arm.cc", + "src/compiler/backend/arm/unwinding-info-writer-arm.h", "src/debug/arm/debug-arm.cc", "src/regexp/arm/regexp-macro-assembler-arm.cc", "src/regexp/arm/regexp-macro-assembler-arm.h", @@ -2759,9 +2779,6 @@ v8_source_set("v8_base") { "src/arm64/assembler-arm64-inl.h", "src/arm64/assembler-arm64.cc", "src/arm64/assembler-arm64.h", - "src/arm64/code-stubs-arm64.cc", - "src/arm64/code-stubs-arm64.h", - "src/arm64/codegen-arm64.cc", "src/arm64/constants-arm64.h", "src/arm64/cpu-arm64.cc", "src/arm64/decoder-arm64-inl.h", @@ -2782,17 +2799,19 @@ v8_source_set("v8_base") { "src/arm64/macro-assembler-arm64-inl.h", "src/arm64/macro-assembler-arm64.cc", "src/arm64/macro-assembler-arm64.h", + "src/arm64/register-arm64.cc", + "src/arm64/register-arm64.h", "src/arm64/simulator-arm64.cc", "src/arm64/simulator-arm64.h", "src/arm64/simulator-logic-arm64.cc", "src/arm64/utils-arm64.cc", "src/arm64/utils-arm64.h", - "src/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/compiler/backend/arm64/code-generator-arm64.cc", + "src/compiler/backend/arm64/instruction-codes-arm64.h", + "src/compiler/backend/arm64/instruction-scheduler-arm64.cc", + "src/compiler/backend/arm64/instruction-selector-arm64.cc", + "src/compiler/backend/arm64/unwinding-info-writer-arm64.cc", + "src/compiler/backend/arm64/unwinding-info-writer-arm64.h", "src/debug/arm64/debug-arm64.cc", "src/regexp/arm64/regexp-macro-assembler-arm64.cc", "src/regexp/arm64/regexp-macro-assembler-arm64.h", @@ -2807,17 +2826,14 @@ v8_source_set("v8_base") { } } else if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel") { sources += [ ### gcmole(arch:mipsel) ### - "src/compiler/mips/code-generator-mips.cc", - "src/compiler/mips/instruction-codes-mips.h", - "src/compiler/mips/instruction-scheduler-mips.cc", - "src/compiler/mips/instruction-selector-mips.cc", + "src/compiler/backend/mips/code-generator-mips.cc", + "src/compiler/backend/mips/instruction-codes-mips.h", + "src/compiler/backend/mips/instruction-scheduler-mips.cc", + "src/compiler/backend/mips/instruction-selector-mips.cc", "src/debug/mips/debug-mips.cc", "src/mips/assembler-mips-inl.h", "src/mips/assembler-mips.cc", "src/mips/assembler-mips.h", - "src/mips/code-stubs-mips.cc", - "src/mips/code-stubs-mips.h", - "src/mips/codegen-mips.cc", "src/mips/constants-mips.cc", "src/mips/constants-mips.h", "src/mips/cpu-mips.cc", @@ -2828,6 +2844,7 @@ v8_source_set("v8_base") { "src/mips/interface-descriptors-mips.cc", "src/mips/macro-assembler-mips.cc", "src/mips/macro-assembler-mips.h", + "src/mips/register-mips.h", "src/mips/simulator-mips.cc", "src/mips/simulator-mips.h", "src/regexp/mips/regexp-macro-assembler-mips.cc", @@ -2836,17 +2853,14 @@ v8_source_set("v8_base") { ] } else if (v8_current_cpu == "mips64" || v8_current_cpu == "mips64el") { sources += [ ### gcmole(arch:mips64el) ### - "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/compiler/backend/mips64/code-generator-mips64.cc", + "src/compiler/backend/mips64/instruction-codes-mips64.h", + "src/compiler/backend/mips64/instruction-scheduler-mips64.cc", + "src/compiler/backend/mips64/instruction-selector-mips64.cc", "src/debug/mips64/debug-mips64.cc", "src/mips64/assembler-mips64-inl.h", "src/mips64/assembler-mips64.cc", "src/mips64/assembler-mips64.h", - "src/mips64/code-stubs-mips64.cc", - "src/mips64/code-stubs-mips64.h", - "src/mips64/codegen-mips64.cc", "src/mips64/constants-mips64.cc", "src/mips64/constants-mips64.h", "src/mips64/cpu-mips64.cc", @@ -2857,6 +2871,7 @@ v8_source_set("v8_base") { "src/mips64/interface-descriptors-mips64.cc", "src/mips64/macro-assembler-mips64.cc", "src/mips64/macro-assembler-mips64.h", + "src/mips64/register-mips64.h", "src/mips64/simulator-mips64.cc", "src/mips64/simulator-mips64.h", "src/regexp/mips64/regexp-macro-assembler-mips64.cc", @@ -2865,17 +2880,14 @@ v8_source_set("v8_base") { ] } else if (v8_current_cpu == "ppc" || v8_current_cpu == "ppc64") { sources += [ ### gcmole(arch:ppc) ### - "src/compiler/ppc/code-generator-ppc.cc", - "src/compiler/ppc/instruction-codes-ppc.h", - "src/compiler/ppc/instruction-scheduler-ppc.cc", - "src/compiler/ppc/instruction-selector-ppc.cc", + "src/compiler/backend/ppc/code-generator-ppc.cc", + "src/compiler/backend/ppc/instruction-codes-ppc.h", + "src/compiler/backend/ppc/instruction-scheduler-ppc.cc", + "src/compiler/backend/ppc/instruction-selector-ppc.cc", "src/debug/ppc/debug-ppc.cc", "src/ppc/assembler-ppc-inl.h", "src/ppc/assembler-ppc.cc", "src/ppc/assembler-ppc.h", - "src/ppc/code-stubs-ppc.cc", - "src/ppc/code-stubs-ppc.h", - "src/ppc/codegen-ppc.cc", "src/ppc/constants-ppc.cc", "src/ppc/constants-ppc.h", "src/ppc/cpu-ppc.cc", @@ -2886,6 +2898,7 @@ v8_source_set("v8_base") { "src/ppc/interface-descriptors-ppc.cc", "src/ppc/macro-assembler-ppc.cc", "src/ppc/macro-assembler-ppc.h", + "src/ppc/register-ppc.h", "src/ppc/simulator-ppc.cc", "src/ppc/simulator-ppc.h", "src/regexp/ppc/regexp-macro-assembler-ppc.cc", @@ -2894,19 +2907,16 @@ v8_source_set("v8_base") { ] } else if (v8_current_cpu == "s390" || v8_current_cpu == "s390x") { sources += [ ### gcmole(arch:s390) ### - "src/compiler/s390/code-generator-s390.cc", - "src/compiler/s390/instruction-codes-s390.h", - "src/compiler/s390/instruction-scheduler-s390.cc", - "src/compiler/s390/instruction-selector-s390.cc", + "src/compiler/backend/s390/code-generator-s390.cc", + "src/compiler/backend/s390/instruction-codes-s390.h", + "src/compiler/backend/s390/instruction-scheduler-s390.cc", + "src/compiler/backend/s390/instruction-selector-s390.cc", "src/debug/s390/debug-s390.cc", "src/regexp/s390/regexp-macro-assembler-s390.cc", "src/regexp/s390/regexp-macro-assembler-s390.h", "src/s390/assembler-s390-inl.h", "src/s390/assembler-s390.cc", "src/s390/assembler-s390.h", - "src/s390/code-stubs-s390.cc", - "src/s390/code-stubs-s390.h", - "src/s390/codegen-s390.cc", "src/s390/constants-s390.cc", "src/s390/constants-s390.h", "src/s390/cpu-s390.cc", @@ -2917,6 +2927,7 @@ v8_source_set("v8_base") { "src/s390/interface-descriptors-s390.cc", "src/s390/macro-assembler-s390.cc", "src/s390/macro-assembler-s390.h", + "src/s390/register-s390.h", "src/s390/simulator-s390.cc", "src/s390/simulator-s390.h", "src/wasm/baseline/s390/liftoff-assembler-s390.h", @@ -2928,7 +2939,7 @@ v8_source_set("v8_base") { defines = [] deps = [ ":generate_bytecode_builtins_list", - ":torque_generated_core", + ":run_torque", ":v8_headers", ":v8_libbase", ":v8_libsampler", @@ -2946,9 +2957,6 @@ v8_source_set("v8_base") { sources -= [ "src/builtins/builtins-intl.cc", "src/char-predicates.cc", - "src/intl.cc", - "src/intl.h", - "src/objects/intl-objects-inl.h", "src/objects/intl-objects.cc", "src/objects/intl-objects.h", "src/objects/js-break-iterator-inl.h", @@ -2975,6 +2983,9 @@ v8_source_set("v8_base") { "src/objects/js-relative-time-format-inl.h", "src/objects/js-relative-time-format.cc", "src/objects/js-relative-time-format.h", + "src/objects/js-segment-iterator-inl.h", + "src/objects/js-segment-iterator.cc", + "src/objects/js-segment-iterator.h", "src/objects/js-segmenter-inl.h", "src/objects/js-segmenter.cc", "src/objects/js-segmenter.h", @@ -3022,8 +3033,6 @@ v8_source_set("torque_base") { "src/torque/implementation-visitor.h", "src/torque/instructions.cc", "src/torque/instructions.h", - "src/torque/scope.cc", - "src/torque/scope.h", "src/torque/source-positions.cc", "src/torque/source-positions.h", "src/torque/torque-parser.cc", @@ -3068,6 +3077,7 @@ v8_component("v8_libbase") { "src/base/debug/stack_trace.h", "src/base/division-by-constant.cc", "src/base/division-by-constant.h", + "src/base/enum-set.h", "src/base/export-template.h", "src/base/file-utils.cc", "src/base/file-utils.h", @@ -3091,6 +3101,7 @@ v8_component("v8_libbase") { "src/base/once.cc", "src/base/once.h", "src/base/optional.h", + "src/base/overflowing-math.h", "src/base/page-allocator.cc", "src/base/page-allocator.h", "src/base/platform/condition-variable.cc", @@ -3110,6 +3121,7 @@ v8_component("v8_libbase") { "src/base/safe_conversions_impl.h", "src/base/safe_math.h", "src/base/safe_math_impl.h", + "src/base/small-vector.h", "src/base/sys-info.cc", "src/base/sys-info.h", "src/base/template-utils.h", @@ -3221,6 +3233,14 @@ v8_component("v8_libbase") { data_deps += [ "//build/win:runtime_libs" ] } + if (v8_current_cpu == "mips" || v8_current_cpu == "mips64") { + # Add runtime libs for mips. + data += [ + "tools/mips_toolchain/sysroot/usr/lib/", + "tools/mips_toolchain/mips-mti-linux-gnu/lib", + ] + } + if (is_tsan && !build_with_chromium) { data += [ "tools/sanitizers/tsan_suppressions.txt" ] } @@ -3360,6 +3380,8 @@ if (v8_use_snapshot && current_toolchain == v8_snapshot_toolchain) { visibility = [ ":*" ] # Only targets in this file can depend on this. sources = [ + "src/snapshot/embedded-file-writer.cc", + "src/snapshot/embedded-file-writer.h", "src/snapshot/mksnapshot.cc", ] @@ -3373,6 +3395,10 @@ if (v8_use_snapshot && current_toolchain == v8_snapshot_toolchain) { ":v8_nosnapshot", "//build/win:default_exe_manifest", ] + + if (target_os == "fuchsia") { + defines = [ "V8_TARGET_OS_FUCHSIA" ] + } } } @@ -3450,8 +3476,12 @@ group("v8_archive") { deps = [ ":d8", - "test/cctest:cctest", ] + + if (!is_win) { + # On windows, cctest doesn't link with v8_static_library. + deps += [ "test/cctest:cctest" ] + } } # TODO(dglazkov): Remove the "!build_with_chromium" condition once this clause @@ -3483,14 +3513,7 @@ group("v8_fuzzers") { ":v8_simple_wasm_async_fuzzer", ":v8_simple_wasm_code_fuzzer", ":v8_simple_wasm_compile_fuzzer", - ":v8_simple_wasm_data_section_fuzzer", - ":v8_simple_wasm_function_sigs_section_fuzzer", ":v8_simple_wasm_fuzzer", - ":v8_simple_wasm_globals_section_fuzzer", - ":v8_simple_wasm_imports_section_fuzzer", - ":v8_simple_wasm_memory_section_fuzzer", - ":v8_simple_wasm_names_section_fuzzer", - ":v8_simple_wasm_types_section_fuzzer", ] } @@ -3560,11 +3583,13 @@ if (is_component_build) { v8_executable("d8") { sources = [ - "$target_gen_dir/d8-js.cc", "src/async-hooks-wrapper.cc", "src/async-hooks-wrapper.h", "src/d8-console.cc", "src/d8-console.h", + "src/d8-js.cc", + "src/d8-platforms.cc", + "src/d8-platforms.h", "src/d8.cc", "src/d8.h", ] @@ -3577,7 +3602,6 @@ v8_executable("d8") { ] deps = [ - ":d8_js2c", ":v8", ":v8_libbase", ":v8_libplatform", @@ -3779,7 +3803,7 @@ v8_source_set("wasm_module_runner") { deps = [ ":generate_bytecode_builtins_list", - ":torque_generated_core", + ":run_torque", ] if (v8_enable_i18n_support) { @@ -3863,7 +3887,7 @@ v8_source_set("lib_wasm_fuzzer_common") { deps = [ ":generate_bytecode_builtins_list", - ":torque_generated_core", + ":run_torque", ] if (v8_enable_i18n_support) { @@ -3878,129 +3902,10 @@ v8_source_set("lib_wasm_fuzzer_common") { ] } -v8_source_set("wasm_types_section_fuzzer") { - sources = [ - "test/fuzzer/wasm-types-section.cc", - ] - - deps = [ - ":fuzzer_support", - ":lib_wasm_fuzzer_common", - ":wasm_module_runner", - ] - - configs = [ - ":external_config", - ":internal_config_base", - ] -} - -v8_fuzzer("wasm_types_section_fuzzer") { -} - -v8_source_set("wasm_names_section_fuzzer") { - sources = [ - "test/fuzzer/wasm-names-section.cc", - ] - - deps = [ - ":fuzzer_support", - ":lib_wasm_fuzzer_common", - ":wasm_module_runner", - ] - - configs = [ - ":external_config", - ":internal_config_base", - ] -} - -v8_fuzzer("wasm_names_section_fuzzer") { -} - -v8_source_set("wasm_globals_section_fuzzer") { - sources = [ - "test/fuzzer/wasm-globals-section.cc", - ] - - deps = [ - ":fuzzer_support", - ":lib_wasm_fuzzer_common", - ":wasm_module_runner", - ] - - configs = [ - ":external_config", - ":internal_config_base", - ] -} - -v8_fuzzer("wasm_globals_section_fuzzer") { -} - -v8_source_set("wasm_imports_section_fuzzer") { - sources = [ - "test/fuzzer/wasm-imports-section.cc", - ] - - deps = [ - ":fuzzer_support", - ":lib_wasm_fuzzer_common", - ":wasm_module_runner", - ] - - configs = [ - ":external_config", - ":internal_config_base", - ] -} - -v8_fuzzer("wasm_imports_section_fuzzer") { -} - -v8_source_set("wasm_function_sigs_section_fuzzer") { - sources = [ - "test/fuzzer/wasm-function-sigs-section.cc", - ] - - deps = [ - ":fuzzer_support", - ":lib_wasm_fuzzer_common", - ":wasm_module_runner", - ] - - configs = [ - ":external_config", - ":internal_config_base", - ] -} - -v8_fuzzer("wasm_function_sigs_section_fuzzer") { -} - -v8_source_set("wasm_memory_section_fuzzer") { - sources = [ - "test/fuzzer/wasm-memory-section.cc", - ] - - deps = [ - ":fuzzer_support", - ":lib_wasm_fuzzer_common", - ":wasm_module_runner", - ] - - configs = [ - ":external_config", - ":internal_config_base", - ] -} - -v8_fuzzer("wasm_memory_section_fuzzer") { -} - -v8_source_set("wasm_data_section_fuzzer") { +v8_source_set("wasm_compile_fuzzer") { sources = [ - "test/fuzzer/wasm-data-section.cc", + "test/common/wasm/test-signatures.h", + "test/fuzzer/wasm-compile.cc", ] deps = [ @@ -4015,26 +3920,18 @@ v8_source_set("wasm_data_section_fuzzer") { ] } -v8_fuzzer("wasm_data_section_fuzzer") { +v8_fuzzer("wasm_compile_fuzzer") { } -v8_source_set("wasm_compile_fuzzer") { - sources = [ - "test/common/wasm/test-signatures.h", - "test/fuzzer/wasm-compile.cc", - ] +# Target to build all generated .cc files. +group("v8_generated_cc_files") { + testonly = true deps = [ - ":fuzzer_support", - ":lib_wasm_fuzzer_common", - ":wasm_module_runner", - ] - - configs = [ - ":external_config", - ":internal_config_base", + ":generate_bytecode_builtins_list", + ":js2c_extras", + ":run_torque", + "src/inspector:v8_generated_cc_files", + "test/cctest:v8_generated_cc_files", ] } - -v8_fuzzer("wasm_compile_fuzzer") { -} diff --git a/deps/v8/ChangeLog b/deps/v8/ChangeLog index a3377ab473cdf4..62b3ace776f1c4 100644 --- a/deps/v8/ChangeLog +++ b/deps/v8/ChangeLog @@ -1,3 +1,5083 @@ +2019-01-23: Version 7.3.492 + + Performance and stability improvements on all platforms. + + +2019-01-23: Version 7.3.491 + + Performance and stability improvements on all platforms. + + +2019-01-23: Version 7.3.490 + + Performance and stability improvements on all platforms. + + +2019-01-23: Version 7.3.489 + + Performance and stability improvements on all platforms. + + +2019-01-23: Version 7.3.488 + + Performance and stability improvements on all platforms. + + +2019-01-22: Version 7.3.487 + + Performance and stability improvements on all platforms. + + +2019-01-22: Version 7.3.486 + + Performance and stability improvements on all platforms. + + +2019-01-22: Version 7.3.485 + + Performance and stability improvements on all platforms. + + +2019-01-22: Version 7.3.484 + + Performance and stability improvements on all platforms. + + +2019-01-22: Version 7.3.483 + + Performance and stability improvements on all platforms. + + +2019-01-22: Version 7.3.482 + + Performance and stability improvements on all platforms. + + +2019-01-22: Version 7.3.481 + + Performance and stability improvements on all platforms. + + +2019-01-22: Version 7.3.480 + + Performance and stability improvements on all platforms. + + +2019-01-22: Version 7.3.479 + + Performance and stability improvements on all platforms. + + +2019-01-22: Version 7.3.478 + + Performance and stability improvements on all platforms. + + +2019-01-22: Version 7.3.477 + + Performance and stability improvements on all platforms. + + +2019-01-22: Version 7.3.476 + + Performance and stability improvements on all platforms. + + +2019-01-22: Version 7.3.475 + + Performance and stability improvements on all platforms. + + +2019-01-22: Version 7.3.474 + + Performance and stability improvements on all platforms. + + +2019-01-22: Version 7.3.473 + + Performance and stability improvements on all platforms. + + +2019-01-22: Version 7.3.472 + + Performance and stability improvements on all platforms. + + +2019-01-21: Version 7.3.471 + + Performance and stability improvements on all platforms. + + +2019-01-21: Version 7.3.470 + + Performance and stability improvements on all platforms. + + +2019-01-21: Version 7.3.469 + + Performance and stability improvements on all platforms. + + +2019-01-21: Version 7.3.468 + + Performance and stability improvements on all platforms. + + +2019-01-21: Version 7.3.467 + + Performance and stability improvements on all platforms. + + +2019-01-21: Version 7.3.466 + + Performance and stability improvements on all platforms. + + +2019-01-21: Version 7.3.465 + + Performance and stability improvements on all platforms. + + +2019-01-21: Version 7.3.464 + + Performance and stability improvements on all platforms. + + +2019-01-21: Version 7.3.463 + + Performance and stability improvements on all platforms. + + +2019-01-21: Version 7.3.462 + + Performance and stability improvements on all platforms. + + +2019-01-21: Version 7.3.461 + + Performance and stability improvements on all platforms. + + +2019-01-21: Version 7.3.460 + + Performance and stability improvements on all platforms. + + +2019-01-21: Version 7.3.459 + + Performance and stability improvements on all platforms. + + +2019-01-21: Version 7.3.458 + + Performance and stability improvements on all platforms. + + +2019-01-21: Version 7.3.457 + + Performance and stability improvements on all platforms. + + +2019-01-21: Version 7.3.456 + + Performance and stability improvements on all platforms. + + +2019-01-21: Version 7.3.455 + + Performance and stability improvements on all platforms. + + +2019-01-21: Version 7.3.454 + + Performance and stability improvements on all platforms. + + +2019-01-21: Version 7.3.453 + + Performance and stability improvements on all platforms. + + +2019-01-21: Version 7.3.452 + + Performance and stability improvements on all platforms. + + +2019-01-18: Version 7.3.451 + + Performance and stability improvements on all platforms. + + +2019-01-18: Version 7.3.450 + + Performance and stability improvements on all platforms. + + +2019-01-18: Version 7.3.449 + + Performance and stability improvements on all platforms. + + +2019-01-18: Version 7.3.448 + + Performance and stability improvements on all platforms. + + +2019-01-18: Version 7.3.447 + + Performance and stability improvements on all platforms. + + +2019-01-18: Version 7.3.446 + + Performance and stability improvements on all platforms. + + +2019-01-18: Version 7.3.445 + + Performance and stability improvements on all platforms. + + +2019-01-18: Version 7.3.444 + + Performance and stability improvements on all platforms. + + +2019-01-18: Version 7.3.443 + + Performance and stability improvements on all platforms. + + +2019-01-18: Version 7.3.442 + + Performance and stability improvements on all platforms. + + +2019-01-18: Version 7.3.441 + + Performance and stability improvements on all platforms. + + +2019-01-18: Version 7.3.440 + + Performance and stability improvements on all platforms. + + +2019-01-18: Version 7.3.439 + + Performance and stability improvements on all platforms. + + +2019-01-17: Version 7.3.438 + + Performance and stability improvements on all platforms. + + +2019-01-17: Version 7.3.437 + + Performance and stability improvements on all platforms. + + +2019-01-17: Version 7.3.436 + + Performance and stability improvements on all platforms. + + +2019-01-17: Version 7.3.435 + + Performance and stability improvements on all platforms. + + +2019-01-17: Version 7.3.434 + + Performance and stability improvements on all platforms. + + +2019-01-17: Version 7.3.433 + + Performance and stability improvements on all platforms. + + +2019-01-17: Version 7.3.432 + + Performance and stability improvements on all platforms. + + +2019-01-17: Version 7.3.431 + + Performance and stability improvements on all platforms. + + +2019-01-17: Version 7.3.430 + + Performance and stability improvements on all platforms. + + +2019-01-17: Version 7.3.429 + + Performance and stability improvements on all platforms. + + +2019-01-16: Version 7.3.428 + + Performance and stability improvements on all platforms. + + +2019-01-16: Version 7.3.427 + + Performance and stability improvements on all platforms. + + +2019-01-16: Version 7.3.426 + + Performance and stability improvements on all platforms. + + +2019-01-16: Version 7.3.425 + + Performance and stability improvements on all platforms. + + +2019-01-16: Version 7.3.424 + + Performance and stability improvements on all platforms. + + +2019-01-16: Version 7.3.423 + + Performance and stability improvements on all platforms. + + +2019-01-16: Version 7.3.422 + + Performance and stability improvements on all platforms. + + +2019-01-16: Version 7.3.421 + + Performance and stability improvements on all platforms. + + +2019-01-16: Version 7.3.420 + + Performance and stability improvements on all platforms. + + +2019-01-16: Version 7.3.419 + + Performance and stability improvements on all platforms. + + +2019-01-16: Version 7.3.418 + + Performance and stability improvements on all platforms. + + +2019-01-16: Version 7.3.417 + + Performance and stability improvements on all platforms. + + +2019-01-16: Version 7.3.416 + + Performance and stability improvements on all platforms. + + +2019-01-16: Version 7.3.415 + + Performance and stability improvements on all platforms. + + +2019-01-16: Version 7.3.414 + + Performance and stability improvements on all platforms. + + +2019-01-16: Version 7.3.413 + + Performance and stability improvements on all platforms. + + +2019-01-15: Version 7.3.412 + + Performance and stability improvements on all platforms. + + +2019-01-15: Version 7.3.411 + + Performance and stability improvements on all platforms. + + +2019-01-15: Version 7.3.410 + + Performance and stability improvements on all platforms. + + +2019-01-15: Version 7.3.409 + + Performance and stability improvements on all platforms. + + +2019-01-15: Version 7.3.408 + + Performance and stability improvements on all platforms. + + +2019-01-15: Version 7.3.407 + + Performance and stability improvements on all platforms. + + +2019-01-15: Version 7.3.406 + + Performance and stability improvements on all platforms. + + +2019-01-15: Version 7.3.405 + + Performance and stability improvements on all platforms. + + +2019-01-15: Version 7.3.404 + + Performance and stability improvements on all platforms. + + +2019-01-15: Version 7.3.403 + + Performance and stability improvements on all platforms. + + +2019-01-15: Version 7.3.402 + + Performance and stability improvements on all platforms. + + +2019-01-15: Version 7.3.401 + + Performance and stability improvements on all platforms. + + +2019-01-15: Version 7.3.400 + + Performance and stability improvements on all platforms. + + +2019-01-14: Version 7.3.399 + + Performance and stability improvements on all platforms. + + +2019-01-14: Version 7.3.398 + + Performance and stability improvements on all platforms. + + +2019-01-14: Version 7.3.397 + + Performance and stability improvements on all platforms. + + +2019-01-14: Version 7.3.396 + + Performance and stability improvements on all platforms. + + +2019-01-14: Version 7.3.395 + + Performance and stability improvements on all platforms. + + +2019-01-14: Version 7.3.394 + + Performance and stability improvements on all platforms. + + +2019-01-14: Version 7.3.393 + + Performance and stability improvements on all platforms. + + +2019-01-14: Version 7.3.392 + + Performance and stability improvements on all platforms. + + +2019-01-14: Version 7.3.391 + + Performance and stability improvements on all platforms. + + +2019-01-14: Version 7.3.390 + + Performance and stability improvements on all platforms. + + +2019-01-14: Version 7.3.389 + + Performance and stability improvements on all platforms. + + +2019-01-14: Version 7.3.388 + + Performance and stability improvements on all platforms. + + +2019-01-14: Version 7.3.387 + + Performance and stability improvements on all platforms. + + +2019-01-14: Version 7.3.386 + + Performance and stability improvements on all platforms. + + +2019-01-14: Version 7.3.385 + + Performance and stability improvements on all platforms. + + +2019-01-14: Version 7.3.384 + + Performance and stability improvements on all platforms. + + +2019-01-14: Version 7.3.383 + + Performance and stability improvements on all platforms. + + +2019-01-14: Version 7.3.382 + + Performance and stability improvements on all platforms. + + +2019-01-13: Version 7.3.381 + + Performance and stability improvements on all platforms. + + +2019-01-12: Version 7.3.380 + + Performance and stability improvements on all platforms. + + +2019-01-12: Version 7.3.379 + + Performance and stability improvements on all platforms. + + +2019-01-12: Version 7.3.378 + + Performance and stability improvements on all platforms. + + +2019-01-11: Version 7.3.377 + + Performance and stability improvements on all platforms. + + +2019-01-11: Version 7.3.376 + + Performance and stability improvements on all platforms. + + +2019-01-11: Version 7.3.375 + + Performance and stability improvements on all platforms. + + +2019-01-11: Version 7.3.374 + + Performance and stability improvements on all platforms. + + +2019-01-11: Version 7.3.373 + + Performance and stability improvements on all platforms. + + +2019-01-11: Version 7.3.372 + + Performance and stability improvements on all platforms. + + +2019-01-11: Version 7.3.371 + + Performance and stability improvements on all platforms. + + +2019-01-11: Version 7.3.370 + + Performance and stability improvements on all platforms. + + +2019-01-11: Version 7.3.369 + + Performance and stability improvements on all platforms. + + +2019-01-11: Version 7.3.368 + + Performance and stability improvements on all platforms. + + +2019-01-11: Version 7.3.367 + + Performance and stability improvements on all platforms. + + +2019-01-11: Version 7.3.366 + + Performance and stability improvements on all platforms. + + +2019-01-11: Version 7.3.365 + + Performance and stability improvements on all platforms. + + +2019-01-11: Version 7.3.364 + + Performance and stability improvements on all platforms. + + +2019-01-11: Version 7.3.363 + + Performance and stability improvements on all platforms. + + +2019-01-11: Version 7.3.362 + + Performance and stability improvements on all platforms. + + +2019-01-10: Version 7.3.361 + + Performance and stability improvements on all platforms. + + +2019-01-10: Version 7.3.360 + + Performance and stability improvements on all platforms. + + +2019-01-10: Version 7.3.359 + + Performance and stability improvements on all platforms. + + +2019-01-10: Version 7.3.358 + + Performance and stability improvements on all platforms. + + +2019-01-10: Version 7.3.357 + + Performance and stability improvements on all platforms. + + +2019-01-10: Version 7.3.356 + + Performance and stability improvements on all platforms. + + +2019-01-10: Version 7.3.355 + + Performance and stability improvements on all platforms. + + +2019-01-09: Version 7.3.354 + + Performance and stability improvements on all platforms. + + +2019-01-09: Version 7.3.353 + + Performance and stability improvements on all platforms. + + +2019-01-09: Version 7.3.352 + + Performance and stability improvements on all platforms. + + +2019-01-09: Version 7.3.351 + + Performance and stability improvements on all platforms. + + +2019-01-09: Version 7.3.350 + + Performance and stability improvements on all platforms. + + +2019-01-09: Version 7.3.349 + + Performance and stability improvements on all platforms. + + +2019-01-08: Version 7.3.348 + + Performance and stability improvements on all platforms. + + +2019-01-08: Version 7.3.347 + + Performance and stability improvements on all platforms. + + +2019-01-08: Version 7.3.346 + + Performance and stability improvements on all platforms. + + +2019-01-08: Version 7.3.345 + + Performance and stability improvements on all platforms. + + +2019-01-08: Version 7.3.344 + + Performance and stability improvements on all platforms. + + +2019-01-08: Version 7.3.343 + + Performance and stability improvements on all platforms. + + +2019-01-08: Version 7.3.342 + + Performance and stability improvements on all platforms. + + +2019-01-08: Version 7.3.341 + + Performance and stability improvements on all platforms. + + +2019-01-08: Version 7.3.340 + + Performance and stability improvements on all platforms. + + +2019-01-08: Version 7.3.339 + + Performance and stability improvements on all platforms. + + +2019-01-08: Version 7.3.338 + + Performance and stability improvements on all platforms. + + +2019-01-08: Version 7.3.337 + + Performance and stability improvements on all platforms. + + +2019-01-08: Version 7.3.336 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.335 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.334 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.333 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.332 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.331 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.330 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.329 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.328 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.327 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.326 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.325 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.324 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.323 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.322 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.321 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.320 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.319 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.318 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.317 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.316 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.315 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.314 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.313 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.312 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.311 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.310 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.309 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.308 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.307 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.306 + + Performance and stability improvements on all platforms. + + +2019-01-07: Version 7.3.305 + + Performance and stability improvements on all platforms. + + +2019-01-06: Version 7.3.304 + + Performance and stability improvements on all platforms. + + +2019-01-04: Version 7.3.303 + + Performance and stability improvements on all platforms. + + +2019-01-04: Version 7.3.302 + + Performance and stability improvements on all platforms. + + +2019-01-04: Version 7.3.301 + + Performance and stability improvements on all platforms. + + +2019-01-04: Version 7.3.300 + + Performance and stability improvements on all platforms. + + +2019-01-04: Version 7.3.299 + + Performance and stability improvements on all platforms. + + +2019-01-04: Version 7.3.298 + + Performance and stability improvements on all platforms. + + +2019-01-04: Version 7.3.297 + + Performance and stability improvements on all platforms. + + +2019-01-04: Version 7.3.296 + + Performance and stability improvements on all platforms. + + +2019-01-04: Version 7.3.295 + + Performance and stability improvements on all platforms. + + +2019-01-04: Version 7.3.294 + + Performance and stability improvements on all platforms. + + +2019-01-04: Version 7.3.293 + + Performance and stability improvements on all platforms. + + +2019-01-04: Version 7.3.292 + + Performance and stability improvements on all platforms. + + +2019-01-04: Version 7.3.291 + + Performance and stability improvements on all platforms. + + +2019-01-04: Version 7.3.290 + + Performance and stability improvements on all platforms. + + +2019-01-04: Version 7.3.289 + + Performance and stability improvements on all platforms. + + +2019-01-04: Version 7.3.288 + + Performance and stability improvements on all platforms. + + +2019-01-03: Version 7.3.287 + + Performance and stability improvements on all platforms. + + +2019-01-03: Version 7.3.286 + + Performance and stability improvements on all platforms. + + +2019-01-03: Version 7.3.285 + + Performance and stability improvements on all platforms. + + +2019-01-03: Version 7.3.284 + + Performance and stability improvements on all platforms. + + +2019-01-03: Version 7.3.283 + + Performance and stability improvements on all platforms. + + +2019-01-03: Version 7.3.282 + + Performance and stability improvements on all platforms. + + +2019-01-03: Version 7.3.281 + + Performance and stability improvements on all platforms. + + +2019-01-03: Version 7.3.280 + + Performance and stability improvements on all platforms. + + +2019-01-03: Version 7.3.279 + + Performance and stability improvements on all platforms. + + +2019-01-03: Version 7.3.278 + + Performance and stability improvements on all platforms. + + +2019-01-03: Version 7.3.277 + + Performance and stability improvements on all platforms. + + +2019-01-03: Version 7.3.276 + + Performance and stability improvements on all platforms. + + +2019-01-03: Version 7.3.275 + + Performance and stability improvements on all platforms. + + +2019-01-03: Version 7.3.274 + + Performance and stability improvements on all platforms. + + +2019-01-03: Version 7.3.273 + + Performance and stability improvements on all platforms. + + +2019-01-03: Version 7.3.272 + + Performance and stability improvements on all platforms. + + +2019-01-03: Version 7.3.271 + + Performance and stability improvements on all platforms. + + +2019-01-02: Version 7.3.270 + + Performance and stability improvements on all platforms. + + +2019-01-02: Version 7.3.269 + + Performance and stability improvements on all platforms. + + +2019-01-02: Version 7.3.268 + + Performance and stability improvements on all platforms. + + +2019-01-02: Version 7.3.267 + + Performance and stability improvements on all platforms. + + +2019-01-02: Version 7.3.266 + + Performance and stability improvements on all platforms. + + +2019-01-02: Version 7.3.265 + + Performance and stability improvements on all platforms. + + +2019-01-02: Version 7.3.264 + + Performance and stability improvements on all platforms. + + +2019-01-02: Version 7.3.263 + + Performance and stability improvements on all platforms. + + +2019-01-02: Version 7.3.262 + + Performance and stability improvements on all platforms. + + +2019-01-02: Version 7.3.261 + + Performance and stability improvements on all platforms. + + +2019-01-01: Version 7.3.260 + + Performance and stability improvements on all platforms. + + +2018-12-31: Version 7.3.259 + + Performance and stability improvements on all platforms. + + +2018-12-31: Version 7.3.258 + + Performance and stability improvements on all platforms. + + +2018-12-30: Version 7.3.257 + + Performance and stability improvements on all platforms. + + +2018-12-29: Version 7.3.256 + + Performance and stability improvements on all platforms. + + +2018-12-28: Version 7.3.255 + + Performance and stability improvements on all platforms. + + +2018-12-28: Version 7.3.254 + + Performance and stability improvements on all platforms. + + +2018-12-28: Version 7.3.253 + + Performance and stability improvements on all platforms. + + +2018-12-28: Version 7.3.252 + + Performance and stability improvements on all platforms. + + +2018-12-27: Version 7.3.251 + + Performance and stability improvements on all platforms. + + +2018-12-27: Version 7.3.250 + + Performance and stability improvements on all platforms. + + +2018-12-27: Version 7.3.249 + + Performance and stability improvements on all platforms. + + +2018-12-27: Version 7.3.248 + + Performance and stability improvements on all platforms. + + +2018-12-27: Version 7.3.247 + + Performance and stability improvements on all platforms. + + +2018-12-27: Version 7.3.246 + + Performance and stability improvements on all platforms. + + +2018-12-27: Version 7.3.245 + + Performance and stability improvements on all platforms. + + +2018-12-27: Version 7.3.244 + + Performance and stability improvements on all platforms. + + +2018-12-24: Version 7.3.243 + + Performance and stability improvements on all platforms. + + +2018-12-24: Version 7.3.242 + + Performance and stability improvements on all platforms. + + +2018-12-24: Version 7.3.241 + + Performance and stability improvements on all platforms. + + +2018-12-24: Version 7.3.240 + + Performance and stability improvements on all platforms. + + +2018-12-24: Version 7.3.239 + + Performance and stability improvements on all platforms. + + +2018-12-24: Version 7.3.238 + + Performance and stability improvements on all platforms. + + +2018-12-24: Version 7.3.237 + + Performance and stability improvements on all platforms. + + +2018-12-23: Version 7.3.236 + + Performance and stability improvements on all platforms. + + +2018-12-22: Version 7.3.235 + + Performance and stability improvements on all platforms. + + +2018-12-21: Version 7.3.234 + + Performance and stability improvements on all platforms. + + +2018-12-21: Version 7.3.233 + + Performance and stability improvements on all platforms. + + +2018-12-21: Version 7.3.232 + + Performance and stability improvements on all platforms. + + +2018-12-21: Version 7.3.231 + + Performance and stability improvements on all platforms. + + +2018-12-21: Version 7.3.230 + + Performance and stability improvements on all platforms. + + +2018-12-21: Version 7.3.229 + + Performance and stability improvements on all platforms. + + +2018-12-21: Version 7.3.228 + + Performance and stability improvements on all platforms. + + +2018-12-21: Version 7.3.227 + + Performance and stability improvements on all platforms. + + +2018-12-21: Version 7.3.226 + + Performance and stability improvements on all platforms. + + +2018-12-21: Version 7.3.225 + + Performance and stability improvements on all platforms. + + +2018-12-21: Version 7.3.224 + + Performance and stability improvements on all platforms. + + +2018-12-21: Version 7.3.223 + + Performance and stability improvements on all platforms. + + +2018-12-20: Version 7.3.222 + + Performance and stability improvements on all platforms. + + +2018-12-20: Version 7.3.221 + + Performance and stability improvements on all platforms. + + +2018-12-20: Version 7.3.220 + + Performance and stability improvements on all platforms. + + +2018-12-20: Version 7.3.219 + + Performance and stability improvements on all platforms. + + +2018-12-20: Version 7.3.218 + + Performance and stability improvements on all platforms. + + +2018-12-20: Version 7.3.217 + + Performance and stability improvements on all platforms. + + +2018-12-20: Version 7.3.216 + + Performance and stability improvements on all platforms. + + +2018-12-20: Version 7.3.215 + + Performance and stability improvements on all platforms. + + +2018-12-20: Version 7.3.214 + + Performance and stability improvements on all platforms. + + +2018-12-20: Version 7.3.213 + + Performance and stability improvements on all platforms. + + +2018-12-19: Version 7.3.212 + + Performance and stability improvements on all platforms. + + +2018-12-19: Version 7.3.211 + + Performance and stability improvements on all platforms. + + +2018-12-19: Version 7.3.210 + + Performance and stability improvements on all platforms. + + +2018-12-19: Version 7.3.209 + + Performance and stability improvements on all platforms. + + +2018-12-19: Version 7.3.208 + + Performance and stability improvements on all platforms. + + +2018-12-19: Version 7.3.207 + + Performance and stability improvements on all platforms. + + +2018-12-19: Version 7.3.206 + + Performance and stability improvements on all platforms. + + +2018-12-19: Version 7.3.205 + + Performance and stability improvements on all platforms. + + +2018-12-19: Version 7.3.204 + + Performance and stability improvements on all platforms. + + +2018-12-19: Version 7.3.203 + + Performance and stability improvements on all platforms. + + +2018-12-19: Version 7.3.202 + + Performance and stability improvements on all platforms. + + +2018-12-19: Version 7.3.201 + + Performance and stability improvements on all platforms. + + +2018-12-19: Version 7.3.200 + + Performance and stability improvements on all platforms. + + +2018-12-19: Version 7.3.199 + + Performance and stability improvements on all platforms. + + +2018-12-19: Version 7.3.198 + + Performance and stability improvements on all platforms. + + +2018-12-19: Version 7.3.197 + + Performance and stability improvements on all platforms. + + +2018-12-18: Version 7.3.196 + + Performance and stability improvements on all platforms. + + +2018-12-18: Version 7.3.195 + + Performance and stability improvements on all platforms. + + +2018-12-18: Version 7.3.194 + + Performance and stability improvements on all platforms. + + +2018-12-18: Version 7.3.193 + + Performance and stability improvements on all platforms. + + +2018-12-18: Version 7.3.192 + + Performance and stability improvements on all platforms. + + +2018-12-18: Version 7.3.191 + + Performance and stability improvements on all platforms. + + +2018-12-18: Version 7.3.190 + + Performance and stability improvements on all platforms. + + +2018-12-18: Version 7.3.189 + + Performance and stability improvements on all platforms. + + +2018-12-18: Version 7.3.188 + + Performance and stability improvements on all platforms. + + +2018-12-18: Version 7.3.187 + + Performance and stability improvements on all platforms. + + +2018-12-18: Version 7.3.186 + + Performance and stability improvements on all platforms. + + +2018-12-18: Version 7.3.185 + + Performance and stability improvements on all platforms. + + +2018-12-18: Version 7.3.184 + + Performance and stability improvements on all platforms. + + +2018-12-18: Version 7.3.183 + + Performance and stability improvements on all platforms. + + +2018-12-18: Version 7.3.182 + + Performance and stability improvements on all platforms. + + +2018-12-18: Version 7.3.181 + + Performance and stability improvements on all platforms. + + +2018-12-18: Version 7.3.180 + + Performance and stability improvements on all platforms. + + +2018-12-18: Version 7.3.179 + + Performance and stability improvements on all platforms. + + +2018-12-18: Version 7.3.178 + + Performance and stability improvements on all platforms. + + +2018-12-18: Version 7.3.177 + + Performance and stability improvements on all platforms. + + +2018-12-18: Version 7.3.176 + + Performance and stability improvements on all platforms. + + +2018-12-18: Version 7.3.175 + + Performance and stability improvements on all platforms. + + +2018-12-17: Version 7.3.174 + + Performance and stability improvements on all platforms. + + +2018-12-17: Version 7.3.173 + + Performance and stability improvements on all platforms. + + +2018-12-17: Version 7.3.172 + + Performance and stability improvements on all platforms. + + +2018-12-17: Version 7.3.171 + + Performance and stability improvements on all platforms. + + +2018-12-17: Version 7.3.170 + + Performance and stability improvements on all platforms. + + +2018-12-17: Version 7.3.169 + + Performance and stability improvements on all platforms. + + +2018-12-17: Version 7.3.168 + + Performance and stability improvements on all platforms. + + +2018-12-17: Version 7.3.167 + + Performance and stability improvements on all platforms. + + +2018-12-17: Version 7.3.166 + + Performance and stability improvements on all platforms. + + +2018-12-17: Version 7.3.165 + + Performance and stability improvements on all platforms. + + +2018-12-17: Version 7.3.164 + + Performance and stability improvements on all platforms. + + +2018-12-17: Version 7.3.163 + + Performance and stability improvements on all platforms. + + +2018-12-17: Version 7.3.162 + + Performance and stability improvements on all platforms. + + +2018-12-17: Version 7.3.161 + + Performance and stability improvements on all platforms. + + +2018-12-17: Version 7.3.160 + + Performance and stability improvements on all platforms. + + +2018-12-17: Version 7.3.159 + + Performance and stability improvements on all platforms. + + +2018-12-17: Version 7.3.158 + + Performance and stability improvements on all platforms. + + +2018-12-14: Version 7.3.157 + + Performance and stability improvements on all platforms. + + +2018-12-14: Version 7.3.156 + + Performance and stability improvements on all platforms. + + +2018-12-14: Version 7.3.155 + + Performance and stability improvements on all platforms. + + +2018-12-14: Version 7.3.154 + + Performance and stability improvements on all platforms. + + +2018-12-14: Version 7.3.153 + + Performance and stability improvements on all platforms. + + +2018-12-14: Version 7.3.152 + + Performance and stability improvements on all platforms. + + +2018-12-14: Version 7.3.151 + + Performance and stability improvements on all platforms. + + +2018-12-14: Version 7.3.150 + + Performance and stability improvements on all platforms. + + +2018-12-14: Version 7.3.149 + + Performance and stability improvements on all platforms. + + +2018-12-14: Version 7.3.148 + + Performance and stability improvements on all platforms. + + +2018-12-14: Version 7.3.147 + + Performance and stability improvements on all platforms. + + +2018-12-14: Version 7.3.146 + + Performance and stability improvements on all platforms. + + +2018-12-14: Version 7.3.145 + + Performance and stability improvements on all platforms. + + +2018-12-14: Version 7.3.144 + + Performance and stability improvements on all platforms. + + +2018-12-14: Version 7.3.143 + + Performance and stability improvements on all platforms. + + +2018-12-14: Version 7.3.142 + + Performance and stability improvements on all platforms. + + +2018-12-14: Version 7.3.141 + + Performance and stability improvements on all platforms. + + +2018-12-14: Version 7.3.140 + + Performance and stability improvements on all platforms. + + +2018-12-13: Version 7.3.139 + + Performance and stability improvements on all platforms. + + +2018-12-13: Version 7.3.138 + + Performance and stability improvements on all platforms. + + +2018-12-13: Version 7.3.137 + + Performance and stability improvements on all platforms. + + +2018-12-13: Version 7.3.136 + + Performance and stability improvements on all platforms. + + +2018-12-13: Version 7.3.135 + + Performance and stability improvements on all platforms. + + +2018-12-13: Version 7.3.134 + + Performance and stability improvements on all platforms. + + +2018-12-13: Version 7.3.133 + + Performance and stability improvements on all platforms. + + +2018-12-13: Version 7.3.132 + + Performance and stability improvements on all platforms. + + +2018-12-13: Version 7.3.131 + + Performance and stability improvements on all platforms. + + +2018-12-13: Version 7.3.130 + + Performance and stability improvements on all platforms. + + +2018-12-13: Version 7.3.129 + + Performance and stability improvements on all platforms. + + +2018-12-13: Version 7.3.128 + + Performance and stability improvements on all platforms. + + +2018-12-13: Version 7.3.127 + + Performance and stability improvements on all platforms. + + +2018-12-13: Version 7.3.126 + + Performance and stability improvements on all platforms. + + +2018-12-13: Version 7.3.125 + + Performance and stability improvements on all platforms. + + +2018-12-13: Version 7.3.124 + + Performance and stability improvements on all platforms. + + +2018-12-12: Version 7.3.123 + + Performance and stability improvements on all platforms. + + +2018-12-12: Version 7.3.122 + + Performance and stability improvements on all platforms. + + +2018-12-12: Version 7.3.121 + + Performance and stability improvements on all platforms. + + +2018-12-12: Version 7.3.120 + + Performance and stability improvements on all platforms. + + +2018-12-12: Version 7.3.119 + + Performance and stability improvements on all platforms. + + +2018-12-12: Version 7.3.118 + + Performance and stability improvements on all platforms. + + +2018-12-12: Version 7.3.117 + + Performance and stability improvements on all platforms. + + +2018-12-12: Version 7.3.116 + + Performance and stability improvements on all platforms. + + +2018-12-12: Version 7.3.115 + + Performance and stability improvements on all platforms. + + +2018-12-12: Version 7.3.114 + + Performance and stability improvements on all platforms. + + +2018-12-12: Version 7.3.113 + + Performance and stability improvements on all platforms. + + +2018-12-12: Version 7.3.112 + + Performance and stability improvements on all platforms. + + +2018-12-12: Version 7.3.111 + + Performance and stability improvements on all platforms. + + +2018-12-12: Version 7.3.110 + + Performance and stability improvements on all platforms. + + +2018-12-12: Version 7.3.109 + + Performance and stability improvements on all platforms. + + +2018-12-12: Version 7.3.108 + + Performance and stability improvements on all platforms. + + +2018-12-12: Version 7.3.107 + + Performance and stability improvements on all platforms. + + +2018-12-12: Version 7.3.106 + + Performance and stability improvements on all platforms. + + +2018-12-12: Version 7.3.105 + + Performance and stability improvements on all platforms. + + +2018-12-12: Version 7.3.104 + + Performance and stability improvements on all platforms. + + +2018-12-11: Version 7.3.103 + + Performance and stability improvements on all platforms. + + +2018-12-11: Version 7.3.102 + + Performance and stability improvements on all platforms. + + +2018-12-11: Version 7.3.101 + + Performance and stability improvements on all platforms. + + +2018-12-11: Version 7.3.100 + + Performance and stability improvements on all platforms. + + +2018-12-11: Version 7.3.99 + + Performance and stability improvements on all platforms. + + +2018-12-11: Version 7.3.98 + + Performance and stability improvements on all platforms. + + +2018-12-11: Version 7.3.97 + + Performance and stability improvements on all platforms. + + +2018-12-11: Version 7.3.96 + + Performance and stability improvements on all platforms. + + +2018-12-11: Version 7.3.95 + + Performance and stability improvements on all platforms. + + +2018-12-11: Version 7.3.94 + + Performance and stability improvements on all platforms. + + +2018-12-11: Version 7.3.93 + + Performance and stability improvements on all platforms. + + +2018-12-11: Version 7.3.92 + + Performance and stability improvements on all platforms. + + +2018-12-11: Version 7.3.91 + + Performance and stability improvements on all platforms. + + +2018-12-11: Version 7.3.90 + + Performance and stability improvements on all platforms. + + +2018-12-11: Version 7.3.89 + + Performance and stability improvements on all platforms. + + +2018-12-11: Version 7.3.88 + + Performance and stability improvements on all platforms. + + +2018-12-11: Version 7.3.87 + + Performance and stability improvements on all platforms. + + +2018-12-11: Version 7.3.86 + + Performance and stability improvements on all platforms. + + +2018-12-11: Version 7.3.85 + + Performance and stability improvements on all platforms. + + +2018-12-11: Version 7.3.84 + + Performance and stability improvements on all platforms. + + +2018-12-10: Version 7.3.83 + + Performance and stability improvements on all platforms. + + +2018-12-10: Version 7.3.82 + + Performance and stability improvements on all platforms. + + +2018-12-10: Version 7.3.81 + + Performance and stability improvements on all platforms. + + +2018-12-10: Version 7.3.80 + + Performance and stability improvements on all platforms. + + +2018-12-10: Version 7.3.79 + + Performance and stability improvements on all platforms. + + +2018-12-10: Version 7.3.78 + + Performance and stability improvements on all platforms. + + +2018-12-10: Version 7.3.77 + + Performance and stability improvements on all platforms. + + +2018-12-10: Version 7.3.76 + + Performance and stability improvements on all platforms. + + +2018-12-08: Version 7.3.75 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.74 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.73 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.72 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.71 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.70 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.69 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.68 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.67 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.66 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.65 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.64 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.63 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.62 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.61 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.60 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.59 + + Performance and stability improvements on all platforms. + + +2018-12-06: Version 7.3.58 + + Performance and stability improvements on all platforms. + + +2018-12-06: Version 7.3.57 + + Performance and stability improvements on all platforms. + + +2018-12-06: Version 7.3.56 + + Performance and stability improvements on all platforms. + + +2018-12-06: Version 7.3.55 + + Performance and stability improvements on all platforms. + + +2018-12-06: Version 7.3.54 + + Performance and stability improvements on all platforms. + + +2018-12-06: Version 7.3.53 + + Performance and stability improvements on all platforms. + + +2018-12-06: Version 7.3.52 + + Performance and stability improvements on all platforms. + + +2018-12-06: Version 7.3.51 + + Performance and stability improvements on all platforms. + + +2018-12-06: Version 7.3.50 + + Performance and stability improvements on all platforms. + + +2018-12-06: Version 7.3.49 + + Performance and stability improvements on all platforms. + + +2018-12-06: Version 7.3.48 + + Performance and stability improvements on all platforms. + + +2018-12-06: Version 7.3.47 + + Performance and stability improvements on all platforms. + + +2018-12-06: Version 7.3.46 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.45 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.44 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.43 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.42 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.41 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.40 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.39 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.38 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.37 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.36 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.35 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.34 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.33 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.32 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.31 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.30 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.29 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.28 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.27 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.26 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.25 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.24 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.23 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.22 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.21 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.20 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.19 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.18 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.17 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.16 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.15 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.14 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.13 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.12 + + Performance and stability improvements on all platforms. + + +2018-12-03: Version 7.3.11 + + Performance and stability improvements on all platforms. + + +2018-12-03: Version 7.3.10 + + Performance and stability improvements on all platforms. + + +2018-12-03: Version 7.3.9 + + Performance and stability improvements on all platforms. + + +2018-12-03: Version 7.3.8 + + Performance and stability improvements on all platforms. + + +2018-12-03: Version 7.3.7 + + Performance and stability improvements on all platforms. + + +2018-12-03: Version 7.3.6 + + Performance and stability improvements on all platforms. + + +2018-12-03: Version 7.3.5 + + Performance and stability improvements on all platforms. + + +2018-12-03: Version 7.3.4 + + Performance and stability improvements on all platforms. + + +2018-12-03: Version 7.3.3 + + Performance and stability improvements on all platforms. + + +2018-12-03: Version 7.3.2 + + Performance and stability improvements on all platforms. + + +2018-12-03: Version 7.3.1 + + Performance and stability improvements on all platforms. + + +2018-11-29: Version 7.2.505 + + Performance and stability improvements on all platforms. + + +2018-11-29: Version 7.2.504 + + Performance and stability improvements on all platforms. + + +2018-11-29: Version 7.2.503 + + Performance and stability improvements on all platforms. + + +2018-11-28: Version 7.2.502 + + Performance and stability improvements on all platforms. + + +2018-11-28: Version 7.2.501 + + Performance and stability improvements on all platforms. + + +2018-11-28: Version 7.2.500 + + Performance and stability improvements on all platforms. + + +2018-11-28: Version 7.2.499 + + Performance and stability improvements on all platforms. + + +2018-11-28: Version 7.2.498 + + Performance and stability improvements on all platforms. + + +2018-11-28: Version 7.2.497 + + Performance and stability improvements on all platforms. + + +2018-11-28: Version 7.2.496 + + Performance and stability improvements on all platforms. + + +2018-11-28: Version 7.2.495 + + Performance and stability improvements on all platforms. + + +2018-11-28: Version 7.2.494 + + Performance and stability improvements on all platforms. + + +2018-11-28: Version 7.2.493 + + Performance and stability improvements on all platforms. + + +2018-11-28: Version 7.2.492 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.491 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.490 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.489 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.488 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.487 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.486 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.485 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.484 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.483 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.482 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.481 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.480 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.479 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.478 + + Performance and stability improvements on all platforms. + + +2018-11-26: Version 7.2.477 + + Performance and stability improvements on all platforms. + + +2018-11-26: Version 7.2.476 + + Performance and stability improvements on all platforms. + + +2018-11-26: Version 7.2.475 + + Performance and stability improvements on all platforms. + + +2018-11-26: Version 7.2.474 + + Performance and stability improvements on all platforms. + + +2018-11-26: Version 7.2.473 + + Performance and stability improvements on all platforms. + + +2018-11-26: Version 7.2.472 + + Performance and stability improvements on all platforms. + + +2018-11-26: Version 7.2.471 + + Performance and stability improvements on all platforms. + + +2018-11-26: Version 7.2.470 + + Performance and stability improvements on all platforms. + + +2018-11-26: Version 7.2.469 + + Performance and stability improvements on all platforms. + + +2018-11-24: Version 7.2.468 + + Performance and stability improvements on all platforms. + + +2018-11-24: Version 7.2.467 + + Performance and stability improvements on all platforms. + + +2018-11-24: Version 7.2.466 + + Performance and stability improvements on all platforms. + + +2018-11-24: Version 7.2.465 + + Performance and stability improvements on all platforms. + + +2018-11-24: Version 7.2.464 + + Performance and stability improvements on all platforms. + + +2018-11-24: Version 7.2.463 + + Performance and stability improvements on all platforms. + + +2018-11-23: Version 7.2.462 + + Performance and stability improvements on all platforms. + + +2018-11-23: Version 7.2.461 + + Performance and stability improvements on all platforms. + + +2018-11-23: Version 7.2.460 + + Performance and stability improvements on all platforms. + + +2018-11-23: Version 7.2.459 + + Performance and stability improvements on all platforms. + + +2018-11-23: Version 7.2.458 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.457 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.456 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.455 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.454 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.453 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.452 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.451 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.450 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.449 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.448 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.447 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.446 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.445 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.444 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.443 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.442 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.441 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.440 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.439 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.438 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.437 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.436 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.435 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.434 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.433 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.432 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.431 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.430 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.429 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.428 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.427 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.426 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.425 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.424 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.423 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.422 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.421 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.420 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.419 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.418 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.417 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.416 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.415 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.414 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.413 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.412 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.411 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.410 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.409 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.408 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.407 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.406 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.405 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.404 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.403 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.402 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.401 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.400 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.399 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.398 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.397 + + Performance and stability improvements on all platforms. + + +2018-11-20: Version 7.2.396 + + Performance and stability improvements on all platforms. + + +2018-11-20: Version 7.2.395 + + Performance and stability improvements on all platforms. + + +2018-11-20: Version 7.2.394 + + Performance and stability improvements on all platforms. + + +2018-11-20: Version 7.2.393 + + Performance and stability improvements on all platforms. + + +2018-11-20: Version 7.2.392 + + Performance and stability improvements on all platforms. + + +2018-11-20: Version 7.2.391 + + Performance and stability improvements on all platforms. + + +2018-11-20: Version 7.2.390 + + Performance and stability improvements on all platforms. + + +2018-11-20: Version 7.2.389 + + Performance and stability improvements on all platforms. + + +2018-11-20: Version 7.2.388 + + Performance and stability improvements on all platforms. + + +2018-11-19: Version 7.2.387 + + Performance and stability improvements on all platforms. + + +2018-11-19: Version 7.2.386 + + Performance and stability improvements on all platforms. + + +2018-11-19: Version 7.2.385 + + Performance and stability improvements on all platforms. + + +2018-11-19: Version 7.2.384 + + Performance and stability improvements on all platforms. + + +2018-11-19: Version 7.2.383 + + Performance and stability improvements on all platforms. + + +2018-11-19: Version 7.2.382 + + Performance and stability improvements on all platforms. + + +2018-11-19: Version 7.2.381 + + Performance and stability improvements on all platforms. + + +2018-11-19: Version 7.2.380 + + Performance and stability improvements on all platforms. + + +2018-11-19: Version 7.2.379 + + Performance and stability improvements on all platforms. + + +2018-11-18: Version 7.2.378 + + Performance and stability improvements on all platforms. + + +2018-11-18: Version 7.2.377 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.376 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.375 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.374 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.373 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.372 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.371 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.370 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.369 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.368 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.367 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.366 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.365 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.364 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.363 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.362 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.361 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.360 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.359 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.358 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.357 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.356 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.355 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.354 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.353 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.352 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.351 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.350 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.349 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.348 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.347 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.346 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.345 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.344 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.343 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.342 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.341 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.340 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.339 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.338 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.337 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.336 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.335 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.334 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.333 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.332 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.331 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.330 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.329 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.328 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.327 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.326 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.325 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.324 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.323 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.322 + + Performance and stability improvements on all platforms. + + +2018-11-13: Version 7.2.321 + + Performance and stability improvements on all platforms. + + +2018-11-13: Version 7.2.320 + + Performance and stability improvements on all platforms. + + +2018-11-13: Version 7.2.319 + + Performance and stability improvements on all platforms. + + +2018-11-13: Version 7.2.318 + + Performance and stability improvements on all platforms. + + +2018-11-13: Version 7.2.317 + + Performance and stability improvements on all platforms. + + +2018-11-13: Version 7.2.316 + + Performance and stability improvements on all platforms. + + +2018-11-13: Version 7.2.315 + + Performance and stability improvements on all platforms. + + +2018-11-13: Version 7.2.314 + + Performance and stability improvements on all platforms. + + +2018-11-13: Version 7.2.313 + + Performance and stability improvements on all platforms. + + +2018-11-13: Version 7.2.312 + + Performance and stability improvements on all platforms. + + +2018-11-13: Version 7.2.311 + + Performance and stability improvements on all platforms. + + +2018-11-13: Version 7.2.310 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.309 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.308 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.307 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.306 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.305 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.304 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.303 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.302 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.301 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.300 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.299 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.298 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.297 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.296 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.295 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.294 + + Performance and stability improvements on all platforms. + + +2018-11-09: Version 7.2.293 + + Performance and stability improvements on all platforms. + + +2018-11-09: Version 7.2.292 + + Performance and stability improvements on all platforms. + + +2018-11-09: Version 7.2.291 + + Performance and stability improvements on all platforms. + + +2018-11-09: Version 7.2.290 + + Performance and stability improvements on all platforms. + + +2018-11-09: Version 7.2.289 + + Performance and stability improvements on all platforms. + + +2018-11-09: Version 7.2.288 + + Performance and stability improvements on all platforms. + + +2018-11-09: Version 7.2.287 + + Performance and stability improvements on all platforms. + + +2018-11-09: Version 7.2.286 + + Performance and stability improvements on all platforms. + + +2018-11-09: Version 7.2.285 + + Performance and stability improvements on all platforms. + + +2018-11-09: Version 7.2.284 + + Performance and stability improvements on all platforms. + + +2018-11-08: Version 7.2.283 + + Performance and stability improvements on all platforms. + + +2018-11-08: Version 7.2.282 + + Performance and stability improvements on all platforms. + + +2018-11-08: Version 7.2.281 + + Performance and stability improvements on all platforms. + + +2018-11-08: Version 7.2.280 + + Performance and stability improvements on all platforms. + + +2018-11-08: Version 7.2.279 + + Performance and stability improvements on all platforms. + + +2018-11-08: Version 7.2.278 + + Performance and stability improvements on all platforms. + + +2018-11-08: Version 7.2.277 + + Performance and stability improvements on all platforms. + + +2018-11-08: Version 7.2.276 + + Performance and stability improvements on all platforms. + + +2018-11-08: Version 7.2.275 + + Performance and stability improvements on all platforms. + + +2018-11-08: Version 7.2.274 + + Performance and stability improvements on all platforms. + + +2018-11-08: Version 7.2.273 + + Performance and stability improvements on all platforms. + + +2018-11-07: Version 7.2.272 + + Performance and stability improvements on all platforms. + + +2018-11-07: Version 7.2.271 + + Performance and stability improvements on all platforms. + + +2018-11-07: Version 7.2.270 + + Performance and stability improvements on all platforms. + + +2018-11-07: Version 7.2.269 + + Performance and stability improvements on all platforms. + + +2018-11-07: Version 7.2.268 + + Performance and stability improvements on all platforms. + + +2018-11-07: Version 7.2.267 + + Performance and stability improvements on all platforms. + + +2018-11-07: Version 7.2.266 + + Performance and stability improvements on all platforms. + + +2018-11-07: Version 7.2.265 + + Performance and stability improvements on all platforms. + + +2018-11-07: Version 7.2.264 + + Performance and stability improvements on all platforms. + + +2018-11-07: Version 7.2.263 + + Performance and stability improvements on all platforms. + + +2018-11-07: Version 7.2.262 + + Performance and stability improvements on all platforms. + + +2018-11-07: Version 7.2.261 + + Performance and stability improvements on all platforms. + + +2018-11-07: Version 7.2.260 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.259 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.258 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.257 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.256 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.255 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.254 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.253 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.252 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.251 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.250 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.249 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.248 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.247 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.246 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.245 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.244 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.243 + + Performance and stability improvements on all platforms. + + +2018-11-05: Version 7.2.242 + + Performance and stability improvements on all platforms. + + +2018-11-05: Version 7.2.241 + + Performance and stability improvements on all platforms. + + +2018-11-05: Version 7.2.240 + + Performance and stability improvements on all platforms. + + +2018-11-05: Version 7.2.239 + + Performance and stability improvements on all platforms. + + +2018-11-04: Version 7.2.238 + + Performance and stability improvements on all platforms. + + +2018-11-04: Version 7.2.237 + + Performance and stability improvements on all platforms. + + +2018-11-03: Version 7.2.236 + + Performance and stability improvements on all platforms. + + +2018-11-03: Version 7.2.235 + + Performance and stability improvements on all platforms. + + +2018-11-03: Version 7.2.234 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.233 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.232 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.231 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.230 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.229 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.228 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.227 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.226 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.225 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.224 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.223 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.222 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.221 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.220 + + Performance and stability improvements on all platforms. + + +2018-11-01: Version 7.2.219 + + Performance and stability improvements on all platforms. + + +2018-11-01: Version 7.2.218 + + Performance and stability improvements on all platforms. + + +2018-11-01: Version 7.2.217 + + Performance and stability improvements on all platforms. + + +2018-11-01: Version 7.2.216 + + Performance and stability improvements on all platforms. + + +2018-11-01: Version 7.2.215 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.214 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.213 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.212 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.211 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.210 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.209 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.208 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.207 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.206 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.205 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.204 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.203 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.202 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.201 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.200 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.199 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.198 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.197 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.196 + + Performance and stability improvements on all platforms. + + +2018-10-30: Version 7.2.195 + + Performance and stability improvements on all platforms. + + +2018-10-30: Version 7.2.194 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.193 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.192 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.191 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.190 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.189 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.188 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.187 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.186 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.185 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.184 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.183 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.182 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.181 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.180 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.179 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.178 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.177 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.176 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.175 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.174 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.173 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.172 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.171 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.170 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.169 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.168 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.167 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.166 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.165 + + Performance and stability improvements on all platforms. + + +2018-10-28: Version 7.2.164 + + Performance and stability improvements on all platforms. + + +2018-10-27: Version 7.2.163 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.162 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.161 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.160 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.159 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.158 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.157 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.156 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.155 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.154 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.153 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.152 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.151 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.150 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.149 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.148 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.147 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.146 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.145 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.144 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.143 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.142 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.141 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.140 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.139 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.138 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.137 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.136 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.135 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.134 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.133 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.132 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.131 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.130 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.129 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.128 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.127 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.126 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.125 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.124 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.123 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.122 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.121 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.120 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.119 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.118 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.117 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.116 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.115 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.114 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.113 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.112 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.111 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.110 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.109 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.108 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.107 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.106 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.105 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.104 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.103 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.102 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.101 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.100 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.99 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.98 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.97 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.96 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.95 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.94 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.93 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.92 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.91 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.90 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.89 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.88 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.87 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.86 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.85 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.84 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.83 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.82 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.81 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.80 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.79 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.78 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.77 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.76 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.75 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.74 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.73 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.72 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.71 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.70 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.69 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.68 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.67 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.66 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.65 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.64 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.63 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.62 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.61 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.60 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.59 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.58 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.57 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.56 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.55 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.54 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.53 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.52 + + Performance and stability improvements on all platforms. + + +2018-10-20: Version 7.2.51 + + Performance and stability improvements on all platforms. + + +2018-10-20: Version 7.2.50 + + Performance and stability improvements on all platforms. + + +2018-10-19: Version 7.2.49 + + Performance and stability improvements on all platforms. + + +2018-10-19: Version 7.2.48 + + Performance and stability improvements on all platforms. + + +2018-10-19: Version 7.2.47 + + Performance and stability improvements on all platforms. + + +2018-10-19: Version 7.2.46 + + Performance and stability improvements on all platforms. + + +2018-10-19: Version 7.2.45 + + Performance and stability improvements on all platforms. + + +2018-10-19: Version 7.2.44 + + Performance and stability improvements on all platforms. + + +2018-10-19: Version 7.2.43 + + Performance and stability improvements on all platforms. + + +2018-10-18: Version 7.2.42 + + Performance and stability improvements on all platforms. + + +2018-10-18: Version 7.2.41 + + Performance and stability improvements on all platforms. + + +2018-10-18: Version 7.2.40 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.39 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.38 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.37 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.36 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.35 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.34 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.33 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.32 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.31 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.30 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.29 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.28 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.27 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.26 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.25 + + Performance and stability improvements on all platforms. + + +2018-10-16: Version 7.2.24 + + Performance and stability improvements on all platforms. + + +2018-10-16: Version 7.2.23 + + Performance and stability improvements on all platforms. + + +2018-10-16: Version 7.2.22 + + Performance and stability improvements on all platforms. + + +2018-10-16: Version 7.2.21 + + Performance and stability improvements on all platforms. + + +2018-10-16: Version 7.2.20 + + Performance and stability improvements on all platforms. + + +2018-10-16: Version 7.2.19 + + Performance and stability improvements on all platforms. + + +2018-10-16: Version 7.2.18 + + Performance and stability improvements on all platforms. + + +2018-10-16: Version 7.2.17 + + Performance and stability improvements on all platforms. + + +2018-10-16: Version 7.2.16 + + Performance and stability improvements on all platforms. + + +2018-10-15: Version 7.2.15 + + Performance and stability improvements on all platforms. + + +2018-10-15: Version 7.2.14 + + Performance and stability improvements on all platforms. + + +2018-10-15: Version 7.2.13 + + Performance and stability improvements on all platforms. + + +2018-10-15: Version 7.2.12 + + Performance and stability improvements on all platforms. + + +2018-10-15: Version 7.2.11 + + Performance and stability improvements on all platforms. + + +2018-10-15: Version 7.2.10 + + Performance and stability improvements on all platforms. + + +2018-10-15: Version 7.2.9 + + Performance and stability improvements on all platforms. + + +2018-10-15: Version 7.2.8 + + Performance and stability improvements on all platforms. + + +2018-10-15: Version 7.2.7 + + Performance and stability improvements on all platforms. + + +2018-10-15: Version 7.2.6 + + Performance and stability improvements on all platforms. + + +2018-10-15: Version 7.2.5 + + Performance and stability improvements on all platforms. + + +2018-10-15: Version 7.2.4 + + Performance and stability improvements on all platforms. + + +2018-10-14: Version 7.2.3 + + Performance and stability improvements on all platforms. + + +2018-10-13: Version 7.2.2 + + Performance and stability improvements on all platforms. + + +2018-10-13: Version 7.2.1 + + Performance and stability improvements on all platforms. + + +2018-10-11: Version 7.1.321 + + Performance and stability improvements on all platforms. + + +2018-10-10: Version 7.1.320 + + Performance and stability improvements on all platforms. + + +2018-10-10: Version 7.1.319 + + Performance and stability improvements on all platforms. + + +2018-10-10: Version 7.1.318 + + Performance and stability improvements on all platforms. + + +2018-10-10: Version 7.1.317 + + Performance and stability improvements on all platforms. + + +2018-10-10: Version 7.1.316 + + Performance and stability improvements on all platforms. + + +2018-10-10: Version 7.1.315 + + Performance and stability improvements on all platforms. + + +2018-10-10: Version 7.1.314 + + Performance and stability improvements on all platforms. + + +2018-10-10: Version 7.1.313 + + Performance and stability improvements on all platforms. + + +2018-10-10: Version 7.1.312 + + Performance and stability improvements on all platforms. + + +2018-10-09: Version 7.1.311 + + Performance and stability improvements on all platforms. + + +2018-10-09: Version 7.1.310 + + Performance and stability improvements on all platforms. + + +2018-10-09: Version 7.1.309 + + Performance and stability improvements on all platforms. + + +2018-10-09: Version 7.1.308 + + Performance and stability improvements on all platforms. + + +2018-10-09: Version 7.1.307 + + Performance and stability improvements on all platforms. + + +2018-10-09: Version 7.1.306 + + Performance and stability improvements on all platforms. + + +2018-10-09: Version 7.1.305 + + Performance and stability improvements on all platforms. + + +2018-10-09: Version 7.1.304 + + Performance and stability improvements on all platforms. + + +2018-10-09: Version 7.1.303 + + Performance and stability improvements on all platforms. + + 2018-10-09: Version 7.1.302 Performance and stability improvements on all platforms. diff --git a/deps/v8/DEPS b/deps/v8/DEPS index a87c01e49d0fe7..a5ec023677b66e 100644 --- a/deps/v8/DEPS +++ b/deps/v8/DEPS @@ -11,32 +11,32 @@ vars = { 'check_v8_header_includes': False, # luci-go CIPD package version. - 'luci_go': 'git_revision:fdf05508e8a66c773a41521e0243c9d11b9a2a1c', + 'luci_go': 'git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c', } deps = { 'v8/build': - Var('chromium_url') + '/chromium/src/build.git' + '@' + 'a7674eacc34947257c78fe6ba5cf0da17f60696c', + Var('chromium_url') + '/chromium/src/build.git' + '@' + 'f2ca77c3aa839107f36fed20dac81fe8b71b060e', 'v8/third_party/depot_tools': - Var('chromium_url') + '/chromium/tools/depot_tools.git' + '@' + '71e3be7a50c21faeee91ed99a8d5addfb7594e7c', + Var('chromium_url') + '/chromium/tools/depot_tools.git' + '@' + 'f7971436824dd8eeb9b0cf19dabc3e32b369a904', 'v8/third_party/icu': - Var('chromium_url') + '/chromium/deps/icu.git' + '@' + 'c52a2a250d6c5f5cbdd015dff36af7c5d0ae1150', + Var('chromium_url') + '/chromium/deps/icu.git' + '@' + '07e7295d964399ee7bee16a3ac7ca5a053b2cf0a', 'v8/third_party/instrumented_libraries': - Var('chromium_url') + '/chromium/src/third_party/instrumented_libraries.git' + '@' + 'a90cbf3b4216430a437991fb53ede8e048dea454', + Var('chromium_url') + '/chromium/src/third_party/instrumented_libraries.git' + '@' + 'a959e4f0cb643003f2d75d179cede449979e3e77', 'v8/buildtools': - Var('chromium_url') + '/chromium/buildtools.git' + '@' + '2dff9c9c74e9d732e6fe57c84ef7fd044cc45d96', + Var('chromium_url') + '/chromium/buildtools.git' + '@' + '2f02e1f363b1af2715536f38e239853f04ec1497', 'v8/base/trace_event/common': - Var('chromium_url') + '/chromium/src/base/trace_event/common.git' + '@' + '211b3ed9d0481b4caddbee1322321b86a483ca1f', + Var('chromium_url') + '/chromium/src/base/trace_event/common.git' + '@' + 'e31a1706337ccb9a658b37d29a018c81695c6518', 'v8/third_party/android_ndk': { 'url': Var('chromium_url') + '/android_ndk.git' + '@' + '4e2cea441bfd43f0863d14f57b1e1844260b9884', 'condition': 'checkout_android', }, 'v8/third_party/android_tools': { - 'url': Var('chromium_url') + '/android_tools.git' + '@' + '130499e25286f4d56acafa252fee09f3cc595c49', + 'url': Var('chromium_url') + '/android_tools.git' + '@' + 'e958d6ea74442d4e0849bb8a018d215a0e78981d', 'condition': 'checkout_android', }, 'v8/third_party/catapult': { - 'url': Var('chromium_url') + '/catapult.git' + '@' + '9ec8468cfde0868ce5f3893e819087278c5af988', + 'url': Var('chromium_url') + '/catapult.git' + '@' + 'dd2de388fc4e3e8fa97a97515ec35c5b3834b753', 'condition': 'checkout_android', }, 'v8/third_party/colorama/src': { @@ -44,11 +44,11 @@ deps = { 'condition': 'checkout_android', }, 'v8/third_party/fuchsia-sdk': { - 'url': Var('chromium_url') + '/chromium/src/third_party/fuchsia-sdk.git' + '@' + '6e1868c9083769d489d3fc25657339d50c22b1d8', + 'url': Var('chromium_url') + '/chromium/src/third_party/fuchsia-sdk.git' + '@' + '5157be49c92d031a74192ee993f32a2a28c8b1c3', 'condition': 'checkout_fuchsia', }, 'v8/third_party/googletest/src': - Var('chromium_url') + '/external/github.com/google/googletest.git' + '@' + '2e68926a9d4929e9289373cd49e40ddcb9a628f7', + Var('chromium_url') + '/external/github.com/google/googletest.git' + '@' + '9518a57428ae0a7ed450c1361768e84a2a38af5a', 'v8/third_party/jinja2': Var('chromium_url') + '/chromium/src/third_party/jinja2.git' + '@' + 'b41863e42637544c2941b574c7877d3e1f663e25', 'v8/third_party/markupsafe': @@ -60,7 +60,7 @@ deps = { 'v8/test/mozilla/data': Var('chromium_url') + '/v8/deps/third_party/mozilla-tests.git' + '@' + 'f6c578a10ea707b1a8ab0b88943fe5115ce2b9be', 'v8/test/test262/data': - Var('chromium_url') + '/external/github.com/tc39/test262.git' + '@' + '00cfe1628cc03164dcf03f01ba9c84376e9be735', + Var('chromium_url') + '/external/github.com/tc39/test262.git' + '@' + '4f1155c566a222238fd86f179c6635ecb4c289bb', 'v8/test/test262/harness': Var('chromium_url') + '/external/github.com/test262-utils/test262-harness-py.git' + '@' + '0f2acdd882c84cff43b9d60df7574a1901e2cdcd', 'v8/third_party/qemu-linux-x64': { @@ -84,7 +84,7 @@ deps = { 'dep_type': 'cipd', }, 'v8/tools/clang': - Var('chromium_url') + '/chromium/src/tools/clang.git' + '@' + '7792d28b069af6dd3a86d1ba83b7f5c4ede605dc', + Var('chromium_url') + '/chromium/src/tools/clang.git' + '@' + '3a16568a56486d7d032b8ec7b8dae892413a9a7a', 'v8/tools/luci-go': { 'packages': [ { @@ -103,8 +103,8 @@ deps = { 'condition': 'host_cpu != "s390"', 'dep_type': 'cipd', }, - 'v8/test/wasm-js': - Var('chromium_url') + '/external/github.com/WebAssembly/spec.git' + '@' + 'db9cd40808a90ecc5f4a23e88fb375c8f60b8d52', + 'v8/test/wasm-js/data': + Var('chromium_url') + '/external/github.com/WebAssembly/spec.git' + '@' + 'b42efa9b07c5544079c31f6088a66bead617559c', } recursedeps = [ @@ -209,43 +209,6 @@ hooks = [ '--platform=linux*', ], }, - # Pull luci-go binaries (isolate, swarming) using checked-in hashes. - { - 'name': 'luci-go_win', - 'pattern': '.', - 'condition': 'host_os == "win"', - 'action': [ 'download_from_google_storage', - '--no_resume', - '--platform=win32', - '--no_auth', - '--bucket', 'chromium-luci', - '-d', 'v8/tools/luci-go/win64', - ], - }, - { - 'name': 'luci-go_mac', - 'pattern': '.', - 'condition': 'host_os == "mac"', - 'action': [ 'download_from_google_storage', - '--no_resume', - '--platform=darwin', - '--no_auth', - '--bucket', 'chromium-luci', - '-d', 'v8/tools/luci-go/mac64', - ], - }, - { - 'name': 'luci-go_linux', - 'pattern': '.', - 'condition': 'host_os == "linux"', - 'action': [ 'download_from_google_storage', - '--no_resume', - '--platform=linux*', - '--no_auth', - '--bucket', 'chromium-luci', - '-d', 'v8/tools/luci-go/linux64', - ], - }, # Pull GN using checked-in hashes. { 'name': 'gn_win', @@ -294,17 +257,6 @@ hooks = [ '-s', 'v8/test/wasm-spec-tests/tests.tar.gz.sha1', ], }, - { - 'name': 'closure_compiler', - 'pattern': '.', - 'action': [ 'download_from_google_storage', - '--no_resume', - '--no_auth', - '-u', - '--bucket', 'chromium-v8-closure-compiler', - '-s', 'v8/src/inspector/build/closure-compiler.tar.gz.sha1', - ], - }, { 'name': 'sysroot_arm', 'pattern': '.', diff --git a/deps/v8/OWNERS b/deps/v8/OWNERS index d32f7213822f10..e41066126a2be6 100644 --- a/deps/v8/OWNERS +++ b/deps/v8/OWNERS @@ -4,12 +4,10 @@ aseemgarg@chromium.org bbudge@chromium.org binji@chromium.org bmeurer@chromium.org -bradnelson@chromium.org cbruni@chromium.org clemensh@chromium.org danno@chromium.org delphick@chromium.org -eholk@chromium.org gdeepti@chromium.org gsathya@chromium.org hablich@chromium.org @@ -19,7 +17,6 @@ ishell@chromium.org jarin@chromium.org jgruber@chromium.org jkummerow@chromium.org -kschimpf@chromium.org leszeks@chromium.org machenbach@chromium.org mathias@chromium.org diff --git a/deps/v8/PRESUBMIT.py b/deps/v8/PRESUBMIT.py index 88a64e727b2b8c..8aea920ef4834b 100644 --- a/deps/v8/PRESUBMIT.py +++ b/deps/v8/PRESUBMIT.py @@ -43,6 +43,9 @@ r"^tools[\\\/].*", ) +_LICENSE_FILE = ( + r"LICENSE" +) # Regular expression that matches code which should not be run through cpplint. _NO_LINT_PATHS = ( @@ -74,7 +77,7 @@ def _V8PresubmitChecks(input_api, output_api): sys.path.append(input_api.os_path.join( input_api.PresubmitLocalPath(), 'tools')) from v8_presubmit import CppLintProcessor - from v8_presubmit import TorqueFormatProcessor + from v8_presubmit import TorqueLintProcessor from v8_presubmit import SourceProcessor from v8_presubmit import StatusFilesProcessor @@ -93,7 +96,7 @@ def FilterTorqueFile(affected_file): if not CppLintProcessor().RunOnFiles( input_api.AffectedFiles(file_filter=FilterFile, include_deletes=False)): results.append(output_api.PresubmitError("C++ lint check failed")) - if not TorqueFormatProcessor().RunOnFiles( + if not TorqueLintProcessor().RunOnFiles( input_api.AffectedFiles(file_filter=FilterTorqueFile, include_deletes=False)): results.append(output_api.PresubmitError("Torque format check failed")) @@ -311,8 +314,13 @@ def _CommonChecks(input_api, output_api): results.extend(_CheckCommitMessageBugEntry(input_api, output_api)) results.extend(input_api.canned_checks.CheckPatchFormatted( input_api, output_api)) + + # License files are taken as is, even if they include gendered pronouns. + license_filter = lambda path: input_api.FilterSourceFile( + path, black_list=_LICENSE_FILE) results.extend(input_api.canned_checks.CheckGenderNeutral( - input_api, output_api)) + input_api, output_api, source_file_filter=license_filter)) + results.extend(_V8PresubmitChecks(input_api, output_api)) results.extend(_CheckUnwantedDependencies(input_api, output_api)) results.extend( @@ -322,6 +330,7 @@ def _CommonChecks(input_api, output_api): _CheckNoInlineHeaderIncludesInNormalHeaders(input_api, output_api)) results.extend(_CheckJSONFiles(input_api, output_api)) results.extend(_CheckMacroUndefs(input_api, output_api)) + results.extend(_CheckNoexceptAnnotations(input_api, output_api)) results.extend(input_api.RunTests( input_api.canned_checks.CheckVPythonSpec(input_api, output_api))) return results @@ -442,6 +451,58 @@ def TouchesMacros(f): return [] +def _CheckNoexceptAnnotations(input_api, output_api): + """ + Checks that all user-defined constructors and assignment operators are marked + V8_NOEXCEPT. + + This is required for standard containers to pick the right constructors. Our + macros (like MOVE_ONLY_WITH_DEFAULT_CONSTRUCTORS) add this automatically. + Omitting it at some places can result in weird compiler errors if this is + mixed with other classes that have the annotation. + + TODO(clemensh): This check should eventually be enabled for all files via + tools/presubmit.py (https://crbug.com/v8/8616). + """ + + def FilterFile(affected_file): + return input_api.FilterSourceFile( + affected_file, + white_list=(r'src/.*', r'test/.*')) + + + # matches any class name. + class_name = r'\b([A-Z][A-Za-z0-9_:]*)(?:::\1)?' + # initial class name is potentially followed by this to declare an assignment + # operator. + potential_assignment = r'(?:&\s+(?:\1::)?operator=)?\s*' + # matches an argument list that contains only a reference to a class named + # like the first capture group, potentially const. + single_class_ref_arg = r'\(\s*(?:const\s+)?\1(?:::\1)?&&?[^,;)]*\)' + # matches anything but a sequence of whitespaces followed by either + # V8_NOEXCEPT or "= delete". + not_followed_by_noexcept = r'(?!\s+(?:V8_NOEXCEPT|=\s+delete)\b)' + full_pattern = r'^.*?' + class_name + potential_assignment + \ + single_class_ref_arg + not_followed_by_noexcept + '.*?$' + regexp = input_api.re.compile(full_pattern, re.MULTILINE) + + errors = [] + for f in input_api.AffectedFiles(file_filter=FilterFile, + include_deletes=False): + with open(f.LocalPath()) as fh: + for match in re.finditer(regexp, fh.read()): + errors.append('in {}: {}'.format(f.LocalPath(), + match.group().strip())) + + if errors: + return [output_api.PresubmitPromptOrNotify( + 'Copy constructors, move constructors, copy assignment operators and ' + 'move assignment operators should be marked V8_NOEXCEPT.\n' + 'Please report false positives on https://crbug.com/v8/8616.', + errors)] + return [] + + def CheckChangeOnUpload(input_api, output_api): results = [] results.extend(_CommonChecks(input_api, output_api)) @@ -458,19 +519,3 @@ def CheckChangeOnCommit(input_api, output_api): input_api, output_api, json_url='http://v8-status.appspot.com/current?format=json')) return results - -def PostUploadHook(cl, change, output_api): - """git cl upload will call this hook after the issue is created/modified. - - This hook adds a noi18n bot if the patch affects Intl. - """ - def affects_intl(f): - return 'intl' in f.LocalPath() or 'test262' in f.LocalPath() - if not change.AffectedFiles(file_filter=affects_intl): - return [] - return output_api.EnsureCQIncludeTrybotsAreAdded( - cl, - [ - 'luci.v8.try:v8_linux_noi18n_rel_ng' - ], - 'Automatically added noi18n trybots to run tests on CQ.') 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 e2a5ca0c8d491b..f9ef03f5ba82ca 100644 --- a/deps/v8/base/trace_event/common/trace_event_common.h +++ b/deps/v8/base/trace_event/common/trace_event_common.h @@ -374,6 +374,10 @@ INTERNAL_TRACE_EVENT_ADD(TRACE_EVENT_PHASE_MARK, category_group, name, \ TRACE_EVENT_FLAG_COPY) +#define TRACE_EVENT_COPY_MARK1(category_group, name, arg1_name, arg1_val) \ + INTERNAL_TRACE_EVENT_ADD(TRACE_EVENT_PHASE_MARK, category_group, name, \ + TRACE_EVENT_FLAG_COPY, arg1_name, arg1_val) + #define TRACE_EVENT_COPY_MARK_WITH_TIMESTAMP(category_group, name, timestamp) \ INTERNAL_TRACE_EVENT_ADD_WITH_TIMESTAMP( \ TRACE_EVENT_PHASE_MARK, category_group, name, timestamp, \ @@ -1005,14 +1009,6 @@ } \ } while (0) -// Macro to explicitly warm up a given category group. This could be useful in -// cases where we want to initialize a category group before any trace events -// for that category group is reported. For example, to have a category group -// always show up in the "record categories" list for manually selecting -// settings in about://tracing. -#define TRACE_EVENT_WARMUP_CATEGORY(category_group) \ - INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category_group) - // Macro to efficiently determine, through polling, if a new trace has begun. #define TRACE_EVENT_IS_NEW_TRACE(ret) \ do { \ diff --git a/deps/v8/benchmarks/base.js b/deps/v8/benchmarks/base.js index 62c37e1208dad5..f84c6d84f74e9c 100644 --- a/deps/v8/benchmarks/base.js +++ b/deps/v8/benchmarks/base.js @@ -87,6 +87,7 @@ Math.random = (function() { var seed = 49734321; return function() { // Robert Jenkins' 32 bit integer hash function. + seed = seed & 0xffffffff; seed = ((seed + 0x7ed55d16) + (seed << 12)) & 0xffffffff; seed = ((seed ^ 0xc761c23c) ^ (seed >>> 19)) & 0xffffffff; seed = ((seed + 0x165667b1) + (seed << 5)) & 0xffffffff; diff --git a/deps/v8/benchmarks/micro/slice-perf.js b/deps/v8/benchmarks/micro/slice-perf.js new file mode 100644 index 00000000000000..300d2126666fd8 --- /dev/null +++ b/deps/v8/benchmarks/micro/slice-perf.js @@ -0,0 +1,83 @@ +// Copyright 2018 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +const kIterations = 1000000; +const kIterationShort = 10000; +const kArraySize = 64; + +let smi_array = []; +for (let i = 0; i < kArraySize; ++i) smi_array[i] = Math.floor(Math.random() * 100); + +let start = performance.now(); +for (let x = 0; x < kIterations; ++x) { + smi_array.slice(0); +} +let stop = performance.now(); +print("smi_array copy: " + (Math.floor((stop - start)*10)/10) + " ms"); + +start = performance.now(); +for (let x = 0; x < kIterations; ++x) { + smi_array.slice(x % kArraySize); +} +stop = performance.now(); +print("smi_array: " + (Math.floor((stop - start)*10)/10) + " ms"); + +let double_array = []; +for (let i = 0; i < kArraySize; ++i) double_array[i] = Math.random() * 100; +start = performance.now(); +for (let x = 0; x < kIterations; ++x) { + double_array.slice(x % kArraySize); +} +stop = performance.now(); +print("double_array: " + (Math.floor((stop - start)*10)/10) + " ms"); + +let object_array = []; +for (let i = 0; i < kArraySize; ++i) object_array[i] = new Object(); +start = performance.now(); +for (let x = 0; x < kIterations; ++x) { + object_array.slice(x % kArraySize); +} +stop = performance.now(); +print("object_array: " + (Math.floor((stop - start)*10)/10) + " ms"); + +let dictionary_array = []; +for (let i = 0; i < kArraySize; ++i) dictionary_array[i] = new Object(); +dictionary_array[100000] = new Object(); +start = performance.now(); +for (let x = 0; x < kIterationShort; ++x) { + dictionary_array.slice(x % kArraySize); +} +stop = performance.now(); +print("dictionary: " + (Math.floor((stop - start)*10)/10) + " ms"); + +let arguments_array; +function sloppy() { + arguments_array = arguments; +} +sloppy.apply(null, smi_array); +start = performance.now(); +for (let x = 0; x < kIterations; ++x) { + let r = Array.prototype.slice.call(arguments_array, x % kArraySize); +} +stop = performance.now(); +print("arguments_array (sloppy): " + (Math.floor((stop - start)*10)/10) + " ms"); + +function sloppy2 (a) { + arguments_array = arguments; +} +sloppy2.apply(null, smi_array); +start = performance.now(); +for (let x = 0; x < kIterations; ++x) { + Array.prototype.slice.call(arguments_array, x % kArraySize); +} +stop = performance.now(); +print("arguments_array (fast aliased): " + (Math.floor((stop - start)*10)/10) + " ms"); + +delete arguments_array[5]; +start = performance.now(); +for (let x = 0; x < kIterationShort; ++x) { + Array.prototype.slice.call(arguments_array, x % kArraySize); +} +stop = performance.now(); +print("arguments_array (slow aliased): " + (Math.floor((stop - start)*10)/10) + " ms"); diff --git a/deps/v8/benchmarks/spinning-balls/v.js b/deps/v8/benchmarks/spinning-balls/v.js index 5ae11948d6d6a4..177ab44aecb09f 100644 --- a/deps/v8/benchmarks/spinning-balls/v.js +++ b/deps/v8/benchmarks/spinning-balls/v.js @@ -136,6 +136,7 @@ Math.random = (function() { var seed = 49734321; return function() { // Robert Jenkins' 32 bit integer hash function. + seed = seed & 0xffffffff; seed = ((seed + 0x7ed55d16) + (seed << 12)) & 0xffffffff; seed = ((seed ^ 0xc761c23c) ^ (seed >>> 19)) & 0xffffffff; seed = ((seed + 0x165667b1) + (seed << 5)) & 0xffffffff; diff --git a/deps/v8/gni/v8.gni b/deps/v8/gni/v8.gni index 6cb248f160dbd6..1ed8e0382ab13c 100644 --- a/deps/v8/gni/v8.gni +++ b/deps/v8/gni/v8.gni @@ -32,7 +32,7 @@ declare_args() { v8_enable_backtrace = "" # Enable the snapshot feature, for fast context creation. - # http://v8project.blogspot.com/2015/09/custom-startup-snapshots.html + # https://v8.dev/blog/custom-startup-snapshots # TODO(thakis): Make snapshots work in 64-bit win/cross builds, # https://803591 v8_use_snapshot = !(is_win && host_os != "win" && target_cpu == "x64") diff --git a/deps/v8/include/OWNERS b/deps/v8/include/OWNERS index d20fb79fe16625..7953cfe133a2c0 100644 --- a/deps/v8/include/OWNERS +++ b/deps/v8/include/OWNERS @@ -5,6 +5,7 @@ danno@chromium.org ulan@chromium.org yangguo@chromium.org +per-file v8-internal.h=file://OWNERS per-file v8-inspector.h=dgozman@chromium.org per-file v8-inspector.h=pfeldman@chromium.org per-file v8-inspector.h=kozyatinskiy@chromium.org diff --git a/deps/v8/include/PRESUBMIT.py b/deps/v8/include/PRESUBMIT.py deleted file mode 100644 index 8002e4dcacb136..00000000000000 --- a/deps/v8/include/PRESUBMIT.py +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright 2017 the V8 project authors. All rights reserved.') -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""Presubmit script for //v8/include - -See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts -for more details about the presubmit API built into depot_tools. -""" - -import os - - -def PostUploadHook(cl, change, output_api): - """git cl upload will call this hook after the issue is created/modified. - - This hook adds extra try bots to the CL description in order to run layout - tests in addition to CQ try bots. - """ - def header_filter(f): - return '.h' in os.path.split(f.LocalPath())[1] - if not change.AffectedFiles(file_filter=header_filter): - return [] - return output_api.EnsureCQIncludeTrybotsAreAdded( - cl, - [ - 'luci.chromium.try:linux_chromium_rel_ng' - ], - 'Automatically added layout test trybots to run tests on CQ.') diff --git a/deps/v8/include/libplatform/libplatform.h b/deps/v8/include/libplatform/libplatform.h index 2b167cb9e5b412..13c0db9a85487a 100644 --- a/deps/v8/include/libplatform/libplatform.h +++ b/deps/v8/include/libplatform/libplatform.h @@ -41,7 +41,7 @@ V8_PLATFORM_EXPORT std::unique_ptr NewDefaultPlatform( InProcessStackDumping::kDisabled, std::unique_ptr tracing_controller = {}); -V8_PLATFORM_EXPORT V8_DEPRECATE_SOON( +V8_PLATFORM_EXPORT V8_DEPRECATED( "Use NewDefaultPlatform instead", v8::Platform* CreateDefaultPlatform( int thread_pool_size = 0, diff --git a/deps/v8/include/v8-inspector.h b/deps/v8/include/v8-inspector.h index f0a8b5f1635adf..702013588cdb10 100644 --- a/deps/v8/include/v8-inspector.h +++ b/deps/v8/include/v8-inspector.h @@ -245,8 +245,7 @@ class V8_EXPORT V8Inspector { virtual void contextCreated(const V8ContextInfo&) = 0; virtual void contextDestroyed(v8::Local) = 0; virtual void resetContextGroup(int contextGroupId) = 0; - virtual v8::MaybeLocal contextById(int groupId, - v8::Maybe contextId) = 0; + virtual v8::MaybeLocal contextById(int contextId) = 0; // Various instrumentation. virtual void idleStarted() = 0; diff --git a/deps/v8/include/v8-internal.h b/deps/v8/include/v8-internal.h index 80f7367bfee3e6..7f9c27ebb96d96 100644 --- a/deps/v8/include/v8-internal.h +++ b/deps/v8/include/v8-internal.h @@ -20,15 +20,19 @@ class Isolate; namespace internal { -class Object; +class Isolate; + +typedef uintptr_t Address; +static const Address kNullAddress = 0; /** * Configuration of tagging scheme. */ -const int kApiPointerSize = sizeof(void*); // NOLINT -const int kApiDoubleSize = sizeof(double); // NOLINT -const int kApiIntSize = sizeof(int); // NOLINT -const int kApiInt64Size = sizeof(int64_t); // NOLINT +const int kApiSystemPointerSize = sizeof(void*); +const int kApiTaggedSize = kApiSystemPointerSize; +const int kApiDoubleSize = sizeof(double); +const int kApiIntSize = sizeof(int); +const int kApiInt64Size = sizeof(int64_t); // Tag information for HeapObject. const int kHeapObjectTag = 1; @@ -44,33 +48,20 @@ const intptr_t kSmiTagMask = (1 << kSmiTagSize) - 1; template struct SmiTagging; -template -V8_INLINE internal::Object* IntToSmi(int value) { - int smi_shift_bits = kSmiTagSize + kSmiShiftSize; - intptr_t tagged_value = - (static_cast(value) << smi_shift_bits) | kSmiTag; - return reinterpret_cast(tagged_value); -} - // Smi constants for systems where tagged pointer is a 32-bit value. template <> struct SmiTagging<4> { enum { kSmiShiftSize = 0, kSmiValueSize = 31 }; - static int SmiShiftSize() { return kSmiShiftSize; } - static int SmiValueSize() { return kSmiValueSize; } - V8_INLINE static int SmiToInt(const internal::Object* value) { + V8_INLINE static int SmiToInt(const internal::Address value) { int shift_bits = kSmiTagSize + kSmiShiftSize; - // Throw away top 32 bits and shift down (requires >> to be sign extending). - return static_cast(reinterpret_cast(value)) >> shift_bits; - } - V8_INLINE static internal::Object* IntToSmi(int value) { - return internal::IntToSmi(value); + // Shift down (requires >> to be sign extending). + return static_cast(static_cast(value)) >> shift_bits; } V8_INLINE static constexpr bool IsValidSmi(intptr_t value) { // To be representable as an tagged small integer, the two // most-significant bits of 'value' must be either 00 or 11 due to // sign-extension. To check this we add 01 to the two - // most-significant bits, and check if the most-significant bit is 0 + // most-significant bits, and check if the most-significant bit is 0. // // CAUTION: The original code below: // bool result = ((value + 0x40000000) & 0x80000000) == 0; @@ -86,15 +77,10 @@ struct SmiTagging<4> { template <> struct SmiTagging<8> { enum { kSmiShiftSize = 31, kSmiValueSize = 32 }; - static int SmiShiftSize() { return kSmiShiftSize; } - static int SmiValueSize() { return kSmiValueSize; } - V8_INLINE static int SmiToInt(const internal::Object* value) { + V8_INLINE static int SmiToInt(const internal::Address value) { int shift_bits = kSmiTagSize + kSmiShiftSize; // Shift down and throw away top 32 bits. - return static_cast(reinterpret_cast(value) >> shift_bits); - } - V8_INLINE static internal::Object* IntToSmi(int value) { - return internal::IntToSmi(value); + return static_cast(static_cast(value) >> shift_bits); } V8_INLINE static constexpr bool IsValidSmi(intptr_t value) { // To be representable as a long smi, the value must be a 32-bit integer. @@ -102,13 +88,16 @@ struct SmiTagging<8> { } }; -#if V8_COMPRESS_POINTERS +#if defined(V8_COMPRESS_POINTERS) static_assert( - kApiPointerSize == kApiInt64Size, + kApiSystemPointerSize == kApiInt64Size, "Pointer compression can be enabled only for 64-bit architectures"); -typedef SmiTagging<4> PlatformSmiTagging; +#endif + +#if defined(V8_COMPRESS_POINTERS) || defined(V8_31BIT_SMIS_ON_64BIT_ARCH) +typedef SmiTagging PlatformSmiTagging; #else -typedef SmiTagging PlatformSmiTagging; +typedef SmiTagging PlatformSmiTagging; #endif const int kSmiShiftSize = PlatformSmiTagging::kSmiShiftSize; @@ -118,6 +107,11 @@ const int kSmiMaxValue = -(kSmiMinValue + 1); constexpr bool SmiValuesAre31Bits() { return kSmiValueSize == 31; } constexpr bool SmiValuesAre32Bits() { return kSmiValueSize == 32; } +V8_INLINE static constexpr internal::Address IntToSmi(int value) { + return (static_cast
(value) << (kSmiTagSize + kSmiShiftSize)) | + kSmiTag; +} + /** * This class exports constants and functionality from within v8 that * is necessary to implement inline functions in the v8 api. Don't @@ -128,30 +122,40 @@ class Internals { // These values match non-compiler-dependent values defined within // the implementation of v8. static const int kHeapObjectMapOffset = 0; - static const int kMapInstanceTypeOffset = 1 * kApiPointerSize + kApiIntSize; - static const int kStringResourceOffset = - 1 * kApiPointerSize + 2 * kApiIntSize; - - static const int kOddballKindOffset = 4 * kApiPointerSize + kApiDoubleSize; - static const int kForeignAddressOffset = kApiPointerSize; - static const int kJSObjectHeaderSize = 3 * kApiPointerSize; - static const int kFixedArrayHeaderSize = 2 * kApiPointerSize; - static const int kContextHeaderSize = 2 * kApiPointerSize; - static const int kContextEmbedderDataIndex = 5; + static const int kMapInstanceTypeOffset = 1 * kApiTaggedSize + kApiIntSize; + static const int kStringResourceOffset = 1 * kApiTaggedSize + 2 * kApiIntSize; + + static const int kOddballKindOffset = 4 * kApiTaggedSize + kApiDoubleSize; + static const int kForeignAddressOffset = kApiTaggedSize; + static const int kJSObjectHeaderSize = 3 * kApiTaggedSize; + static const int kJSObjectHeaderSizeForEmbedderFields = + (kJSObjectHeaderSize + kApiSystemPointerSize - 1) & + -kApiSystemPointerSize; + static const int kFixedArrayHeaderSize = 2 * kApiTaggedSize; + static const int kEmbedderDataArrayHeaderSize = 2 * kApiTaggedSize; + static const int kEmbedderDataSlotSize = +#ifdef V8_COMPRESS_POINTERS + 2 * +#endif + kApiSystemPointerSize; + static const int kNativeContextEmbedderDataOffset = 7 * kApiTaggedSize; static const int kFullStringRepresentationMask = 0x0f; static const int kStringEncodingMask = 0x8; static const int kExternalTwoByteRepresentationTag = 0x02; static const int kExternalOneByteRepresentationTag = 0x0a; - static const int kIsolateEmbedderDataOffset = 0 * kApiPointerSize; - static const int kExternalMemoryOffset = 4 * kApiPointerSize; + static const uint32_t kNumIsolateDataSlots = 4; + + static const int kIsolateEmbedderDataOffset = 0; + static const int kExternalMemoryOffset = + kNumIsolateDataSlots * kApiTaggedSize; static const int kExternalMemoryLimitOffset = kExternalMemoryOffset + kApiInt64Size; static const int kExternalMemoryAtLastMarkCompactOffset = kExternalMemoryLimitOffset + kApiInt64Size; - static const int kIsolateRootsOffset = kExternalMemoryLimitOffset + - kApiInt64Size + kApiInt64Size + - kApiPointerSize + kApiPointerSize; + static const int kIsolateRootsOffset = + kExternalMemoryAtLastMarkCompactOffset + kApiInt64Size; + static const int kUndefinedValueRootIndex = 4; static const int kTheHoleValueRootIndex = 5; static const int kNullValueRootIndex = 6; @@ -159,8 +163,8 @@ class Internals { static const int kFalseValueRootIndex = 8; static const int kEmptyStringRootIndex = 9; - static const int kNodeClassIdOffset = 1 * kApiPointerSize; - static const int kNodeFlagsOffset = 1 * kApiPointerSize + 3; + static const int kNodeClassIdOffset = 1 * kApiTaggedSize; + static const int kNodeFlagsOffset = 1 * kApiTaggedSize + 3; static const int kNodeStateMask = 0x7; static const int kNodeStateIsWeakValue = 2; static const int kNodeStateIsPendingValue = 3; @@ -178,8 +182,6 @@ class Internals { static const int kUndefinedOddballKind = 5; static const int kNullOddballKind = 3; - static const uint32_t kNumIsolateDataSlots = 4; - // Soft limit for AdjustAmountofExternalAllocatedMemory. Trigger an // incremental GC once the external memory reaches this limit. static constexpr int kExternalAllocationSoftLimit = 64 * 1024 * 1024; @@ -191,32 +193,30 @@ class Internals { #endif } - V8_INLINE static bool HasHeapObjectTag(const internal::Object* value) { - return ((reinterpret_cast(value) & kHeapObjectTagMask) == - kHeapObjectTag); + V8_INLINE static bool HasHeapObjectTag(const internal::Address value) { + return (value & kHeapObjectTagMask) == static_cast
(kHeapObjectTag); } - V8_INLINE static int SmiValue(const internal::Object* value) { + V8_INLINE static int SmiValue(const internal::Address value) { return PlatformSmiTagging::SmiToInt(value); } - V8_INLINE static internal::Object* IntToSmi(int value) { - return PlatformSmiTagging::IntToSmi(value); + V8_INLINE static constexpr internal::Address IntToSmi(int value) { + return internal::IntToSmi(value); } V8_INLINE static constexpr bool IsValidSmi(intptr_t value) { return PlatformSmiTagging::IsValidSmi(value); } - V8_INLINE static int GetInstanceType(const internal::Object* obj) { - typedef internal::Object O; - O* map = ReadField(obj, kHeapObjectMapOffset); - return ReadField(map, kMapInstanceTypeOffset); + V8_INLINE static int GetInstanceType(const internal::Address obj) { + typedef internal::Address A; + A map = ReadTaggedPointerField(obj, kHeapObjectMapOffset); + return ReadRawField(map, kMapInstanceTypeOffset); } - V8_INLINE static int GetOddballKind(const internal::Object* obj) { - typedef internal::Object O; - return SmiValue(ReadField(obj, kOddballKindOffset)); + V8_INLINE static int GetOddballKind(const internal::Address obj) { + return SmiValue(ReadTaggedSignedField(obj, kOddballKindOffset)); } V8_INLINE static bool IsExternalTwoByteString(int instance_type) { @@ -224,67 +224,120 @@ class Internals { return representation == kExternalTwoByteRepresentationTag; } - V8_INLINE static uint8_t GetNodeFlag(internal::Object** obj, int shift) { + V8_INLINE static uint8_t GetNodeFlag(internal::Address* obj, int shift) { uint8_t* addr = reinterpret_cast(obj) + kNodeFlagsOffset; return *addr & static_cast(1U << shift); } - V8_INLINE static void UpdateNodeFlag(internal::Object** obj, bool value, + V8_INLINE static void UpdateNodeFlag(internal::Address* obj, bool value, int shift) { uint8_t* addr = reinterpret_cast(obj) + kNodeFlagsOffset; uint8_t mask = static_cast(1U << shift); *addr = static_cast((*addr & ~mask) | (value << shift)); } - V8_INLINE static uint8_t GetNodeState(internal::Object** obj) { + V8_INLINE static uint8_t GetNodeState(internal::Address* obj) { uint8_t* addr = reinterpret_cast(obj) + kNodeFlagsOffset; return *addr & kNodeStateMask; } - V8_INLINE static void UpdateNodeState(internal::Object** obj, uint8_t value) { + V8_INLINE static void UpdateNodeState(internal::Address* obj, uint8_t value) { uint8_t* addr = reinterpret_cast(obj) + kNodeFlagsOffset; *addr = static_cast((*addr & ~kNodeStateMask) | value); } V8_INLINE static void SetEmbedderData(v8::Isolate* isolate, uint32_t slot, void* data) { - uint8_t* addr = reinterpret_cast(isolate) + - kIsolateEmbedderDataOffset + slot * kApiPointerSize; + internal::Address addr = reinterpret_cast(isolate) + + kIsolateEmbedderDataOffset + + slot * kApiSystemPointerSize; *reinterpret_cast(addr) = data; } V8_INLINE static void* GetEmbedderData(const v8::Isolate* isolate, uint32_t slot) { - const uint8_t* addr = reinterpret_cast(isolate) + - kIsolateEmbedderDataOffset + slot * kApiPointerSize; + internal::Address addr = reinterpret_cast(isolate) + + kIsolateEmbedderDataOffset + + slot * kApiSystemPointerSize; return *reinterpret_cast(addr); } - V8_INLINE static internal::Object** GetRoot(v8::Isolate* isolate, int index) { - uint8_t* addr = reinterpret_cast(isolate) + kIsolateRootsOffset; - return reinterpret_cast(addr + index * kApiPointerSize); + V8_INLINE static internal::Address* GetRoot(v8::Isolate* isolate, int index) { + internal::Address addr = reinterpret_cast(isolate) + + kIsolateRootsOffset + + index * kApiSystemPointerSize; + return reinterpret_cast(addr); } template - V8_INLINE static T ReadField(const internal::Object* ptr, int offset) { - const uint8_t* addr = - reinterpret_cast(ptr) + offset - kHeapObjectTag; + V8_INLINE static T ReadRawField(internal::Address heap_object_ptr, + int offset) { + internal::Address addr = heap_object_ptr + offset - kHeapObjectTag; return *reinterpret_cast(addr); } + V8_INLINE static internal::Address ReadTaggedPointerField( + internal::Address heap_object_ptr, int offset) { +#ifdef V8_COMPRESS_POINTERS + int32_t value = ReadRawField(heap_object_ptr, offset); + internal::Address root = GetRootFromOnHeapAddress(heap_object_ptr); + return root + static_cast(static_cast(value)); +#else + return ReadRawField(heap_object_ptr, offset); +#endif + } + + V8_INLINE static internal::Address ReadTaggedSignedField( + internal::Address heap_object_ptr, int offset) { +#ifdef V8_COMPRESS_POINTERS + int32_t value = ReadRawField(heap_object_ptr, offset); + return static_cast(static_cast(value)); +#else + return ReadRawField(heap_object_ptr, offset); +#endif + } + + V8_INLINE static internal::Address ReadTaggedAnyField( + internal::Address heap_object_ptr, int offset) { +#ifdef V8_COMPRESS_POINTERS + int32_t value = ReadRawField(heap_object_ptr, offset); + internal::Address root_mask = static_cast( + -static_cast(value & kSmiTagMask)); + internal::Address root_or_zero = + root_mask & GetRootFromOnHeapAddress(heap_object_ptr); + return root_or_zero + + static_cast(static_cast(value)); +#else + return ReadRawField(heap_object_ptr, offset); +#endif + } + +#ifdef V8_COMPRESS_POINTERS + static constexpr size_t kPtrComprHeapReservationSize = size_t{1} << 32; + static constexpr size_t kPtrComprIsolateRootBias = + kPtrComprHeapReservationSize / 2; + static constexpr size_t kPtrComprIsolateRootAlignment = size_t{1} << 32; + + V8_INLINE static internal::Address GetRootFromOnHeapAddress( + internal::Address addr) { + return (addr + kPtrComprIsolateRootBias) & + -static_cast(kPtrComprIsolateRootAlignment); + } + +#else + template V8_INLINE static T ReadEmbedderData(const v8::Context* context, int index) { - typedef internal::Object O; + typedef internal::Address A; typedef internal::Internals I; - O* ctx = *reinterpret_cast(context); - int embedder_data_offset = - I::kContextHeaderSize + - (internal::kApiPointerSize * I::kContextEmbedderDataIndex); - O* embedder_data = I::ReadField(ctx, embedder_data_offset); + A ctx = *reinterpret_cast(context); + A embedder_data = + I::ReadTaggedPointerField(ctx, I::kNativeContextEmbedderDataOffset); int value_offset = - I::kFixedArrayHeaderSize + (internal::kApiPointerSize * index); - return I::ReadField(embedder_data, value_offset); + I::kEmbedderDataArrayHeaderSize + (I::kEmbedderDataSlotSize * index); + return I::ReadRawField(embedder_data, value_offset); } +#endif // V8_COMPRESS_POINTERS }; // Only perform cast check for types derived from v8::Data since @@ -310,6 +363,10 @@ V8_INLINE void PerformCastCheck(T* data) { CastCheck::value>::Perform(data); } +// {obj} must be the raw tagged pointer representation of a HeapObject +// that's guaranteed to never be in ReadOnlySpace. +V8_EXPORT internal::Isolate* IsolateFromNeverReadOnlySpaceObject(Address obj); + } // namespace internal } // namespace v8 diff --git a/deps/v8/include/v8-platform.h b/deps/v8/include/v8-platform.h index d983c30249591b..fc008979f69210 100644 --- a/deps/v8/include/v8-platform.h +++ b/deps/v8/include/v8-platform.h @@ -53,6 +53,15 @@ class TaskRunner { */ virtual void PostTask(std::unique_ptr task) = 0; + /** + * Schedules a task to be invoked by this TaskRunner. The TaskRunner + * implementation takes ownership of |task|. The |task| cannot be nested + * within other task executions. + * + * Requires that |TaskRunner::NonNestableTasksEnabled()| is true. + */ + virtual void PostNonNestableTask(std::unique_ptr task) {} + /** * Schedules a task to be invoked by this TaskRunner. The task is scheduled * after the given number of seconds |delay_in_seconds|. The TaskRunner @@ -64,7 +73,7 @@ class TaskRunner { /** * Schedules an idle task to be invoked by this TaskRunner. The task is * scheduled when the embedder is idle. Requires that - * TaskRunner::SupportsIdleTasks(isolate) is true. Idle tasks may be reordered + * |TaskRunner::IdleTasksEnabled()| is true. Idle tasks may be reordered * relative to other task types and may be starved for an arbitrarily long * time if no idle time is available. The TaskRunner implementation takes * ownership of |task|. @@ -76,6 +85,11 @@ class TaskRunner { */ virtual bool IdleTasksEnabled() = 0; + /** + * Returns true if non-nestable tasks are enabled for this TaskRunner. + */ + virtual bool NonNestableTasksEnabled() const { return false; } + TaskRunner() = default; virtual ~TaskRunner() = default; @@ -236,6 +250,13 @@ class PageAllocator { */ virtual bool SetPermissions(void* address, size_t length, Permission permissions) = 0; + + /** + * Frees memory in the given [address, address + size) range. address and size + * should be operating system page-aligned. The next write to this + * memory area brings the memory transparently back. + */ + virtual bool DiscardSystemPages(void* address, size_t size) { return true; } }; /** @@ -310,6 +331,15 @@ class Platform { CallOnWorkerThread(std::move(task)); } + /** + * Schedules a task to be invoked with low-priority on a worker thread. + */ + virtual void CallLowPriorityTaskOnWorkerThread(std::unique_ptr task) { + // Embedders may optionally override this to process these tasks in a low + // priority pool. + CallOnWorkerThread(std::move(task)); + } + /** * Schedules a task to be invoked on a worker thread after |delay_in_seconds| * expires. @@ -388,6 +418,12 @@ class Platform { */ virtual TracingController* GetTracingController() = 0; + /** + * Tells the embedder to generate and upload a crashdump during an unexpected + * but non-critical scenario. + */ + virtual void DumpWithoutCrashing() {} + protected: /** * Default implementation of current wall-clock time in milliseconds diff --git a/deps/v8/include/v8-profiler.h b/deps/v8/include/v8-profiler.h index f30688582df8ed..94d3fcfcf63419 100644 --- a/deps/v8/include/v8-profiler.h +++ b/deps/v8/include/v8-profiler.h @@ -611,6 +611,11 @@ class V8_EXPORT AllocationProfile { */ int column_number; + /** + * Unique id of the node. + */ + uint32_t node_id; + /** * List of callees called from this node for which we have sampled * allocations. The lifetime of the children is scoped to the containing @@ -624,12 +629,39 @@ class V8_EXPORT AllocationProfile { std::vector allocations; }; + /** + * Represent a single sample recorded for an allocation. + */ + struct Sample { + /** + * id of the node in the profile tree. + */ + uint32_t node_id; + + /** + * Size of the sampled allocation object. + */ + size_t size; + + /** + * The number of objects of such size that were sampled. + */ + unsigned int count; + + /** + * Unique time-ordered id of the allocation sample. Can be used to track + * what samples were added or removed between two snapshots. + */ + uint64_t sample_id; + }; + /** * Returns the root node of the call-graph. The root node corresponds to an * empty JS call-stack. The lifetime of the returned Node* is scoped to the * containing AllocationProfile. */ virtual Node* GetRootNode() = 0; + virtual const std::vector& GetSamples() = 0; virtual ~AllocationProfile() = default; diff --git a/deps/v8/include/v8-util.h b/deps/v8/include/v8-util.h index 96c9acbbdc2b29..7f12ead16b6b84 100644 --- a/deps/v8/include/v8-util.h +++ b/deps/v8/include/v8-util.h @@ -25,13 +25,11 @@ enum PersistentContainerCallbackType { kNotWeak, // These correspond to v8::WeakCallbackType kWeakWithParameter, - kWeakWithInternalFields, - kWeak = kWeakWithParameter // For backwards compatibility. Deprecate. + kWeakWithInternalFields }; - /** - * A default trait implemenation for PersistentValueMap which uses std::map + * A default trait implementation for PersistentValueMap which uses std::map * as a backing map. * * Users will have to implement their own weak callbacks & dispose traits. @@ -203,7 +201,7 @@ class PersistentValueMapBase { void RegisterExternallyReferencedObject(K& key) { assert(Contains(key)); V8::RegisterExternallyReferencedObject( - reinterpret_cast(FromVal(Traits::Get(&impl_, key))), + reinterpret_cast(FromVal(Traits::Get(&impl_, key))), reinterpret_cast(GetIsolate())); } @@ -289,7 +287,10 @@ class PersistentValueMapBase { } protected: - explicit PersistentValueMapBase(Isolate* isolate) : isolate_(isolate) {} + explicit PersistentValueMapBase(Isolate* isolate) + : isolate_(isolate), label_(nullptr) {} + PersistentValueMapBase(Isolate* isolate, const char* label) + : isolate_(isolate), label_(label) {} ~PersistentValueMapBase() { Clear(); } @@ -331,6 +332,10 @@ class PersistentValueMapBase { p.Reset(); } + void AnnotateStrongRetainer(Global* persistent) { + persistent->AnnotateStrongRetainer(label_); + } + private: PersistentValueMapBase(PersistentValueMapBase&); void operator=(PersistentValueMapBase&); @@ -340,13 +345,14 @@ class PersistentValueMapBase { bool hasValue = value != kPersistentContainerNotFound; if (hasValue) { returnValue->SetInternal( - *reinterpret_cast(FromVal(value))); + *reinterpret_cast(FromVal(value))); } return hasValue; } Isolate* isolate_; typename Traits::Impl impl_; + const char* label_; }; @@ -355,6 +361,8 @@ class PersistentValueMap : public PersistentValueMapBase { public: explicit PersistentValueMap(Isolate* isolate) : PersistentValueMapBase(isolate) {} + PersistentValueMap(Isolate* isolate, const char* label) + : PersistentValueMapBase(isolate, label) {} typedef typename PersistentValueMapBase::PersistentValueReference @@ -382,7 +390,9 @@ class PersistentValueMap : public PersistentValueMapBase { * by the Traits class. */ Global SetUnique(const K& key, Global* persistent) { - if (Traits::kCallbackType != kNotWeak) { + if (Traits::kCallbackType == kNotWeak) { + this->AnnotateStrongRetainer(persistent); + } else { WeakCallbackType callback_type = Traits::kCallbackType == kWeakWithInternalFields ? WeakCallbackType::kInternalFields @@ -427,6 +437,8 @@ class GlobalValueMap : public PersistentValueMapBase { public: explicit GlobalValueMap(Isolate* isolate) : PersistentValueMapBase(isolate) {} + GlobalValueMap(Isolate* isolate, const char* label) + : PersistentValueMapBase(isolate, label) {} typedef typename PersistentValueMapBase::PersistentValueReference @@ -454,7 +466,9 @@ class GlobalValueMap : public PersistentValueMapBase { * by the Traits class. */ Global SetUnique(const K& key, Global* persistent) { - if (Traits::kCallbackType != kNotWeak) { + if (Traits::kCallbackType == kNotWeak) { + this->AnnotateStrongRetainer(persistent); + } else { WeakCallbackType callback_type = Traits::kCallbackType == kWeakWithInternalFields ? WeakCallbackType::kInternalFields diff --git a/deps/v8/include/v8-version.h b/deps/v8/include/v8-version.h index 114e57c58eaf7d..fbdedc309f3d7a 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 7 -#define V8_MINOR_VERSION 1 -#define V8_BUILD_NUMBER 302 -#define V8_PATCH_LEVEL 33 +#define V8_MINOR_VERSION 3 +#define V8_BUILD_NUMBER 492 +#define V8_PATCH_LEVEL 7 // Use 1 for candidates and 0 otherwise. // (Boolean macro values are not supported by all preprocessors.) diff --git a/deps/v8/include/v8-wasm-trap-handler-posix.h b/deps/v8/include/v8-wasm-trap-handler-posix.h new file mode 100644 index 00000000000000..998d0a41bb73d8 --- /dev/null +++ b/deps/v8/include/v8-wasm-trap-handler-posix.h @@ -0,0 +1,31 @@ +// Copyright 2018 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef V8_WASM_TRAP_HANDLER_POSIX_H_ +#define V8_WASM_TRAP_HANDLER_POSIX_H_ + +#include + +#include "v8config.h" // NOLINT(build/include) + +namespace v8 { +/** + * This function determines whether a memory access violation has been an + * out-of-bounds memory access in WebAssembly. If so, it will modify the context + * parameter and add a return address where the execution can continue after the + * signal handling, and return true. Otherwise, false will be returned. + * + * The parameters to this function correspond to those passed to a Posix signal + * handler. Use this function only on Linux and Mac. + * + * \param sig_code The signal code, e.g. SIGSEGV. + * \param info A pointer to the siginfo_t struct provided to the signal handler. + * \param context A pointer to a ucontext_t struct provided to the signal + * handler. + */ +V8_EXPORT bool TryHandleWebAssemblyTrapPosix(int sig_code, siginfo_t* info, + void* context); + +} // namespace v8 +#endif // V8_WASM_TRAP_HANDLER_POSIX_H_ diff --git a/deps/v8/include/v8-wasm-trap-handler-win.h b/deps/v8/include/v8-wasm-trap-handler-win.h new file mode 100644 index 00000000000000..0185df6401c24b --- /dev/null +++ b/deps/v8/include/v8-wasm-trap-handler-win.h @@ -0,0 +1,28 @@ +// Copyright 2018 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef V8_WASM_TRAP_HANDLER_WIN_H_ +#define V8_WASM_TRAP_HANDLER_WIN_H_ + +#include + +#include "v8config.h" // NOLINT(build/include) + +namespace v8 { +/** + * This function determines whether a memory access violation has been an + * out-of-bounds memory access in WebAssembly. If so, it will modify the + * exception parameter and add a return address where the execution can continue + * after the exception handling, and return true. Otherwise the return value + * will be false. + * + * The parameter to this function corresponds to the one passed to a Windows + * vectored exception handler. Use this function only on Windows. + * + * \param exception An EXCEPTION_POINTERS* as provided to the exception handler. + */ +V8_EXPORT bool TryHandleWebAssemblyTrapWindows(EXCEPTION_POINTERS* exception); + +} // namespace v8 +#endif // V8_WASM_TRAP_HANDLER_WIN_H_ diff --git a/deps/v8/include/v8.h b/deps/v8/include/v8.h index 01fb56b55db193..b23114f4ff8bfa 100644 --- a/deps/v8/include/v8.h +++ b/deps/v8/include/v8.h @@ -81,7 +81,7 @@ class Private; class Uint32; class Utils; class Value; -class WasmCompiledModule; +class WasmModuleObject; template class Local; template class MaybeLocal; @@ -118,7 +118,6 @@ class HeapObject; class Isolate; class LocalEmbedderHeapTracer; class NeverReadOnlySpaceObject; -class Object; struct ScriptStreamingData; template class CustomArguments; class PropertyCallbackArguments; @@ -212,8 +211,8 @@ class Local { */ template V8_INLINE bool operator==(const Local& that) const { - internal::Object** a = reinterpret_cast(this->val_); - internal::Object** b = reinterpret_cast(that.val_); + internal::Address* a = reinterpret_cast(this->val_); + internal::Address* b = reinterpret_cast(that.val_); if (a == nullptr) return b == nullptr; if (b == nullptr) return false; return *a == *b; @@ -221,8 +220,8 @@ class Local { template V8_INLINE bool operator==( const PersistentBase& that) const { - internal::Object** a = reinterpret_cast(this->val_); - internal::Object** b = reinterpret_cast(that.val_); + internal::Address* a = reinterpret_cast(this->val_); + internal::Address* b = reinterpret_cast(that.val_); if (a == nullptr) return b == nullptr; if (b == nullptr) return false; return *a == *b; @@ -477,8 +476,8 @@ template class PersistentBase { template V8_INLINE bool operator==(const PersistentBase& that) const { - internal::Object** a = reinterpret_cast(this->val_); - internal::Object** b = reinterpret_cast(that.val_); + internal::Address* a = reinterpret_cast(this->val_); + internal::Address* b = reinterpret_cast(that.val_); if (a == nullptr) return b == nullptr; if (b == nullptr) return false; return *a == *b; @@ -486,8 +485,8 @@ template class PersistentBase { template V8_INLINE bool operator==(const Local& that) const { - internal::Object** a = reinterpret_cast(this->val_); - internal::Object** b = reinterpret_cast(that.val_); + internal::Address* a = reinterpret_cast(this->val_); + internal::Address* b = reinterpret_cast(that.val_); if (a == nullptr) return b == nullptr; if (b == nullptr) return false; return *a == *b; @@ -569,7 +568,9 @@ template class PersistentBase { V8_INLINE bool IsIndependent() const); /** Checks if the handle holds the only reference to an object. */ - V8_INLINE bool IsNearDeath() const; + V8_DEPRECATE_SOON( + "Garbage collection internal state should not be relied on.", + V8_INLINE bool IsNearDeath() const); /** Returns true if the handle's reference is weak. */ V8_INLINE bool IsWeak() const; @@ -696,7 +697,7 @@ template class Persistent : public PersistentBase { V8_INLINE Persistent(const Persistent& that) : PersistentBase(0) { Copy(that); } - V8_INLINE Persistent& operator=(const Persistent& that) { // NOLINT + V8_INLINE Persistent& operator=(const Persistent& that) { Copy(that); return *this; } @@ -780,7 +781,7 @@ class Global : public PersistentBase { /** * Move constructor. */ - V8_INLINE Global(Global&& other) : PersistentBase(other.val_) { // NOLINT + V8_INLINE Global(Global&& other) : PersistentBase(other.val_) { other.val_ = nullptr; } V8_INLINE ~Global() { this->Reset(); } @@ -859,8 +860,8 @@ class V8_EXPORT HandleScope { void Initialize(Isolate* isolate); - static internal::Object** CreateHandle(internal::Isolate* isolate, - internal::Object* value); + static internal::Address* CreateHandle(internal::Isolate* isolate, + internal::Address value); private: // Declaring operator new and delete as deleted is not spec compliant. @@ -870,19 +871,15 @@ class V8_EXPORT HandleScope { void operator delete(void*, size_t); void operator delete[](void*, size_t); - // Uses heap_object to obtain the current Isolate. - static internal::Object** CreateHandle( - internal::NeverReadOnlySpaceObject* heap_object, internal::Object* value); - internal::Isolate* isolate_; - internal::Object** prev_next_; - internal::Object** prev_limit_; + internal::Address* prev_next_; + internal::Address* prev_limit_; // Local::New uses CreateHandle with an Isolate* parameter. template friend class Local; // Object::GetInternalField and Context::GetEmbedderData use CreateHandle with - // a HeapObject* in their shortcuts. + // a HeapObject in their shortcuts. friend class Object; friend class Context; }; @@ -903,8 +900,8 @@ class V8_EXPORT EscapableHandleScope : public HandleScope { */ template V8_INLINE Local Escape(Local value) { - internal::Object** slot = - Escape(reinterpret_cast(*value)); + internal::Address* slot = + Escape(reinterpret_cast(*value)); return Local(reinterpret_cast(slot)); } @@ -924,8 +921,8 @@ class V8_EXPORT EscapableHandleScope : public HandleScope { void operator delete(void*, size_t); void operator delete[](void*, size_t); - internal::Object** Escape(internal::Object** escape_value); - internal::Object** escape_slot_; + internal::Address* Escape(internal::Address* escape_value); + internal::Address* escape_slot_; }; /** @@ -950,7 +947,7 @@ class V8_EXPORT SealHandleScope { void operator delete[](void*, size_t); internal::Isolate* const isolate_; - internal::Object** prev_limit_; + internal::Address* prev_limit_; int prev_sealed_level_; }; @@ -1393,10 +1390,6 @@ class V8_EXPORT ScriptCompiler { StreamedSource(ExternalSourceStream* source_stream, Encoding encoding); ~StreamedSource(); - V8_DEPRECATED("No longer used", const CachedData* GetCachedData() const) { - return nullptr; - } - internal::ScriptStreamingData* impl() const { return impl_.get(); } // Prevent copying. @@ -1426,10 +1419,6 @@ class V8_EXPORT ScriptCompiler { enum CompileOptions { kNoCompileOptions = 0, - kProduceParserCache, - kConsumeParserCache, - kProduceCodeCache, - kProduceFullCodeCache, kConsumeCodeCache, kEagerCompile }; @@ -1827,8 +1816,18 @@ struct SampleInfo { }; struct MemoryRange { - const void* start; - size_t length_in_bytes; + const void* start = nullptr; + size_t length_in_bytes = 0; +}; + +struct JSEntryStub { + MemoryRange code; +}; + +struct UnwindState { + MemoryRange code_range; + MemoryRange embedded_code_range; + JSEntryStub js_entry_stub; }; /** @@ -1840,12 +1839,10 @@ class V8_EXPORT JSON { * Tries to parse the string |json_string| and returns it as value if * successful. * + * \param the context in which to parse and create the value. * \param json_string The string to parse. * \return The corresponding value if successfully parsed. */ - static V8_DEPRECATED("Use the maybe version taking context", - MaybeLocal Parse(Isolate* isolate, - Local json_string)); static V8_WARN_UNUSED_RESULT MaybeLocal Parse( Local context, Local json_string); @@ -1903,7 +1900,7 @@ class V8_EXPORT ValueSerializer { Isolate* isolate, Local shared_array_buffer); virtual Maybe GetWasmModuleTransferId( - Isolate* isolate, Local module); + Isolate* isolate, Local module); /** * Allocates memory for the buffer of at least the size provided. The actual * size (which may be greater or equal) is written to |actual_size|. If no @@ -1941,12 +1938,6 @@ class V8_EXPORT ValueSerializer { V8_WARN_UNUSED_RESULT Maybe WriteValue(Local context, Local value); - /** - * Returns the stored data. This serializer should not be used once the buffer - * is released. The contents are undefined if a previous write has failed. - */ - V8_DEPRECATED("Use Release()", std::vector ReleaseBuffer()); - /** * Returns the stored data (allocated using the delegate's * ReallocateBufferMemory) and its size. This serializer should not be used @@ -1963,13 +1954,6 @@ class V8_EXPORT ValueSerializer { void TransferArrayBuffer(uint32_t transfer_id, Local array_buffer); - /** - * Similar to TransferArrayBuffer, but for SharedArrayBuffer. - */ - V8_DEPRECATED("Use Delegate::GetSharedArrayBufferId", - void TransferSharedArrayBuffer( - uint32_t transfer_id, - Local shared_array_buffer)); /** * Indicate whether to treat ArrayBufferView objects as host objects, @@ -2020,10 +2004,10 @@ class V8_EXPORT ValueDeserializer { virtual MaybeLocal ReadHostObject(Isolate* isolate); /** - * Get a WasmCompiledModule given a transfer_id previously provided + * Get a WasmModuleObject given a transfer_id previously provided * by ValueSerializer::GetWasmModuleTransferId */ - virtual MaybeLocal GetWasmModuleFromId( + virtual MaybeLocal GetWasmModuleFromId( Isolate* isolate, uint32_t transfer_id); /** @@ -2531,7 +2515,7 @@ enum class NewStringType { */ class V8_EXPORT String : public Name { public: - static constexpr int kMaxLength = internal::kApiPointerSize == 4 + static constexpr int kMaxLength = internal::kApiTaggedSize == 4 ? (1 << 28) - 16 : internal::kSmiMaxValue / 2 - 24; @@ -2765,7 +2749,7 @@ class V8_EXPORT String : public Name { }; /** Allocates a new string from UTF-8 data.*/ - static V8_DEPRECATE_SOON( + static V8_DEPRECATED( "Use maybe version", Local NewFromUtf8(Isolate* isolate, const char* data, NewStringType type = kNormalString, @@ -2915,8 +2899,6 @@ class V8_EXPORT String : public Name { ExternalStringResource* GetExternalStringResourceSlow() const; ExternalStringResourceBase* GetExternalStringResourceBaseSlow( String::Encoding* encoding_out) const; - const ExternalOneByteStringResource* GetExternalOneByteStringResourceSlow() - const; static void CheckCast(v8::Value* obj); }; @@ -3237,6 +3219,10 @@ class V8_EXPORT Object : public Value { public: V8_DEPRECATE_SOON("Use maybe version", bool Set(Local key, Local value)); + /** + * Set only return Just(true) or Empty(), so if it should never fail, use + * result.Check(). + */ V8_WARN_UNUSED_RESULT Maybe Set(Local context, Local key, Local value); @@ -3307,7 +3293,6 @@ class V8_EXPORT Object : public Value { V8_WARN_UNUSED_RESULT MaybeLocal GetOwnPropertyDescriptor( Local context, Local key); - V8_DEPRECATE_SOON("Use maybe version", bool Has(Local key)); /** * Object::Has() calls the abstract operation HasProperty(O, P) described * in ECMA-262, 7.3.10. Has() returns @@ -3326,7 +3311,6 @@ class V8_EXPORT Object : public Value { V8_WARN_UNUSED_RESULT Maybe Has(Local context, Local key); - V8_DEPRECATE_SOON("Use maybe version", bool Delete(Local key)); V8_WARN_UNUSED_RESULT Maybe Delete(Local context, Local key); @@ -3397,7 +3381,7 @@ class V8_EXPORT Object : public Value { * array returned by this method contains the same values as would * be enumerated by a for-in statement over this object. */ - V8_DEPRECATE_SOON("Use maybe version", Local GetPropertyNames()); + V8_DEPRECATED("Use maybe version", Local GetPropertyNames()); V8_WARN_UNUSED_RESULT MaybeLocal GetPropertyNames( Local context); V8_WARN_UNUSED_RESULT MaybeLocal GetPropertyNames( @@ -3410,7 +3394,7 @@ class V8_EXPORT Object : public Value { * the returned array doesn't contain the names of properties from * prototype objects. */ - V8_DEPRECATE_SOON("Use maybe version", Local GetOwnPropertyNames()); + V8_DEPRECATED("Use maybe version", Local GetOwnPropertyNames()); V8_WARN_UNUSED_RESULT MaybeLocal GetOwnPropertyNames( Local context); @@ -3509,8 +3493,8 @@ class V8_EXPORT Object : public Value { Local key); V8_WARN_UNUSED_RESULT Maybe HasOwnProperty(Local context, uint32_t index); - V8_DEPRECATE_SOON("Use maybe version", - bool HasRealNamedProperty(Local key)); + V8_DEPRECATED("Use maybe version", + bool HasRealNamedProperty(Local key)); /** * Use HasRealNamedProperty() if you want to check if an object has an own * property without causing side effects, i.e., without calling interceptors. @@ -3526,12 +3510,12 @@ class V8_EXPORT Object : public Value { */ V8_WARN_UNUSED_RESULT Maybe HasRealNamedProperty(Local context, Local key); - V8_DEPRECATE_SOON("Use maybe version", - bool HasRealIndexedProperty(uint32_t index)); + V8_DEPRECATED("Use maybe version", + bool HasRealIndexedProperty(uint32_t index)); V8_WARN_UNUSED_RESULT Maybe HasRealIndexedProperty( Local context, uint32_t index); - V8_DEPRECATE_SOON("Use maybe version", - bool HasRealNamedCallbackProperty(Local key)); + V8_DEPRECATED("Use maybe version", + bool HasRealNamedCallbackProperty(Local key)); V8_WARN_UNUSED_RESULT Maybe HasRealNamedCallbackProperty( Local context, Local key); @@ -3647,6 +3631,18 @@ class V8_EXPORT Object : public Value { static Local New(Isolate* isolate); + /** + * Creates a JavaScript object with the given properties, and + * a the given prototype_or_null (which can be any JavaScript + * value, and if it's null, the newly created object won't have + * a prototype at all). This is similar to Object.create(). + * All properties will be created as enumerable, configurable + * and writable properties. + */ + static Local New(Isolate* isolate, Local prototype_or_null, + Local* names, Local* values, + size_t length); + V8_INLINE static Object* Cast(Value* obj); private: @@ -3760,8 +3756,8 @@ class ReturnValue { } // Local setters template - V8_INLINE V8_DEPRECATE_SOON("Use Global<> instead", - void Set(const Persistent& handle)); + V8_INLINE V8_DEPRECATED("Use Global<> instead", + void Set(const Persistent& handle)); template V8_INLINE void Set(const Global& handle); template @@ -3793,10 +3789,10 @@ class ReturnValue { template friend class PropertyCallbackInfo; template friend class PersistentValueMapBase; - V8_INLINE void SetInternal(internal::Object* value) { *value_ = value; } - V8_INLINE internal::Object* GetDefaultValue(); - V8_INLINE explicit ReturnValue(internal::Object** slot); - internal::Object** value_; + V8_INLINE void SetInternal(internal::Address value) { *value_ = value; } + V8_INLINE internal::Address GetDefaultValue(); + V8_INLINE explicit ReturnValue(internal::Address* slot); + internal::Address* value_; }; @@ -3850,10 +3846,10 @@ class FunctionCallbackInfo { static const int kDataIndex = 4; static const int kNewTargetIndex = 5; - V8_INLINE FunctionCallbackInfo(internal::Object** implicit_args, - internal::Object** values, int length); - internal::Object** implicit_args_; - internal::Object** values_; + V8_INLINE FunctionCallbackInfo(internal::Address* implicit_args, + internal::Address* values, int length); + internal::Address* implicit_args_; + internal::Address* values_; int length_; }; @@ -3965,8 +3961,8 @@ class PropertyCallbackInfo { static const int kDataIndex = 5; static const int kThisIndex = 6; - V8_INLINE PropertyCallbackInfo(internal::Object** args) : args_(args) {} - internal::Object** args_; + V8_INLINE PropertyCallbackInfo(internal::Address* args) : args_(args) {} + internal::Address* args_; }; @@ -3988,10 +3984,11 @@ class V8_EXPORT Function : public Object { Local data = Local(), int length = 0, ConstructorBehavior behavior = ConstructorBehavior::kAllow, SideEffectType side_effect_type = SideEffectType::kHasSideEffect); - static V8_DEPRECATE_SOON( - "Use maybe version", - Local New(Isolate* isolate, FunctionCallback callback, - Local data = Local(), int length = 0)); + static V8_DEPRECATED("Use maybe version", + Local New(Isolate* isolate, + FunctionCallback callback, + Local data = Local(), + int length = 0)); V8_WARN_UNUSED_RESULT MaybeLocal NewInstance( Local context, int argc, Local argv[]) const; @@ -4010,9 +4007,9 @@ class V8_EXPORT Function : public Object { Local context, int argc, Local argv[], SideEffectType side_effect_type = SideEffectType::kHasSideEffect) const; - V8_DEPRECATE_SOON("Use maybe version", - Local Call(Local recv, int argc, - Local argv[])); + V8_DEPRECATED("Use maybe version", + Local Call(Local recv, int argc, + Local argv[])); V8_WARN_UNUSED_RESULT MaybeLocal Call(Local context, Local recv, int argc, Local argv[]); @@ -4129,6 +4126,10 @@ class V8_EXPORT Promise : public Object { V8_WARN_UNUSED_RESULT MaybeLocal Then(Local context, Local handler); + V8_WARN_UNUSED_RESULT MaybeLocal Then(Local context, + Local on_fulfilled, + Local on_rejected); + /** * Returns true if the promise has at least one derived promise, and * therefore resolve/reject handlers (including default handler). @@ -4146,6 +4147,11 @@ class V8_EXPORT Promise : public Object { */ PromiseState State(); + /** + * Marks this promise as handled to avoid reporting unhandled rejections. + */ + void MarkAsHandled(); + V8_INLINE static Promise* Cast(Value* obj); static const int kEmbedderFieldCount = V8_PROMISE_INTERNAL_FIELD_COUNT; @@ -4188,8 +4194,16 @@ class V8_EXPORT PropertyDescriptor { // GenericDescriptor PropertyDescriptor(); + // DataDescriptor (implicit / DEPRECATED) + // Templatized such that the explicit constructor is chosen first. + // TODO(clemensh): Remove after 7.3 branch. + template + V8_DEPRECATED( + "Use explicit constructor", + PropertyDescriptor(Local value)); // NOLINT(runtime/explicit) + // DataDescriptor - PropertyDescriptor(Local value); + explicit PropertyDescriptor(Local value); // DataDescriptor with writable property PropertyDescriptor(Local value, bool writable); @@ -4228,6 +4242,11 @@ class V8_EXPORT PropertyDescriptor { PrivateData* private_; }; +// TODO(clemensh): Remove after 7.3 branch. +template +PropertyDescriptor::PropertyDescriptor(Local value) + : PropertyDescriptor(value) {} + /** * An instance of the built-in Proxy constructor (ECMA-262, 6th Edition, * 26.2.1). @@ -4253,25 +4272,97 @@ class V8_EXPORT Proxy : public Object { static void CheckCast(Value* obj); }; -// TODO(mtrofin): rename WasmCompiledModule to WasmModuleObject, for -// consistency with internal APIs. -class V8_EXPORT WasmCompiledModule : public Object { +/** + * Points to an unowned continous buffer holding a known number of elements. + * + * This is similar to std::span (under consideration for C++20), but does not + * require advanced C++ support. In the (far) future, this may be replaced with + * or aliased to std::span. + * + * To facilitate future migration, this class exposes a subset of the interface + * implemented by std::span. + */ +template +class V8_EXPORT MemorySpan { + public: + /** The default constructor creates an empty span. */ + constexpr MemorySpan() = default; + + constexpr MemorySpan(T* data, size_t size) : data_(data), size_(size) {} + + /** Returns a pointer to the beginning of the buffer. */ + constexpr T* data() const { return data_; } + /** Returns the number of elements that the buffer holds. */ + constexpr size_t size() const { return size_; } + + private: + T* data_ = nullptr; + size_t size_ = 0; +}; + +/** + * An owned byte buffer with associated size. + */ +struct OwnedBuffer { + std::unique_ptr buffer; + size_t size = 0; + OwnedBuffer(std::unique_ptr buffer, size_t size) + : buffer(std::move(buffer)), size(size) {} + OwnedBuffer() = default; +}; + +// Wrapper around a compiled WebAssembly module, which is potentially shared by +// different WasmModuleObjects. +class V8_EXPORT CompiledWasmModule { + public: + /** + * Serialize the compiled module. The serialized data does not include the + * wire bytes. + */ + OwnedBuffer Serialize(); + + /** + * Get the (wasm-encoded) wire bytes that were used to compile this module. + */ + MemorySpan GetWireBytesRef(); + + private: + explicit CompiledWasmModule(std::shared_ptr); + friend class Utils; + + const std::shared_ptr native_module_; +}; + +// An instance of WebAssembly.Module. +class V8_EXPORT WasmModuleObject : public Object { public: - typedef std::pair, size_t> SerializedModule; + // TODO(clemensh): Remove after 7.3 branch. + V8_DEPRECATED("Use OwnedBuffer", typedef) + std::pair, size_t> SerializedModule; /** * A unowned reference to a byte buffer. + * TODO(clemensh): Remove after 7.3 branch. */ - struct BufferReference { + V8_DEPRECATED("Use MemorySpan", struct) BufferReference { const uint8_t* start; size_t size; BufferReference(const uint8_t* start, size_t size) : start(start), size(size) {} + + // Implicit conversion to and from MemorySpan. + BufferReference(MemorySpan span) // NOLINT(runtime/explicit) + : start(span.data()), size(span.size()) {} + operator MemorySpan() const { + return MemorySpan{start, size}; + } }; /** * An opaque, native heap object for transferring wasm modules. It * supports move semantics, and does not support copy semantics. + * TODO(wasm): Merge this with CompiledWasmModule once code sharing is always + * enabled. */ class TransferrableModule final { public: @@ -4283,8 +4374,7 @@ class V8_EXPORT WasmCompiledModule : public Object { private: typedef std::shared_ptr SharedModule; - typedef std::pair, size_t> OwnedBuffer; - friend class WasmCompiledModule; + friend class WasmModuleObject; explicit TransferrableModule(SharedModule shared_module) : shared_module_(std::move(shared_module)) {} TransferrableModule(OwnedBuffer serialized, OwnedBuffer bytes) @@ -4303,64 +4393,87 @@ class V8_EXPORT WasmCompiledModule : public Object { TransferrableModule GetTransferrableModule(); /** - * Efficiently re-create a WasmCompiledModule, without recompiling, from + * Efficiently re-create a WasmModuleObject, without recompiling, from * a TransferrableModule. */ - static MaybeLocal FromTransferrableModule( + static MaybeLocal FromTransferrableModule( Isolate* isolate, const TransferrableModule&); /** * Get the wasm-encoded bytes that were used to compile this module. */ - BufferReference GetWasmWireBytesRef(); + V8_DEPRECATED("Use CompiledWasmModule::GetWireBytesRef()", + BufferReference GetWasmWireBytesRef()); + + /** + * Get the compiled module for this module object. The compiled module can be + * shared by several module objects. + */ + CompiledWasmModule GetCompiledModule(); /** * Serialize the compiled module. The serialized data does not include the * uncompiled bytes. */ - SerializedModule Serialize(); + V8_DEPRECATED("Use CompiledWasmModule::Serialize()", + SerializedModule Serialize()); /** * If possible, deserialize the module, otherwise compile it from the provided * uncompiled bytes. */ - static MaybeLocal DeserializeOrCompile( - Isolate* isolate, BufferReference serialized_module, - BufferReference wire_bytes); - V8_INLINE static WasmCompiledModule* Cast(Value* obj); + static MaybeLocal DeserializeOrCompile( + Isolate* isolate, MemorySpan serialized_module, + MemorySpan wire_bytes); + V8_INLINE static WasmModuleObject* Cast(Value* obj); private: - static MaybeLocal Deserialize( - Isolate* isolate, BufferReference serialized_module, - BufferReference wire_bytes); - static MaybeLocal Compile(Isolate* isolate, - const uint8_t* start, - size_t length); - static BufferReference AsReference( - const TransferrableModule::OwnedBuffer& buff) { - return {buff.first.get(), buff.second}; + static MaybeLocal Deserialize( + Isolate* isolate, MemorySpan serialized_module, + MemorySpan wire_bytes); + static MaybeLocal Compile(Isolate* isolate, + const uint8_t* start, + size_t length); + static MemorySpan AsReference(const OwnedBuffer& buff) { + return {buff.buffer.get(), buff.size}; } - WasmCompiledModule(); + WasmModuleObject(); static void CheckCast(Value* obj); }; +V8_DEPRECATED("Use WasmModuleObject", + typedef WasmModuleObject WasmCompiledModule); + /** * The V8 interface for WebAssembly streaming compilation. When streaming * compilation is initiated, V8 passes a {WasmStreaming} object to the embedder - * such that the embedder can pass the input butes for streaming compilation to + * such that the embedder can pass the input bytes for streaming compilation to * V8. */ class V8_EXPORT WasmStreaming final { public: class WasmStreamingImpl; - WasmStreaming(std::unique_ptr impl); + /** + * Client to receive streaming event notifications. + */ + class Client { + public: + virtual ~Client() = default; + /** + * Passes the fully compiled module to the client. This can be used to + * implement code caching. + */ + virtual void OnModuleCompiled(CompiledWasmModule compiled_module) = 0; + }; + + explicit WasmStreaming(std::unique_ptr impl); ~WasmStreaming(); /** - * Pass a new chunck of bytes to WebAssembly streaming compilation. + * Pass a new chunk of bytes to WebAssembly streaming compilation. * The buffer passed into {OnBytesReceived} is owned by the caller. */ void OnBytesReceived(const uint8_t* bytes, size_t size); @@ -4379,6 +4492,21 @@ class V8_EXPORT WasmStreaming final { */ void Abort(MaybeLocal exception); + /** + * Passes previously compiled module bytes. This must be called before + * {OnBytesReceived}, {Finish}, or {Abort}. Returns true if the module bytes + * can be used, false otherwise. The buffer passed via {bytes} and {size} + * is owned by the caller. If {SetCompiledModuleBytes} returns true, the + * buffer must remain valid until either {Finish} or {Abort} completes. + */ + bool SetCompiledModuleBytes(const uint8_t* bytes, size_t size); + + /** + * Sets the client object that will receive streaming event notifications. + * This must be called before {OnBytesReceived}, {Finish}, or {Abort}. + */ + void SetClient(std::shared_ptr client); + /** * Unpacks a {WasmStreaming} object wrapped in a {Managed} for the embedder. * Since the embedder is on the other side of the API, it cannot unpack the @@ -4588,17 +4716,26 @@ class V8_EXPORT ArrayBuffer : public Object { bool IsExternal() const; /** - * Returns true if this ArrayBuffer may be neutered. + * Returns true if this ArrayBuffer may be detached. */ - bool IsNeuterable() const; + bool IsDetachable() const; + + // TODO(913887): fix the use of 'neuter' in the API. + V8_DEPRECATE_SOON("Use IsDetachable() instead.", + inline bool IsNeuterable() const) { + return IsDetachable(); + } /** - * Neuters this ArrayBuffer and all its views (typed arrays). - * Neutering sets the byte length of the buffer and all typed arrays to zero, + * Detaches this ArrayBuffer and all its views (typed arrays). + * Detaching sets the byte length of the buffer and all typed arrays to zero, * preventing JavaScript from ever accessing underlying backing store. - * ArrayBuffer should have been externalized and must be neuterable. + * ArrayBuffer should have been externalized and must be detachable. */ - void Neuter(); + void Detach(); + + // TODO(913887): fix the use of 'neuter' in the API. + V8_DEPRECATE_SOON("Use Detach() instead.", inline void Neuter()) { Detach(); } /** * Make this ArrayBuffer external. The pointer to underlying memory block @@ -5045,8 +5182,6 @@ class V8_EXPORT SharedArrayBuffer : public Object { */ class V8_EXPORT Date : public Object { public: - static V8_DEPRECATED("Use maybe version.", - Local New(Isolate* isolate, double time)); static V8_WARN_UNUSED_RESULT MaybeLocal New(Local context, double time); @@ -5695,7 +5830,7 @@ class V8_EXPORT FunctionTemplate : public Template { SideEffectType side_effect_type = SideEffectType::kHasSideEffect); /** Returns the unique function instance in the current execution context.*/ - V8_DEPRECATE_SOON("Use maybe version", Local GetFunction()); + V8_DEPRECATED("Use maybe version", Local GetFunction()); V8_WARN_UNUSED_RESULT MaybeLocal GetFunction( Local context); @@ -5992,7 +6127,7 @@ class V8_EXPORT ObjectTemplate : public Template { size_t index); /** Creates a new instance of this template.*/ - V8_DEPRECATE_SOON("Use maybe version", Local NewInstance()); + V8_DEPRECATED("Use maybe version", Local NewInstance()); V8_WARN_UNUSED_RESULT MaybeLocal NewInstance(Local context); /** @@ -6212,7 +6347,7 @@ class V8_EXPORT AccessorSignature : public Data { // --- Extensions --- -V8_DEPRECATE_SOON("Implementation detail", class) +V8_DEPRECATED("Implementation detail", class) V8_EXPORT ExternalOneByteStringResourceImpl : public String::ExternalOneByteStringResource { public: @@ -6306,18 +6441,6 @@ class V8_EXPORT ResourceConstraints { void ConfigureDefaults(uint64_t physical_memory, uint64_t virtual_memory_limit); - // Returns the max semi-space size in MB. - V8_DEPRECATED("Use max_semi_space_size_in_kb()", - size_t max_semi_space_size()) { - return max_semi_space_size_in_kb_ / 1024; - } - - // Sets the max semi-space size in MB. - V8_DEPRECATED("Use set_max_semi_space_size_in_kb(size_t limit_in_kb)", - void set_max_semi_space_size(size_t limit_in_mb)) { - max_semi_space_size_in_kb_ = limit_in_mb * 1024; - } - // Returns the max semi-space size in KB. size_t max_semi_space_size_in_kb() const { return max_semi_space_size_in_kb_; @@ -6332,14 +6455,6 @@ class V8_EXPORT ResourceConstraints { void set_max_old_space_size(size_t limit_in_mb) { max_old_space_size_ = limit_in_mb; } - V8_DEPRECATED("max_executable_size_ is subsumed by max_old_space_size_", - size_t max_executable_size() const) { - return max_executable_size_; - } - V8_DEPRECATED("max_executable_size_ is subsumed by max_old_space_size_", - void set_max_executable_size(size_t limit_in_mb)) { - max_executable_size_ = limit_in_mb; - } uint32_t* stack_limit() const { return stack_limit_; } // Sets an address beyond which the VM's stack may not grow. void set_stack_limit(uint32_t* value) { stack_limit_ = value; } @@ -6356,7 +6471,6 @@ class V8_EXPORT ResourceConstraints { // The remaining limits are in MB size_t max_old_space_size_; - size_t max_executable_size_; uint32_t* stack_limit_; size_t code_range_size_; size_t max_zone_pool_size_; @@ -6463,10 +6577,12 @@ typedef void (*HostInitializeImportMetaObjectCallback)(Local context, * PrepareStackTraceCallback is called when the stack property of an error is * first accessed. The return value will be used as the stack value. If this * callback is registed, the |Error.prepareStackTrace| API will be disabled. + * |sites| is an array of call sites, specified in + * https://github.com/v8/v8/wiki/Stack-Trace-API */ typedef MaybeLocal (*PrepareStackTraceCallback)(Local context, Local error, - Local trace); + Local sites); /** * PromiseHook with type kInit is called when a new promise is @@ -6761,21 +6877,6 @@ class V8_EXPORT HeapCodeStatistics { class RetainedObjectInfo; - -/** - * FunctionEntryHook is the type of the profile entry hook called at entry to - * any generated function when function-level profiling is enabled. - * - * \param function the address of the function that's being entered. - * \param return_addr_location points to a location on stack where the machine - * return address resides. This can be used to identify the caller of - * \p function, and/or modified to divert execution when \p function exits. - * - * \note the entry hook must not cause garbage collection. - */ -typedef void (*FunctionEntryHook)(uintptr_t function, - uintptr_t return_addr_location); - /** * A JIT code event is issued each time code is added, moved or removed. * @@ -6937,15 +7038,6 @@ class V8_EXPORT EmbedderHeapTracer { kEmpty, }; - enum ForceCompletionAction { FORCE_COMPLETION, DO_NOT_FORCE_COMPLETION }; - - struct AdvanceTracingActions { - explicit AdvanceTracingActions(ForceCompletionAction force_completion_) - : force_completion(force_completion_) {} - - ForceCompletionAction force_completion; - }; - virtual ~EmbedderHeapTracer() = default; /** @@ -6962,25 +7054,6 @@ class V8_EXPORT EmbedderHeapTracer { */ virtual void TracePrologue() = 0; - /** - * Called to make a tracing step in the embedder. - * - * The embedder is expected to trace its heap starting from wrappers reported - * by RegisterV8References method, and report back all reachable wrappers. - * Furthermore, the embedder is expected to stop tracing by the given - * deadline. - * - * Returns true if there is still work to do. - * - * Note: Only one of the AdvanceTracing methods needs to be overriden by the - * embedder. - */ - V8_DEPRECATED("Use void AdvanceTracing(deadline_in_ms)", - virtual bool AdvanceTracing(double deadline_in_ms, - AdvanceTracingActions actions)) { - return false; - } - /** * Called to advance tracing in the embedder. * @@ -6990,17 +7063,14 @@ class V8_EXPORT EmbedderHeapTracer { * deadline. A deadline of infinity means that tracing should be finished. * * Returns |true| if tracing is done, and false otherwise. - * - * Note: Only one of the AdvanceTracing methods needs to be overriden by the - * embedder. */ - virtual bool AdvanceTracing(double deadline_in_ms); + virtual bool AdvanceTracing(double deadline_in_ms) = 0; /* * Returns true if there no more tracing work to be done (see AdvanceTracing) * and false otherwise. */ - virtual bool IsTracingDone(); + virtual bool IsTracingDone() = 0; /** * Called at the end of a GC cycle. @@ -7012,13 +7082,8 @@ class V8_EXPORT EmbedderHeapTracer { /** * Called upon entering the final marking pause. No more incremental marking * steps will follow this call. - * - * Note: Only one of the EnterFinalPause methods needs to be overriden by the - * embedder. */ - V8_DEPRECATED("Use void EnterFinalPause(EmbedderStackState)", - virtual void EnterFinalPause()) {} - virtual void EnterFinalPause(EmbedderStackState stack_state); + virtual void EnterFinalPause(EmbedderStackState stack_state) = 0; /** * Called when tracing is aborted. @@ -7026,8 +7091,8 @@ class V8_EXPORT EmbedderHeapTracer { * The embedder is expected to throw away all intermediate data and reset to * the initial state. */ - V8_DEPRECATE_SOON("Obsolete as V8 will not abort tracing anymore.", - virtual void AbortTracing()) {} + V8_DEPRECATED("Obsolete as V8 will not abort tracing anymore.", + virtual void AbortTracing()) {} /* * Called by the embedder to request immediate finalization of the currently @@ -7053,13 +7118,6 @@ class V8_EXPORT EmbedderHeapTracer { */ v8::Isolate* isolate() const { return isolate_; } - /** - * Returns the number of wrappers that are still to be traced by the embedder. - */ - V8_DEPRECATED("Use IsTracingDone", virtual size_t NumberOfWrappersToTrace()) { - return 0; - } - protected: v8::Isolate* isolate_ = nullptr; @@ -7069,6 +7127,10 @@ class V8_EXPORT EmbedderHeapTracer { /** * Callback and supporting data used in SnapshotCreator to implement embedder * logic to serialize internal fields. + * Internal fields that directly reference V8 objects are serialized without + * calling this callback. Internal fields that contain aligned pointers are + * serialized by this callback if it returns non-zero result. Otherwise it is + * serialized verbatim. */ struct SerializeInternalFieldsCallback { typedef StartupData (*CallbackFunction)(Local holder, int index, @@ -7114,8 +7176,7 @@ class V8_EXPORT Isolate { */ struct CreateParams { CreateParams() - : entry_hook(nullptr), - code_event_handler(nullptr), + : code_event_handler(nullptr), snapshot_blob(nullptr), counter_lookup_callback(nullptr), create_histogram_callback(nullptr), @@ -7125,16 +7186,6 @@ class V8_EXPORT Isolate { allow_atomics_wait(true), only_terminate_in_safe_scope(false) {} - /** - * 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. - * An entry_hook can only be provided in no-snapshot builds; in snapshot - * builds it must be nullptr. - */ - FunctionEntryHook entry_hook; - /** * Allows the host application to provide the address of a function that is * notified each time code is added, moved or removed. @@ -7220,7 +7271,7 @@ class V8_EXPORT Isolate { */ class V8_EXPORT DisallowJavascriptExecutionScope { public: - enum OnFailure { CRASH_ON_FAILURE, THROW_ON_FAILURE }; + enum OnFailure { CRASH_ON_FAILURE, THROW_ON_FAILURE, DUMP_ON_FAILURE }; DisallowJavascriptExecutionScope(Isolate* isolate, OnFailure on_failure); ~DisallowJavascriptExecutionScope(); @@ -7232,7 +7283,7 @@ class V8_EXPORT Isolate { const DisallowJavascriptExecutionScope&) = delete; private: - bool on_failure_; + OnFailure on_failure_; void* internal_; }; @@ -7254,6 +7305,7 @@ class V8_EXPORT Isolate { private: void* internal_throws_; void* internal_assert_; + void* internal_dump_; }; /** @@ -7377,6 +7429,12 @@ class V8_EXPORT Isolate { kDateToLocaleString = 66, kDateToLocaleDateString = 67, kDateToLocaleTimeString = 68, + kAttemptOverrideReadOnlyOnPrototypeSloppy = 69, + kAttemptOverrideReadOnlyOnPrototypeStrict = 70, + kOptimizedFunctionWithOneShotBytecode = 71, + kRegExpMatchIsTrueishOnNonJSRegExp = 72, + kRegExpMatchIsFalseishOnJSRegExp = 73, + kDateGetTimezoneOffset = 74, // If you add new values here, you'll also need to update Chromium's: // web_feature.mojom, UseCounterCallback.cpp, and enums.xml. V8 changes to @@ -7652,7 +7710,8 @@ class V8_EXPORT Isolate { Local GetCurrentContext(); /** Returns the last context entered through V8's C++ API. */ - Local GetEnteredContext(); + V8_DEPRECATED("Use GetEnteredOrMicrotaskContext().", + Local GetEnteredContext()); /** * Returns either the last context entered through V8's C++ API, or the @@ -7778,7 +7837,7 @@ class V8_EXPORT Isolate { */ typedef void (*AtomicsWaitCallback)(AtomicsWaitEvent event, Local array_buffer, - size_t offset_in_bytes, int32_t value, + size_t offset_in_bytes, int64_t value, double timeout_in_ms, AtomicsWaitWakeHandle* stop_handle, void* data); @@ -8127,13 +8186,9 @@ class V8_EXPORT Isolate { void GetCodeRange(void** start, size_t* length_in_bytes); /** - * Returns a memory range containing the code for V8's embedded functions - * (e.g. builtins) which are shared across isolates. - * - * If embedded builtins are disabled, then the memory range will be a null - * pointer with 0 length. + * Returns the UnwindState necessary for use with the Unwinder API. */ - MemoryRange GetEmbeddedCodeRange(); + UnwindState GetUnwindState(); /** Set the callback to invoke in case of fatal errors. */ void SetFatalErrorHandler(FatalErrorCallback that); @@ -8158,6 +8213,14 @@ class V8_EXPORT Isolate { void RemoveNearHeapLimitCallback(NearHeapLimitCallback callback, size_t heap_limit); + /** + * If the heap limit was changed by the NearHeapLimitCallback, then the + * initial heap limit will be restored once the heap size falls below the + * given threshold percentage of the initial heap limit. + * The threshold percentage is a number in (0.0, 1.0) range. + */ + void AutomaticallyRestoreInitialHeapLimit(double threshold_percent = 0.5); + /** * Set the callback to invoke to check if code generation from * strings should be allowed. @@ -8179,7 +8242,9 @@ class V8_EXPORT Isolate { void SetWasmModuleCallback(ExtensionCallback callback); void SetWasmInstanceCallback(ExtensionCallback callback); - void SetWasmCompileStreamingCallback(ApiImplementationCallback callback); + V8_DEPRECATED( + "The callback set in SetWasmStreamingCallback is used now", + void SetWasmCompileStreamingCallback(ApiImplementationCallback callback)); void SetWasmStreamingCallback(WasmStreamingCallback callback); @@ -8254,7 +8319,9 @@ class V8_EXPORT Isolate { * garbage collection but is free to visit an arbitrary superset of these * objects. */ - void VisitHandlesForPartialDependence(PersistentHandleVisitor* visitor); + V8_DEPRECATE_SOON( + "Use VisitHandlesWithClassIds", + void VisitHandlesForPartialDependence(PersistentHandleVisitor* visitor)); /** * Iterates through all the persistent handles in the current isolate's heap @@ -8291,7 +8358,7 @@ class V8_EXPORT Isolate { template friend class PersistentValueMapBase; - internal::Object** GetDataFromSnapshotOnce(size_t index); + internal::Address* GetDataFromSnapshotOnce(size_t index); void ReportExternalAllocationLimitReached(); void CheckMemoryPressure(); }; @@ -8473,15 +8540,17 @@ class V8_EXPORT V8 { * \param context The third argument passed to the Linux signal handler, which * points to a ucontext_t structure. */ - static bool TryHandleSignal(int signal_number, void* info, void* context); + V8_DEPRECATE_SOON("Use TryHandleWebAssemblyTrapPosix", + static bool TryHandleSignal(int signal_number, void* info, + void* context)); #endif // V8_OS_POSIX /** * Enable the default signal handler rather than using one provided by the * embedder. */ - V8_DEPRECATE_SOON("Use EnableWebAssemblyTrapHandler", - static bool RegisterDefaultSignalHandler()); + V8_DEPRECATED("Use EnableWebAssemblyTrapHandler", + static bool RegisterDefaultSignalHandler()); /** * Activate trap-based bounds checking for WebAssembly. @@ -8494,26 +8563,20 @@ class V8_EXPORT V8 { private: V8(); - static internal::Object** GlobalizeReference(internal::Isolate* isolate, - internal::Object** handle); - static internal::Object** CopyPersistent(internal::Object** handle); - static void DisposeGlobal(internal::Object** global_handle); - static void MakeWeak(internal::Object** location, void* data, + static internal::Address* GlobalizeReference(internal::Isolate* isolate, + internal::Address* handle); + static internal::Address* CopyPersistent(internal::Address* handle); + static void DisposeGlobal(internal::Address* global_handle); + static void MakeWeak(internal::Address* location, void* data, WeakCallbackInfo::Callback weak_callback, WeakCallbackType type); - 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 MakeWeak(internal::Object*** location_addr); - static void* ClearWeak(internal::Object** location); - static void AnnotateStrongRetainer(internal::Object** location, + static void MakeWeak(internal::Address** location_addr); + static void* ClearWeak(internal::Address* location); + static void AnnotateStrongRetainer(internal::Address* location, const char* label); static Value* Eternalize(Isolate* isolate, Value* handle); - static void RegisterExternallyReferencedObject(internal::Object** object, + static void RegisterExternallyReferencedObject(internal::Address* location, internal::Isolate* isolate); template @@ -8634,8 +8697,8 @@ class V8_EXPORT SnapshotCreator { void operator=(const SnapshotCreator&) = delete; private: - size_t AddData(Local context, internal::Object* object); - size_t AddData(internal::Object* object); + size_t AddData(Local context, internal::Address object); + size_t AddData(internal::Address object); void* data_; }; @@ -8661,6 +8724,14 @@ class Maybe { */ V8_INLINE T ToChecked() const { return FromJust(); } + /** + * Short-hand for ToChecked(), which doesn't return a value. To be used, where + * the actual value of the Maybe is not needed like Object::Set. + */ + V8_INLINE void Check() const { + if (V8_UNLIKELY(!IsJust())) V8::FromJustIsNothing(); + } + /** * Converts this Maybe<> to a value of type T. If this Maybe<> is * nothing (empty), |false| is returned and |out| is left untouched. @@ -9156,7 +9227,7 @@ class V8_EXPORT Context { * stack. * https://html.spec.whatwg.org/multipage/webappapis.html#backup-incumbent-settings-object-stack */ - class V8_EXPORT BackupIncumbentScope { + class V8_EXPORT BackupIncumbentScope final { public: /** * |backup_incumbent_context| is pushed onto the backup incumbent settings @@ -9165,10 +9236,20 @@ class V8_EXPORT Context { explicit BackupIncumbentScope(Local backup_incumbent_context); ~BackupIncumbentScope(); + /** + * Returns address that is comparable with JS stack address. Note that JS + * stack may be allocated separately from the native stack. See also + * |TryCatch::JSStackComparableAddress| for details. + */ + uintptr_t JSStackComparableAddress() const { + return js_stack_comparable_address_; + } + private: friend class internal::Isolate; Local backup_incumbent_context_; + uintptr_t js_stack_comparable_address_ = 0; const BackupIncumbentScope* prev_ = nullptr; }; @@ -9178,7 +9259,7 @@ class V8_EXPORT Context { friend class Object; friend class Function; - internal::Object** GetDataFromSnapshotOnce(size_t index); + internal::Address* GetDataFromSnapshotOnce(size_t index); Local SlowGetEmbedderData(int index); void* SlowGetAlignedPointerFromEmbedderData(int index); }; @@ -9307,6 +9388,55 @@ class V8_EXPORT Locker { internal::Isolate* isolate_; }; +/** + * Various helpers for skipping over V8 frames in a given stack. + * + * The unwinder API is only supported on the x64 architecture. + */ +class V8_EXPORT Unwinder { + public: + /** + * Attempt to unwind the stack to the most recent C++ frame. This function is + * signal-safe and does not access any V8 state and thus doesn't require an + * Isolate. + * + * The unwinder needs to know the location of the JS Entry Stub (a piece of + * code that is run when C++ code calls into generated JS code). This is used + * for edge cases where the current frame is being constructed or torn down + * when the stack sample occurs. + * + * The unwinder also needs the virtual memory range of all possible V8 code + * objects. There are two ranges required - the heap code range and the range + * for code embedded in the binary. The V8 API provides all required inputs + * via an UnwindState object through the Isolate::GetUnwindState() API. These + * values will not change after Isolate initialization, so the same + * |unwind_state| can be used for multiple calls. + * + * \param unwind_state Input state for the Isolate that the stack comes from. + * \param register_state The current registers. This is an in-out param that + * will be overwritten with the register values after unwinding, on success. + * \param stack_base The resulting stack pointer and frame pointer values are + * bounds-checked against the stack_base and the original stack pointer value + * to ensure that they are valid locations in the given stack. If these values + * or any intermediate frame pointer values used during unwinding are ever out + * of these bounds, unwinding will fail. + * + * \return True on success. + */ + static bool TryUnwindV8Frames(const UnwindState& unwind_state, + RegisterState* register_state, + const void* stack_base); + + /** + * Whether the PC is within the V8 code range represented by code_range or + * embedded_code_range in |unwind_state|. + * + * If this returns false, then calling UnwindV8Frames() with the same PC + * and unwind_state will always fail. If it returns true, then unwinding may + * (but not necessarily) be successful. + */ + static bool PCIsInV8(const UnwindState& unwind_state, void* pc); +}; // --- Implementation --- @@ -9325,7 +9455,7 @@ template Local Local::New(Isolate* isolate, T* that) { if (that == nullptr) return Local(); T* that_ptr = that; - internal::Object** p = reinterpret_cast(that_ptr); + internal::Address* p = reinterpret_cast(that_ptr); return Local(reinterpret_cast(HandleScope::CreateHandle( reinterpret_cast(isolate), *p))); } @@ -9368,7 +9498,7 @@ void* WeakCallbackInfo::GetInternalField(int index) const { template T* PersistentBase::New(Isolate* isolate, T* that) { if (that == nullptr) return nullptr; - internal::Object** p = reinterpret_cast(that); + internal::Address* p = reinterpret_cast(that); return reinterpret_cast( V8::GlobalizeReference(reinterpret_cast(isolate), p)); @@ -9381,7 +9511,7 @@ void Persistent::Copy(const Persistent& that) { TYPE_CHECK(T, S); this->Reset(); if (that.IsEmpty()) return; - internal::Object** p = reinterpret_cast(that.val_); + internal::Address* p = reinterpret_cast(that.val_); this->val_ = reinterpret_cast(V8::CopyPersistent(p)); M::Copy(that, this); } @@ -9390,7 +9520,7 @@ template bool PersistentBase::IsIndependent() const { typedef internal::Internals I; if (this->IsEmpty()) return false; - return I::GetNodeFlag(reinterpret_cast(this->val_), + return I::GetNodeFlag(reinterpret_cast(this->val_), I::kNodeIsIndependentShift); } @@ -9399,7 +9529,7 @@ bool PersistentBase::IsNearDeath() const { typedef internal::Internals I; if (this->IsEmpty()) return false; uint8_t node_state = - I::GetNodeState(reinterpret_cast(this->val_)); + I::GetNodeState(reinterpret_cast(this->val_)); return node_state == I::kNodeStateIsNearDeathValue || node_state == I::kNodeStateIsPendingValue; } @@ -9409,15 +9539,15 @@ template bool PersistentBase::IsWeak() const { typedef internal::Internals I; if (this->IsEmpty()) return false; - return I::GetNodeState(reinterpret_cast(this->val_)) == - I::kNodeStateIsWeakValue; + return I::GetNodeState(reinterpret_cast(this->val_)) == + I::kNodeStateIsWeakValue; } template void PersistentBase::Reset() { if (this->IsEmpty()) return; - V8::DisposeGlobal(reinterpret_cast(this->val_)); + V8::DisposeGlobal(reinterpret_cast(this->val_)); val_ = nullptr; } @@ -9449,25 +9579,25 @@ V8_INLINE void PersistentBase::SetWeak( P* parameter, typename WeakCallbackInfo

::Callback callback, WeakCallbackType type) { typedef typename WeakCallbackInfo::Callback Callback; - V8::MakeWeak(reinterpret_cast(this->val_), parameter, + V8::MakeWeak(reinterpret_cast(this->val_), parameter, reinterpret_cast(callback), type); } template void PersistentBase::SetWeak() { - V8::MakeWeak(reinterpret_cast(&this->val_)); + V8::MakeWeak(reinterpret_cast(&this->val_)); } template template P* PersistentBase::ClearWeak() { return reinterpret_cast( - V8::ClearWeak(reinterpret_cast(this->val_))); + V8::ClearWeak(reinterpret_cast(this->val_))); } template void PersistentBase::AnnotateStrongRetainer(const char* label) { - V8::AnnotateStrongRetainer(reinterpret_cast(this->val_), + V8::AnnotateStrongRetainer(reinterpret_cast(this->val_), label); } @@ -9475,7 +9605,7 @@ template void PersistentBase::RegisterExternalReference(Isolate* isolate) const { if (IsEmpty()) return; V8::RegisterExternallyReferencedObject( - reinterpret_cast(this->val_), + reinterpret_cast(this->val_), reinterpret_cast(isolate)); } @@ -9483,7 +9613,7 @@ template void PersistentBase::MarkIndependent() { typedef internal::Internals I; if (this->IsEmpty()) return; - I::UpdateNodeFlag(reinterpret_cast(this->val_), true, + I::UpdateNodeFlag(reinterpret_cast(this->val_), true, I::kNodeIsIndependentShift); } @@ -9491,7 +9621,7 @@ template void PersistentBase::MarkActive() { typedef internal::Internals I; if (this->IsEmpty()) return; - I::UpdateNodeFlag(reinterpret_cast(this->val_), true, + I::UpdateNodeFlag(reinterpret_cast(this->val_), true, I::kNodeIsActiveShift); } @@ -9500,7 +9630,7 @@ template void PersistentBase::SetWrapperClassId(uint16_t class_id) { typedef internal::Internals I; if (this->IsEmpty()) return; - internal::Object** obj = reinterpret_cast(this->val_); + internal::Address* obj = reinterpret_cast(this->val_); uint8_t* addr = reinterpret_cast(obj) + I::kNodeClassIdOffset; *reinterpret_cast(addr) = class_id; } @@ -9510,14 +9640,13 @@ template uint16_t PersistentBase::WrapperClassId() const { typedef internal::Internals I; if (this->IsEmpty()) return 0; - internal::Object** obj = reinterpret_cast(this->val_); + internal::Address* obj = reinterpret_cast(this->val_); uint8_t* addr = reinterpret_cast(obj) + I::kNodeClassIdOffset; return *reinterpret_cast(addr); } - -template -ReturnValue::ReturnValue(internal::Object** slot) : value_(slot) {} +template +ReturnValue::ReturnValue(internal::Address* slot) : value_(slot) {} template template @@ -9526,7 +9655,7 @@ void ReturnValue::Set(const Persistent& handle) { if (V8_UNLIKELY(handle.IsEmpty())) { *value_ = GetDefaultValue(); } else { - *value_ = *reinterpret_cast(*handle); + *value_ = *reinterpret_cast(*handle); } } @@ -9537,7 +9666,7 @@ void ReturnValue::Set(const Global& handle) { if (V8_UNLIKELY(handle.IsEmpty())) { *value_ = GetDefaultValue(); } else { - *value_ = *reinterpret_cast(*handle); + *value_ = *reinterpret_cast(*handle); } } @@ -9548,7 +9677,7 @@ void ReturnValue::Set(const Local handle) { if (V8_UNLIKELY(handle.IsEmpty())) { *value_ = GetDefaultValue(); } else { - *value_ = *reinterpret_cast(*handle); + *value_ = *reinterpret_cast(*handle); } } @@ -9636,15 +9765,15 @@ void ReturnValue::Set(S* whatever) { TYPE_CHECK(S*, Primitive); } -template -internal::Object* ReturnValue::GetDefaultValue() { +template +internal::Address ReturnValue::GetDefaultValue() { // Default value is always the pointer below value_ on the stack. return value_[-1]; } template -FunctionCallbackInfo::FunctionCallbackInfo(internal::Object** implicit_args, - internal::Object** values, +FunctionCallbackInfo::FunctionCallbackInfo(internal::Address* implicit_args, + internal::Address* values, int length) : implicit_args_(implicit_args), values_(values), length_(length) {} @@ -9813,20 +9942,22 @@ AccessorSignature* AccessorSignature::Cast(Data* data) { } Local Object::GetInternalField(int index) { -#ifndef V8_ENABLE_CHECKS - typedef internal::Object O; +#if !defined(V8_ENABLE_CHECKS) && !defined(V8_COMPRESS_POINTERS) + typedef internal::Address A; typedef internal::Internals I; - O* obj = *reinterpret_cast(this); + A obj = *reinterpret_cast(this); // Fast path: If the object is a plain JSObject, which is the common case, we // know where to find the internal fields and can return the value directly. auto instance_type = I::GetInstanceType(obj); if (instance_type == I::kJSObjectType || instance_type == I::kJSApiObjectType || instance_type == I::kJSSpecialApiObjectType) { - int offset = I::kJSObjectHeaderSize + (internal::kApiPointerSize * index); - O* value = I::ReadField(obj, offset); - O** result = HandleScope::CreateHandle( - reinterpret_cast(obj), value); + int offset = I::kJSObjectHeaderSizeForEmbedderFields + + (I::kEmbedderDataSlotSize * index); + A value = I::ReadTaggedAnyField(obj, offset); + internal::Isolate* isolate = + internal::IsolateFromNeverReadOnlySpaceObject(obj); + A* result = HandleScope::CreateHandle(isolate, value); return Local(reinterpret_cast(result)); } #endif @@ -9835,18 +9966,19 @@ Local Object::GetInternalField(int index) { void* Object::GetAlignedPointerFromInternalField(int index) { -#ifndef V8_ENABLE_CHECKS - typedef internal::Object O; +#if !defined(V8_ENABLE_CHECKS) && !defined(V8_COMPRESS_POINTERS) + typedef internal::Address A; typedef internal::Internals I; - O* obj = *reinterpret_cast(this); + A obj = *reinterpret_cast(this); // Fast path: If the object is a plain JSObject, which is the common case, we // know where to find the internal fields and can return the value directly. auto instance_type = I::GetInstanceType(obj); if (V8_LIKELY(instance_type == I::kJSObjectType || instance_type == I::kJSApiObjectType || instance_type == I::kJSSpecialApiObjectType)) { - int offset = I::kJSObjectHeaderSize + (internal::kApiPointerSize * index); - return I::ReadField(obj, offset); + int offset = I::kJSObjectHeaderSizeForEmbedderFields + + (I::kEmbedderDataSlotSize * index); + return I::ReadRawField(obj, offset); } #endif return SlowGetAlignedPointerFromInternalField(index); @@ -9861,7 +9993,7 @@ String* String::Cast(v8::Value* value) { Local String::Empty(Isolate* isolate) { - typedef internal::Object* S; + typedef internal::Address S; typedef internal::Internals I; I::CheckInitialized(isolate); S* slot = I::GetRoot(isolate, I::kEmptyStringRootIndex); @@ -9870,13 +10002,13 @@ Local String::Empty(Isolate* isolate) { String::ExternalStringResource* String::GetExternalStringResource() const { - typedef internal::Object O; + typedef internal::Address A; typedef internal::Internals I; - O* obj = *reinterpret_cast(this); + A obj = *reinterpret_cast(this); ExternalStringResource* result; if (I::IsExternalTwoByteString(I::GetInstanceType(obj))) { - void* value = I::ReadField(obj, I::kStringResourceOffset); + void* value = I::ReadRawField(obj, I::kStringResourceOffset); result = reinterpret_cast(value); } else { result = GetExternalStringResourceSlow(); @@ -9890,15 +10022,15 @@ String::ExternalStringResource* String::GetExternalStringResource() const { String::ExternalStringResourceBase* String::GetExternalStringResourceBase( String::Encoding* encoding_out) const { - typedef internal::Object O; + typedef internal::Address A; typedef internal::Internals I; - O* obj = *reinterpret_cast(this); + A obj = *reinterpret_cast(this); int type = I::GetInstanceType(obj) & I::kFullStringRepresentationMask; *encoding_out = static_cast(type & I::kStringEncodingMask); ExternalStringResourceBase* resource; if (type == I::kExternalOneByteRepresentationTag || type == I::kExternalTwoByteRepresentationTag) { - void* value = I::ReadField(obj, I::kStringResourceOffset); + void* value = I::ReadRawField(obj, I::kStringResourceOffset); resource = static_cast(value); } else { resource = GetExternalStringResourceBaseSlow(encoding_out); @@ -9919,9 +10051,9 @@ bool Value::IsUndefined() const { } bool Value::QuickIsUndefined() const { - typedef internal::Object O; + typedef internal::Address A; typedef internal::Internals I; - O* obj = *reinterpret_cast(this); + A obj = *reinterpret_cast(this); if (!I::HasHeapObjectTag(obj)) return false; if (I::GetInstanceType(obj) != I::kOddballType) return false; return (I::GetOddballKind(obj) == I::kUndefinedOddballKind); @@ -9937,9 +10069,9 @@ bool Value::IsNull() const { } bool Value::QuickIsNull() const { - typedef internal::Object O; + typedef internal::Address A; typedef internal::Internals I; - O* obj = *reinterpret_cast(this); + A obj = *reinterpret_cast(this); if (!I::HasHeapObjectTag(obj)) return false; if (I::GetInstanceType(obj) != I::kOddballType) return false; return (I::GetOddballKind(obj) == I::kNullOddballKind); @@ -9954,9 +10086,9 @@ bool Value::IsNullOrUndefined() const { } bool Value::QuickIsNullOrUndefined() const { - typedef internal::Object O; + typedef internal::Address A; typedef internal::Internals I; - O* obj = *reinterpret_cast(this); + A obj = *reinterpret_cast(this); if (!I::HasHeapObjectTag(obj)) return false; if (I::GetInstanceType(obj) != I::kOddballType) return false; int kind = I::GetOddballKind(obj); @@ -9972,9 +10104,9 @@ bool Value::IsString() const { } bool Value::QuickIsString() const { - typedef internal::Object O; + typedef internal::Address A; typedef internal::Internals I; - O* obj = *reinterpret_cast(this); + A obj = *reinterpret_cast(this); if (!I::HasHeapObjectTag(obj)) return false; return (I::GetInstanceType(obj) < I::kFirstNonstringType); } @@ -10156,11 +10288,11 @@ Proxy* Proxy::Cast(v8::Value* value) { return static_cast(value); } -WasmCompiledModule* WasmCompiledModule::Cast(v8::Value* value) { +WasmModuleObject* WasmModuleObject::Cast(v8::Value* value) { #ifdef V8_ENABLE_CHECKS CheckCast(value); #endif - return static_cast(value); + return static_cast(value); } Promise::Resolver* Promise::Resolver::Cast(v8::Value* value) { @@ -10349,7 +10481,7 @@ bool PropertyCallbackInfo::ShouldThrowOnError() const { Local Undefined(Isolate* isolate) { - typedef internal::Object* S; + typedef internal::Address S; typedef internal::Internals I; I::CheckInitialized(isolate); S* slot = I::GetRoot(isolate, I::kUndefinedValueRootIndex); @@ -10358,7 +10490,7 @@ Local Undefined(Isolate* isolate) { Local Null(Isolate* isolate) { - typedef internal::Object* S; + typedef internal::Address S; typedef internal::Internals I; I::CheckInitialized(isolate); S* slot = I::GetRoot(isolate, I::kNullValueRootIndex); @@ -10367,7 +10499,7 @@ Local Null(Isolate* isolate) { Local True(Isolate* isolate) { - typedef internal::Object* S; + typedef internal::Address S; typedef internal::Internals I; I::CheckInitialized(isolate); S* slot = I::GetRoot(isolate, I::kTrueValueRootIndex); @@ -10376,7 +10508,7 @@ Local True(Isolate* isolate) { Local False(Isolate* isolate) { - typedef internal::Object* S; + typedef internal::Address S; typedef internal::Internals I; I::CheckInitialized(isolate); S* slot = I::GetRoot(isolate, I::kFalseValueRootIndex); @@ -10411,7 +10543,7 @@ MaybeLocal Isolate::GetDataFromSnapshotOnce(size_t index) { int64_t Isolate::AdjustAmountOfExternalAllocatedMemory( int64_t change_in_bytes) { typedef internal::Internals I; - const int64_t kMemoryReducerActivationLimit = 32 * 1024 * 1024; + constexpr int64_t kMemoryReducerActivationLimit = 32 * 1024 * 1024; int64_t* external_memory = reinterpret_cast( reinterpret_cast(this) + I::kExternalMemoryOffset); int64_t* external_memory_limit = reinterpret_cast( @@ -10419,15 +10551,14 @@ int64_t Isolate::AdjustAmountOfExternalAllocatedMemory( int64_t* external_memory_at_last_mc = reinterpret_cast(reinterpret_cast(this) + I::kExternalMemoryAtLastMarkCompactOffset); - const int64_t amount = *external_memory + change_in_bytes; + const int64_t amount = *external_memory + change_in_bytes; *external_memory = amount; int64_t allocation_diff_since_last_mc = - *external_memory_at_last_mc - *external_memory; - allocation_diff_since_last_mc = allocation_diff_since_last_mc < 0 - ? -allocation_diff_since_last_mc - : allocation_diff_since_last_mc; + *external_memory - *external_memory_at_last_mc; + // Only check memory pressure and potentially trigger GC if the amount of + // external memory increased. if (allocation_diff_since_last_mc > kMemoryReducerActivationLimit) { CheckMemoryPressure(); } @@ -10443,12 +10574,13 @@ int64_t Isolate::AdjustAmountOfExternalAllocatedMemory( } Local Context::GetEmbedderData(int index) { -#ifndef V8_ENABLE_CHECKS - typedef internal::Object O; +#if !defined(V8_ENABLE_CHECKS) && !defined(V8_COMPRESS_POINTERS) + typedef internal::Address A; typedef internal::Internals I; - auto* context = *reinterpret_cast(this); - O** result = - HandleScope::CreateHandle(context, I::ReadEmbedderData(this, index)); + internal::Isolate* isolate = internal::IsolateFromNeverReadOnlySpaceObject( + *reinterpret_cast(this)); + A* result = + HandleScope::CreateHandle(isolate, I::ReadEmbedderData(this, index)); return Local(reinterpret_cast(result)); #else return SlowGetEmbedderData(index); @@ -10457,7 +10589,7 @@ Local Context::GetEmbedderData(int index) { void* Context::GetAlignedPointerFromEmbedderData(int index) { -#ifndef V8_ENABLE_CHECKS +#if !defined(V8_ENABLE_CHECKS) && !defined(V8_COMPRESS_POINTERS) typedef internal::Internals I; return I::ReadEmbedderData(this, index); #else @@ -10475,14 +10607,14 @@ MaybeLocal Context::GetDataFromSnapshotOnce(size_t index) { template size_t SnapshotCreator::AddData(Local context, Local object) { T* object_ptr = *object; - internal::Object** p = reinterpret_cast(object_ptr); + internal::Address* p = reinterpret_cast(object_ptr); return AddData(context, *p); } template size_t SnapshotCreator::AddData(Local object) { T* object_ptr = *object; - internal::Object** p = reinterpret_cast(object_ptr); + internal::Address* p = reinterpret_cast(object_ptr); return AddData(*p); } diff --git a/deps/v8/include/v8config.h b/deps/v8/include/v8config.h index 93c4629825b255..e30a582e8f2649 100644 --- a/deps/v8/include/v8config.h +++ b/deps/v8/include/v8config.h @@ -161,14 +161,8 @@ // // C++11 feature detection // -// V8_HAS_CXX11_ALIGNAS - alignas specifier supported -// V8_HAS_CXX11_ALIGNOF - alignof(type) operator supported -// // Compiler-specific feature detection // -// V8_HAS___ALIGNOF - __alignof(type) operator supported -// V8_HAS___ALIGNOF__ - __alignof__(type) operator supported -// V8_HAS_ATTRIBUTE_ALIGNED - __attribute__((aligned(n))) supported // V8_HAS_ATTRIBUTE_ALWAYS_INLINE - __attribute__((always_inline)) // supported // V8_HAS_ATTRIBUTE_DEPRECATED - __attribute__((deprecated)) supported @@ -188,7 +182,6 @@ // V8_HAS_BUILTIN_SADD_OVERFLOW - __builtin_sadd_overflow() supported // V8_HAS_BUILTIN_SSUB_OVERFLOW - __builtin_ssub_overflow() supported // V8_HAS_BUILTIN_UADD_OVERFLOW - __builtin_uadd_overflow() supported -// V8_HAS_DECLSPEC_ALIGN - __declspec(align(n)) supported // V8_HAS_DECLSPEC_DEPRECATED - __declspec(deprecated) supported // V8_HAS_DECLSPEC_NOINLINE - __declspec(noinline) supported // V8_HAS_DECLSPEC_SELECTANY - __declspec(selectany) supported @@ -207,11 +200,6 @@ # define V8_CC_GNU 1 #endif -// Clang defines __alignof__ as alias for __alignof -# define V8_HAS___ALIGNOF 1 -# define V8_HAS___ALIGNOF__ V8_HAS___ALIGNOF - -# define V8_HAS_ATTRIBUTE_ALIGNED (__has_attribute(aligned)) # define V8_HAS_ATTRIBUTE_ALWAYS_INLINE (__has_attribute(always_inline)) # define V8_HAS_ATTRIBUTE_DEPRECATED (__has_attribute(deprecated)) # define V8_HAS_ATTRIBUTE_DEPRECATED_MESSAGE \ @@ -234,7 +222,9 @@ # define V8_HAS_BUILTIN_SSUB_OVERFLOW (__has_builtin(__builtin_ssub_overflow)) # define V8_HAS_BUILTIN_UADD_OVERFLOW (__has_builtin(__builtin_uadd_overflow)) -# define V8_HAS_CXX11_ALIGNAS (__has_feature(cxx_alignas)) +# if __cplusplus >= 201402L +# define V8_CAN_HAVE_DCHECK_IN_CONSTEXPR 1 +# endif #elif defined(__GNUC__) @@ -250,9 +240,6 @@ # endif # define V8_CC_MINGW (V8_CC_MINGW32 || V8_CC_MINGW64) -# define V8_HAS___ALIGNOF__ (V8_GNUC_PREREQ(4, 3, 0)) - -# define V8_HAS_ATTRIBUTE_ALIGNED (V8_GNUC_PREREQ(2, 95, 0)) // always_inline is available in gcc 4.0 but not very reliable until 4.4. // Works around "sorry, unimplemented: inlining failed" build errors with // older compilers. @@ -271,17 +258,11 @@ # define V8_HAS_BUILTIN_FRAME_ADDRESS (V8_GNUC_PREREQ(2, 96, 0)) # define V8_HAS_BUILTIN_POPCOUNT (V8_GNUC_PREREQ(3, 4, 0)) -# if __cplusplus >= 201103L -# define V8_HAS_CXX11_ALIGNAS (V8_GNUC_PREREQ(4, 8, 0)) -# define V8_HAS_CXX11_ALIGNOF (V8_GNUC_PREREQ(4, 8, 0)) -# endif #endif #if defined(_MSC_VER) # define V8_CC_MSVC 1 -# define V8_HAS___ALIGNOF 1 -# define V8_HAS_DECLSPEC_ALIGN 1 # define V8_HAS_DECLSPEC_DEPRECATED 1 # define V8_HAS_DECLSPEC_NOINLINE 1 # define V8_HAS_DECLSPEC_SELECTANY 1 @@ -359,58 +340,6 @@ #endif -// This macro allows to specify memory alignment for structs, classes, etc. -// Use like: -// class V8_ALIGNED(16) MyClass { ... }; -// V8_ALIGNED(32) int array[42]; -#if V8_HAS_CXX11_ALIGNAS -# define V8_ALIGNED(n) alignas(n) -#elif V8_HAS_ATTRIBUTE_ALIGNED -# define V8_ALIGNED(n) __attribute__((aligned(n))) -#elif V8_HAS_DECLSPEC_ALIGN -# define V8_ALIGNED(n) __declspec(align(n)) -#else -# define V8_ALIGNED(n) /* NOT SUPPORTED */ -#endif - - -// This macro is similar to V8_ALIGNED(), but takes a type instead of size -// in bytes. If the compiler does not supports using the alignment of the -// |type|, it will align according to the |alignment| instead. For example, -// Visual Studio C++ cannot combine __declspec(align) and __alignof. The -// |alignment| must be a literal that is used as a kind of worst-case fallback -// alignment. -// Use like: -// struct V8_ALIGNAS(AnotherClass, 16) NewClass { ... }; -// V8_ALIGNAS(double, 8) int array[100]; -#if V8_HAS_CXX11_ALIGNAS -# define V8_ALIGNAS(type, alignment) alignas(type) -#elif V8_HAS___ALIGNOF__ && V8_HAS_ATTRIBUTE_ALIGNED -# define V8_ALIGNAS(type, alignment) __attribute__((aligned(__alignof__(type)))) -#else -# define V8_ALIGNAS(type, alignment) V8_ALIGNED(alignment) -#endif - - -// This macro returns alignment in bytes (an integer power of two) required for -// any instance of the given type, which is either complete type, an array type, -// or a reference type. -// Use like: -// size_t alignment = V8_ALIGNOF(double); -#if V8_HAS_CXX11_ALIGNOF -# define V8_ALIGNOF(type) alignof(type) -#elif V8_HAS___ALIGNOF -# define V8_ALIGNOF(type) __alignof(type) -#elif V8_HAS___ALIGNOF__ -# define V8_ALIGNOF(type) __alignof__(type) -#else -// Note that alignment of a type within a struct can be less than the -// alignment of the type stand-alone (because of ancient ABIs), so this -// should only be used as a last resort. -namespace v8 { template class AlignOfHelper { char c; T t; }; } -# define V8_ALIGNOF(type) (sizeof(::v8::AlignOfHelper) - sizeof(type)) -#endif - // Annotate a function indicating the caller must examine the return value. // Use like: // int foo() V8_WARN_UNUSED_RESULT; diff --git a/deps/v8/infra/config/cq.cfg b/deps/v8/infra/config/cq.cfg index 53ea0cdd44182d..e58723719e6769 100644 --- a/deps/v8/infra/config/cq.cfg +++ b/deps/v8/infra/config/cq.cfg @@ -42,10 +42,13 @@ verifiers { name: "v8_linux64_rel_ng_triggered" triggered_by: "v8_linux64_rel_ng" } + # TODO(machenbach): Figure out if bot should be removed or if + # functionality should be revived. builders { name: "v8_linux64_sanitizer_coverage_rel" - experiment_percentage: 100 + experiment_percentage: 10 } + builders { name: "v8_linux64_shared_compile_rel" } builders { name: "v8_linux64_verify_csa_rel_ng" } builders { name: "v8_linux64_verify_csa_rel_ng_triggered" @@ -77,7 +80,6 @@ verifiers { name: "v8_linux_rel_ng_triggered" triggered_by: "v8_linux_rel_ng" } - builders { name: "v8_linux_shared_compile_rel" } builders { name: "v8_linux_verify_csa_rel_ng" } builders { name: "v8_linux_verify_csa_rel_ng_triggered" @@ -89,7 +91,10 @@ verifiers { triggered_by: "v8_mac64_rel_ng" } builders { name: "v8_node_linux64_rel" } - builders { name: "v8_presubmit" } + builders { + name: "v8_presubmit" + disable_reuse: true + } builders { name: "v8_win64_msvc_compile_rel" } builders { name: "v8_win64_rel_ng" } builders { @@ -107,21 +112,44 @@ verifiers { name: "v8_win_rel_ng_triggered" triggered_by: "v8_win_rel_ng" } + builders { + name: "v8_linux_noi18n_rel_ng" + path_regexp: ".*intl.*" + path_regexp: ".*test262.*" + } } - # TODO(machenbach): Remove after testing in practice and migrate to - # PRESUBMIT.py scripts. + buckets { name: "luci.chromium.try" builders { - name: "cast_shell_android" - experiment_percentage: 20 + name: "linux_chromium_rel_ng" + path_regexp: "include/.+\\.h" + path_regexp: "src/api\\.cc" + path_regexp: "src/message-template\\.h" } builders { - name: "cast_shell_linux" + name: "linux_chromium_headless_rel" + path_regexp: "src/inspector/.+" + path_regexp: "test/inspector/.+" + } + builders { + name: "linux-blink-rel" + path_regexp: "src/inspector/.+" + path_regexp: "test/inspector/.+" + } + # TODO(machenbach): Uncomment path_regexp after testing, as currently, + # path_regexp can not be combined with experiment_percentage. See more + # details at crbug.com/v8/8058. + builders { + name: "cast_shell_android" + #path_regexp: "include/.+\\.h" + #path_regexp: "src/api\\.cc" experiment_percentage: 20 } builders { - name: "linux-chromeos-rel" + name: "cast_shell_linux" + #path_regexp: "include/.+\\.h" + #path_regexp: "src/api\\.cc" experiment_percentage: 20 } } diff --git a/deps/v8/infra/mb/mb_config.pyl b/deps/v8/infra/mb/mb_config.pyl index 124524c552f3c3..8a6cba71e06234 100644 --- a/deps/v8/infra/mb/mb_config.pyl +++ b/deps/v8/infra/mb/mb_config.pyl @@ -62,6 +62,7 @@ 'V8 Linux64 - custom snapshot - debug builder': 'debug_x64_custom', 'V8 Linux64 - internal snapshot': 'release_x64_internal', 'V8 Linux64 - debug - header includes': 'debug_x64_header_includes', + 'V8 Linux64 - shared': 'release_x64_shared_verify_heap', 'V8 Linux64 - verify csa': 'release_x64_verify_csa', # Jumbo. 'V8 Linux64 Jumbo': 'release_x64_jumbo', @@ -91,8 +92,11 @@ 'V8 Linux gcc 4.8': 'release_x86_gcc', 'V8 Linux64 gcc 4.8 - debug': 'debug_x64_gcc', # FYI. - 'V8 Linux - embedded builtins': 'release_x86_embedded_builtins', - 'V8 Linux - embedded builtins - debug': 'debug_x86_embedded_builtins', + 'V8 Linux64 - pointer compression': 'release_x64_pointer_compression', + 'V8 Linux64 - arm64 - sim - pointer compression - builder': + 'release_simulate_arm64_pointer_compression', + 'V8 Linux - noembed': 'release_x86_noembed', + 'V8 Linux - noembed - debug': 'debug_x86_noembed', 'V8 Fuchsia': 'release_x64_fuchsia', 'V8 Fuchsia - debug': 'debug_x64_fuchsia', 'V8 Linux64 - cfi': 'release_x64_cfi', @@ -120,8 +124,6 @@ 'V8 Clusterfuzz Linux64 - release builder': 'release_x64_correctness_fuzzer', 'V8 Clusterfuzz Linux64 - debug builder': 'debug_x64', - 'V8 Clusterfuzz Linux64 - nosnap release builder': 'release_x64_no_snap', - 'V8 Clusterfuzz Linux64 - nosnap debug builder': 'debug_x64_no_snap', 'V8 Clusterfuzz Linux64 ASAN no inline - release builder': 'release_x64_asan_symbolized_edge_verify_heap', 'V8 Clusterfuzz Linux64 ASAN - debug builder': 'debug_x64_asan_edge', @@ -136,6 +138,8 @@ 'V8 Clusterfuzz Linux MSAN chained origins': 'release_simulate_arm64_msan_edge', 'V8 Clusterfuzz Linux64 TSAN - release builder': 'release_x64_tsan', + 'V8 Clusterfuzz Linux64 UBSan - release builder': + 'release_x64_ubsan_recover_edge', 'V8 Clusterfuzz Linux64 UBSanVptr - release builder': 'release_x64_ubsan_vptr_recover_edge', }, @@ -146,6 +150,8 @@ 'V8 Android Arm - builder': 'release_android_arm', 'V8 Linux - arm - sim': 'release_simulate_arm', 'V8 Linux - arm - sim - debug': 'debug_simulate_arm', + 'V8 Linux - arm - sim - lite': 'release_simulate_arm_lite', + 'V8 Linux - arm - sim - lite - debug': 'debug_simulate_arm_lite', # Arm64. 'V8 Android Arm64 - builder': 'release_android_arm64', 'V8 Android Arm64 - debug builder': 'debug_android_arm64', @@ -189,7 +195,7 @@ 'v8_android_arm64_compile_dbg': 'debug_android_arm64', 'v8_android_arm64_n5x_rel_ng': 'release_android_arm64', 'v8_fuchsia_rel_ng': 'release_x64_fuchsia_trybot', - 'v8_linux_embedded_builtins_rel_ng': 'release_x86_embedded_builtins_trybot', + 'v8_linux_noembed_rel_ng': 'release_x86_noembed_trybot', 'v8_linux_rel_ng': 'release_x86_gcmole_trybot', 'v8_linux_optional_rel_ng': 'release_x86_trybot', 'v8_linux_verify_csa_rel_ng': 'release_x86_verify_csa', @@ -202,12 +208,16 @@ 'v8_linux_gcc_compile_rel': 'release_x86_gcc_minimal_symbols', 'v8_linux_gcc_rel': 'release_x86_gcc_minimal_symbols', 'v8_linux_shared_compile_rel': 'release_x86_shared_verify_heap', + 'v8_linux64_arm64_pointer_compression_rel_ng': + 'release_simulate_arm64_pointer_compression', 'v8_linux64_compile_rel_xg': 'release_x64_test_features_trybot', 'v8_linux64_dbg_ng': 'debug_x64_trybot', 'v8_linux64_gcc_compile_dbg': 'debug_x64_gcc', 'v8_linux64_header_includes_dbg': 'debug_x64_header_includes', 'v8_linux64_fyi_rel_ng': 'release_x64_test_features_trybot', + 'v8_linux64_pointer_compression_rel_ng': 'release_x64_pointer_compression', 'v8_linux64_rel_ng': 'release_x64_test_features_trybot', + 'v8_linux64_shared_compile_rel': 'release_x64_shared_verify_heap', 'v8_linux64_verify_csa_rel_ng': 'release_x64_verify_csa', 'v8_linux64_asan_rel_ng': 'release_x64_asan_minimal_symbols', 'v8_linux64_cfi_rel_ng': 'release_x64_cfi', @@ -219,7 +229,8 @@ 'v8_linux64_tsan_rel': 'release_x64_tsan_minimal_symbols', 'v8_linux64_tsan_isolates_rel_ng': 'release_x64_tsan_minimal_symbols', - 'v8_linux64_ubsan_rel_ng': 'release_x64_ubsan_vptr_minimal_symbols', + 'v8_linux64_ubsan_rel_ng': 'release_x64_ubsan_minimal_symbols', + 'v8_linux64_ubsan_vptr_rel_ng': 'release_x64_ubsan_vptr_minimal_symbols', 'v8_odroid_arm_rel_ng': 'release_arm', # TODO(machenbach): Remove after switching to x64 on infra side. 'v8_win_dbg': 'debug_x86_trybot', @@ -239,6 +250,7 @@ 'v8_mac64_asan_rel': 'release_x64_asan_no_lsan', 'v8_mips_compile_rel': 'release_mips_no_snap_no_i18n', 'v8_linux_arm_rel_ng': 'release_simulate_arm_trybot', + 'v8_linux_arm_lite_rel_ng': 'release_simulate_arm_lite_trybot', 'v8_linux_arm_dbg': 'debug_simulate_arm', 'v8_linux_arm_armv8a_rel': 'release_simulate_arm_trybot', 'v8_linux_arm_armv8a_dbg': 'debug_simulate_arm', @@ -330,6 +342,8 @@ 'debug_bot', 'simulate_arm'], 'debug_simulate_arm_asan_edge': [ 'debug_bot', 'simulate_arm', 'asan', 'edge'], + 'debug_simulate_arm_lite': [ + 'debug_bot', 'simulate_arm', 'v8_enable_lite_mode'], 'debug_simulate_arm64': [ 'debug_bot', 'simulate_arm64'], 'debug_simulate_arm64_asan_edge': [ @@ -341,10 +355,17 @@ # Release configs for simulators. 'release_simulate_arm': [ 'release_bot', 'simulate_arm'], + 'release_simulate_arm_lite': [ + 'release_bot', 'simulate_arm', 'v8_enable_lite_mode'], 'release_simulate_arm_trybot': [ 'release_trybot', 'simulate_arm'], + 'release_simulate_arm_lite_trybot': [ + 'release_trybot', 'simulate_arm', 'v8_enable_lite_mode'], 'release_simulate_arm64': [ 'release_bot', 'simulate_arm64'], + 'release_simulate_arm64_pointer_compression': [ + 'release_bot', 'simulate_arm64', 'dcheck_always_on', + 'v8_enable_slow_dchecks', 'v8_enable_pointer_compression'], 'release_simulate_arm64_msan': [ 'release_bot', 'simulate_arm64', 'msan'], 'release_simulate_arm64_msan_minimal_symbols': [ @@ -427,8 +448,9 @@ 'release_trybot', 'x64', 'jumbo_limited'], 'release_x64_minimal_symbols': [ 'release_bot', 'x64', 'minimal_symbols'], - 'release_x64_no_snap': [ - 'release_bot', 'x64', 'v8_snapshot_none'], + 'release_x64_pointer_compression': [ + 'release_bot', 'x64', 'dcheck_always_on', 'v8_enable_slow_dchecks', + 'v8_enable_pointer_compression'], 'release_x64_trybot': [ 'release_trybot', 'x64'], 'release_x64_test_features_trybot': [ @@ -439,12 +461,18 @@ 'release_bot', 'x64', 'tsan', 'minimal_symbols'], 'release_x64_ubsan': [ 'release_bot', 'x64', 'ubsan'], + 'release_x64_ubsan_minimal_symbols': [ + 'release_bot', 'x64', 'ubsan', 'minimal_symbols'], + 'release_x64_ubsan_recover_edge': [ + 'release_bot', 'x64', 'edge', 'ubsan_recover'], 'release_x64_ubsan_vptr': [ 'release_bot', 'x64', 'ubsan_vptr'], - 'release_x64_ubsan_vptr_recover_edge': [ - 'release_bot', 'x64', 'edge', 'ubsan_vptr_recover'], 'release_x64_ubsan_vptr_minimal_symbols': [ 'release_bot', 'x64', 'ubsan_vptr', 'minimal_symbols'], + 'release_x64_ubsan_vptr_recover_edge': [ + 'release_bot', 'x64', 'edge', 'ubsan_vptr_recover'], + 'release_x64_shared_verify_heap': [ + 'release_bot', 'x64', 'shared', 'v8_verify_heap'], 'release_x64_verify_csa': [ 'release_bot', 'x64', 'dcheck_always_on', 'v8_enable_slow_dchecks', 'v8_verify_csa'], @@ -471,17 +499,14 @@ 'debug_bot', 'x64', 'jumbo_limited'], 'debug_x64_minimal_symbols': [ 'debug_bot', 'x64', 'minimal_symbols'], - 'debug_x64_no_snap': [ - 'debug_bot', 'x64', 'v8_snapshot_none'], 'debug_x64_trybot': [ 'debug_trybot', 'x64'], # Debug configs for x86. 'debug_x86': [ 'debug_bot', 'x86'], - 'debug_x86_embedded_builtins': [ - 'debug_bot', 'x86', 'v8_enable_embedded_builtins', - 'v8_no_untrusted_code_mitigations'], + 'debug_x86_noembed': [ + 'debug_bot', 'x86', 'v8_no_enable_embedded_builtins'], 'debug_x86_minimal_symbols': [ 'debug_bot', 'x86', 'minimal_symbols'], 'debug_x86_no_i18n': [ @@ -501,12 +526,10 @@ # Release configs for x86. 'release_x86': [ 'release_bot', 'x86'], - 'release_x86_embedded_builtins': [ - 'release_bot', 'x86', 'v8_enable_embedded_builtins', - 'v8_no_untrusted_code_mitigations'], - 'release_x86_embedded_builtins_trybot': [ - 'release_trybot', 'x86', 'v8_enable_embedded_builtins', - 'v8_no_untrusted_code_mitigations'], + 'release_x86_noembed': [ + 'release_bot', 'x86', 'v8_no_enable_embedded_builtins'], + 'release_x86_noembed_trybot': [ + 'release_trybot', 'x86', 'v8_no_enable_embedded_builtins'], 'release_x86_gcc': [ 'release_bot', 'x86', 'gcc'], 'release_x86_gcc_minimal_symbols': [ @@ -656,7 +679,10 @@ }, 'mips_bundled_toolchain': { - 'gn_args': 'custom_toolchain="//tools/toolchain:mips-bundled"', + 'gn_args': 'custom_toolchain="tools/toolchain:mips-bundled" ' + 'ldso_path="tools/mips_toolchain/sysroot/usr/lib/ld.so.1" ' + 'gcc_target_rpath="tools/mips_toolchain/sysroot/usr/lib:' + 'tools/mips_toolchain/mips-mti-linux-gnu/lib:\$ORIGIN/."', }, 'msan': { @@ -746,6 +772,12 @@ 'gn_args': 'is_ubsan=true is_ubsan_no_recover=true', }, + 'ubsan_recover': { + 'mixins': ['v8_enable_test_features'], + # Ubsan with recovery. + 'gn_args': 'is_ubsan=true is_ubsan_no_recover=false', + }, + 'ubsan_vptr': { 'mixins': ['v8_enable_test_features'], # TODO(krasin): Remove is_ubsan_no_recover=true when @@ -769,14 +801,22 @@ 'gn_args': 'v8_correctness_fuzzer=true v8_multi_arch_build=true', }, - 'v8_enable_embedded_builtins': { - 'gn_args': 'v8_enable_embedded_builtins=true', + 'v8_no_enable_embedded_builtins': { + 'gn_args': 'v8_enable_embedded_builtins=false', + }, + + 'v8_enable_lite_mode': { + 'gn_args': 'v8_enable_lite_mode=true', }, 'v8_enable_slow_dchecks': { 'gn_args': 'v8_enable_slow_dchecks=true', }, + 'v8_enable_pointer_compression': { + 'gn_args': 'v8_enable_pointer_compression=true', + }, + 'v8_enable_test_features': { 'gn_args': 'v8_enable_test_features=true', }, @@ -818,10 +858,6 @@ 'gn_args': 'v8_use_snapshot=false', }, - 'v8_no_untrusted_code_mitigations': { - 'gn_args': 'v8_untrusted_code_mitigations=false', - }, - 'v8_verify_heap': { 'gn_args': 'v8_enable_verify_heap=true', }, diff --git a/deps/v8/infra/testing/builders.pyl b/deps/v8/infra/testing/builders.pyl index 31aef9c3214d90..375c98dc199bc2 100644 --- a/deps/v8/infra/testing/builders.pyl +++ b/deps/v8/infra/testing/builders.pyl @@ -127,7 +127,7 @@ {'name': 'mozilla', 'variant': 'extra'}, {'name': 'optimize_for_size'}, {'name': 'test262_variants', 'shards': 4}, - {'name': 'test262_variants', 'variant': 'extra', 'shards': 2}, + {'name': 'test262_variants', 'variant': 'extra', 'shards': 3}, {'name': 'v8testing', 'shards': 2}, {'name': 'v8testing', 'suffix': 'isolates', 'test_args': ['--isolates'], 'shards': 2}, {'name': 'v8testing', 'variant': 'extra'}, @@ -270,6 +270,11 @@ {'name': 'v8testing', 'shards': 5}, ], }, + 'v8_linux64_pointer_compression_rel_ng_triggered': { + 'tests': [ + {'name': 'v8testing', 'shards': 3}, + ], + }, 'v8_linux64_rel_ng_triggered': { 'swarming_dimensions' : { 'cpu': 'x86-64-avx2', @@ -280,7 +285,7 @@ {'name': 'mjsunit_sp_frame_access'}, {'name': 'optimize_for_size'}, {'name': 'test262_variants', 'shards': 4}, - {'name': 'test262_variants', 'variant': 'extra', 'shards': 2}, + {'name': 'test262_variants', 'variant': 'extra', 'shards': 3}, {'name': 'v8initializers'}, {'name': 'v8testing', 'shards': 2}, {'name': 'v8testing', 'variant': 'extra'}, @@ -299,6 +304,11 @@ {'name': 'v8testing', 'shards': 2}, ], }, + 'v8_linux64_sanitizer_coverage_rel': { + 'tests': [ + {'name': 'v8testing', 'shards': 3}, + ], + }, 'v8_linux64_tsan_rel': { 'tests': [ {'name': 'benchmarks'}, @@ -319,6 +329,11 @@ {'name': 'v8testing', 'shards': 2}, ], }, + 'v8_linux64_ubsan_vptr_rel_ng_triggered': { + 'tests': [ + {'name': 'v8testing', 'shards': 2}, + ], + }, 'v8_linux64_verify_csa_rel_ng_triggered': { 'tests': [ {'name': 'v8testing', 'shards': 2}, @@ -329,10 +344,10 @@ 'v8_linux_arm64_dbg': { 'tests': [ {'name': 'mjsunit_sp_frame_access'}, - {'name': 'mozilla'}, - {'name': 'test262'}, - {'name': 'v8testing', 'shards': 7}, - {'name': 'v8testing', 'variant': 'extra', 'shards': 3}, + {'name': 'mozilla', 'shards': 2}, + {'name': 'test262', 'shards': 2}, + {'name': 'v8testing', 'shards': 10}, + {'name': 'v8testing', 'variant': 'extra', 'shards': 6}, ], }, 'v8_linux_arm64_gc_stress_dbg': { @@ -349,6 +364,16 @@ {'name': 'v8testing', 'variant': 'extra', 'shards': 6}, ], }, + 'v8_linux64_arm64_pointer_compression_rel_ng_triggered': { + 'swarming_task_attrs': { + 'expiration': 14400, + 'hard_timeout': 3600, + 'priority': 35, + }, + 'tests': [ + {'name': 'v8testing', 'shards': 7}, + ], + }, ############################################################################## # Odroids with native arm 'v8_odroid_arm_rel_ng_triggered': { @@ -481,7 +506,7 @@ }, 'tests': [ {'name': 'mozilla'}, - {'name': 'test262'}, + {'name': 'test262', 'shards': 2}, {'name': 'v8testing', 'shards': 2}, {'name': 'v8testing', 'variant': 'extra'}, ], @@ -563,8 +588,8 @@ {'name': 'mozilla', 'variant': 'extra'}, {'name': 'optimize_for_size'}, {'name': 'test262_variants', 'shards': 6}, - {'name': 'test262_variants', 'variant': 'code_serializer', 'shards': 1}, - {'name': 'test262_variants', 'variant': 'extra', 'shards': 2}, + {'name': 'test262_variants', 'variant': 'code_serializer', 'shards': 2}, + {'name': 'test262_variants', 'variant': 'extra', 'shards': 3}, {'name': 'v8testing', 'shards': 3}, { 'name': 'v8testing', @@ -620,8 +645,13 @@ ], }, 'V8 Linux - full debug': { + 'swarming_task_attrs': { + 'expiration': 14400, + 'hard_timeout': 3600, + 'priority': 35, + }, 'tests': [ - {'name': 'v8testing', 'variant': 'default'}, + {'name': 'v8testing', 'variant': 'default', 'shards': 3}, ], }, 'V8 Linux - gc stress': { @@ -664,7 +694,7 @@ }, 'tests': [ {'name': 'mozilla', 'variant': 'default'}, - {'name': 'test262', 'variant': 'default', 'shards': 2}, + {'name': 'test262', 'variant': 'default', 'shards': 3}, {'name': 'v8testing', 'variant': 'default', 'shards': 3}, ], }, @@ -763,7 +793,7 @@ {'name': 'mozilla', 'variant': 'extra'}, {'name': 'optimize_for_size'}, {'name': 'test262_variants', 'shards': 5}, - {'name': 'test262_variants', 'variant': 'extra', 'shards': 2}, + {'name': 'test262_variants', 'variant': 'extra', 'shards': 3}, {'name': 'v8testing', 'shards': 2}, {'name': 'v8testing', 'variant': 'extra'}, {'name': 'v8testing', 'variant': 'minor_mc', 'shards': 1}, @@ -815,6 +845,18 @@ {'name': 'v8testing'}, ], }, + 'V8 Linux64 - pointer compression': { + 'tests': [ + {'name': 'v8testing', 'shards': 2}, + ], + }, + 'V8 Linux64 - shared': { + 'tests': [ + {'name': 'mozilla'}, + {'name': 'test262'}, + {'name': 'v8testing'}, + ], + }, 'V8 Linux64 - verify csa': { 'tests': [ {'name': 'v8testing'}, @@ -876,12 +918,15 @@ }, 'V8 Linux64 TSAN - isolates': { 'tests': [ - {'name': 'v8testing', 'test_args': ['--isolates'], 'shards': 5}, + {'name': 'v8testing', 'test_args': ['--isolates'], 'shards': 7}, ], }, 'V8 Linux64 UBSan': { 'tests': [ + {'name': 'mozilla'}, + {'name': 'test262', 'shards': 2}, {'name': 'v8testing'}, + {'name': 'v8testing', 'variant': 'extra'}, ], }, 'V8 Linux64 UBSanVptr': { @@ -897,7 +942,7 @@ 'tests': [ {'name': 'mozilla'}, {'name': 'test262'}, - {'name': 'v8testing'}, + {'name': 'v8testing', 'shards': 2}, {'name': 'v8testing', 'variant': 'extra'}, ], }, @@ -908,7 +953,7 @@ }, 'tests': [ {'name': 'mozilla'}, - {'name': 'test262'}, + {'name': 'test262', 'shards': 2}, {'name': 'v8testing', 'shards': 3}, {'name': 'v8testing', 'variant': 'extra'}, ], @@ -1037,7 +1082,9 @@ 'cores': '8', 'os': 'Ubuntu-16.04', 'cpu': 'armv7l-32-ODROID-XU4', - } + }, + # Less parallelism to prevent OOMs in benchmarks. + 'test_args': ['-j2'], }, { 'name': 'optimize_for_size', @@ -1179,7 +1226,7 @@ {'name': 'mjsunit_sp_frame_access'}, {'name': 'mozilla'}, {'name': 'test262'}, - {'name': 'v8testing', 'shards': 7}, + {'name': 'v8testing', 'shards': 8}, {'name': 'v8testing', 'variant': 'extra', 'shards': 3}, # Armv8-a. { @@ -1196,7 +1243,7 @@ 'name': 'v8testing', 'suffix': 'armv8-a', 'test_args': ['--extra-flags', '--enable-armv8'], - 'shards': 7 + 'shards': 8 }, # Novfp3. { @@ -1216,7 +1263,7 @@ 'suffix': 'novfp3', 'variant': 'default', 'test_args': ['--novfp3'], - 'shards': 7 + 'shards': 8 }, ], }, @@ -1240,10 +1287,14 @@ ], }, 'V8 Linux - arm64 - sim - debug': { + # TODO(machenbach): Remove longer timeout when this builder scales better. + 'swarming_task_attrs': { + 'hard_timeout': 3600, + }, 'tests': [ {'name': 'mjsunit_sp_frame_access'}, - {'name': 'mozilla'}, - {'name': 'test262'}, + {'name': 'mozilla', 'shards': 2}, + {'name': 'test262', 'shards': 2}, {'name': 'v8testing', 'shards': 10}, {'name': 'v8testing', 'variant': 'extra', 'shards': 6}, ], @@ -1304,6 +1355,16 @@ {'name': 'v8testing', 'shards': 3}, ], }, + 'V8 Linux64 - arm64 - sim - pointer compression': { + 'swarming_task_attrs': { + 'expiration': 14400, + 'hard_timeout': 3600, + 'priority': 35, + }, + 'tests': [ + {'name': 'v8testing', 'shards': 7}, + ], + }, 'V8 Mips - big endian - nosnap': { 'swarming_dimensions': { 'cpu': 'mips-32', @@ -1463,44 +1524,8 @@ }, ], }, - 'V8 NumFuzz - nosnap': { - 'swarming_task_attrs': { - 'expiration': 14400, - 'hard_timeout': 3600, - 'priority': 35, - }, - 'tests': [ - { - 'name': 'numfuzz', - 'suffix': 'interrupt-budget', - 'test_args': [ - '--total-timeout-sec=2100', - '--stress-interrupt-budget=10', - '--stress-deopt=5', - ] - }, - ], - }, - 'V8 NumFuzz - nosnap debug': { - 'swarming_task_attrs': { - 'expiration': 14400, - 'hard_timeout': 3600, - 'priority': 35, - }, - 'tests': [ - { - 'name': 'numfuzz', - 'suffix': 'interrupt-budget', - 'test_args': [ - '--total-timeout-sec=2100', - '--stress-interrupt-budget=10', - '--stress-deopt=5', - ] - }, - ], - }, ############################################################################## - # Clusterfuzz. + # Branches. 'V8 Linux - beta branch': { 'swarming_task_attrs': { 'expiration': 14400, diff --git a/deps/v8/snapshot_toolchain.gni b/deps/v8/snapshot_toolchain.gni index 756413e5ce402a..f1c690943946c0 100644 --- a/deps/v8/snapshot_toolchain.gni +++ b/deps/v8/snapshot_toolchain.gni @@ -83,7 +83,13 @@ if (v8_snapshot_toolchain == "") { if (v8_current_cpu == "x64" || v8_current_cpu == "x86") { _cpus = v8_current_cpu } else if (v8_current_cpu == "arm64" || v8_current_cpu == "mips64el") { - _cpus = "x64_v8_${v8_current_cpu}" + if (is_win && v8_current_cpu == "arm64") { + # set _cpus to blank for Windows ARM64 so host_toolchain could be + # selected as snapshot toolchain later. + _cpus = "" + } else { + _cpus = "x64_v8_${v8_current_cpu}" + } } else if (v8_current_cpu == "arm" || v8_current_cpu == "mipsel") { _cpus = "x86_v8_${v8_current_cpu}" } else { @@ -94,6 +100,9 @@ if (v8_snapshot_toolchain == "") { if (_cpus != "") { v8_snapshot_toolchain = "//build/toolchain/${host_os}:${_clang}${_cpus}" + } else if (is_win && v8_current_cpu == "arm64") { + # cross compile Windows arm64 with Windows x64 toolchain. + v8_snapshot_toolchain = host_toolchain } } } diff --git a/deps/v8/src/DEPS b/deps/v8/src/DEPS index 99873803c99fc1..f8190e8fd9d896 100644 --- a/deps/v8/src/DEPS +++ b/deps/v8/src/DEPS @@ -27,6 +27,8 @@ include_rules = [ "+src/interpreter/interpreter-generator.h", "+src/interpreter/setup-interpreter.h", "-src/trap-handler", + "+src/trap-handler/handler-inside-posix.h", + "+src/trap-handler/handler-inside-win.h", "+src/trap-handler/trap-handler.h", "+testing/gtest/include/gtest/gtest_prod.h", "-src/libplatform", diff --git a/deps/v8/src/OWNERS b/deps/v8/src/OWNERS index 5f6fedcd362428..abad5274c880f8 100644 --- a/deps/v8/src/OWNERS +++ b/deps/v8/src/OWNERS @@ -2,7 +2,6 @@ per-file intl.*=cira@chromium.org per-file intl.*=mnita@google.com per-file intl.*=jshin@chromium.org per-file typing-asm.*=aseemgarg@chromium.org -per-file typing-asm.*=bradnelson@chromium.org per-file objects-body-descriptors*=hpayer@chromium.org per-file objects-body-descriptors*=mlippautz@chromium.org per-file objects-body-descriptors*=ulan@chromium.org diff --git a/deps/v8/src/PRESUBMIT.py b/deps/v8/src/PRESUBMIT.py deleted file mode 100644 index b97eefaeb06445..00000000000000 --- a/deps/v8/src/PRESUBMIT.py +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright 2017 the V8 project authors. All rights reserved.') -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""Presubmit script for //v8/src - -See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts -for more details about the presubmit API built into depot_tools. -""" - -import os - - -def PostUploadHook(cl, change, output_api): - """git cl upload will call this hook after the issue is created/modified. - - This hook adds extra try bots to the CL description in order to run layout - tests in addition to CQ try bots. - """ - def is_api_cc(f): - return 'api.cc' == os.path.split(f.LocalPath())[1] - if not change.AffectedFiles(file_filter=is_api_cc): - return [] - return output_api.EnsureCQIncludeTrybotsAreAdded( - cl, - [ - 'luci.chromium.try:linux_chromium_rel_ng' - ], - 'Automatically added layout test trybots to run tests on CQ.') diff --git a/deps/v8/src/accessors.cc b/deps/v8/src/accessors.cc index 226178394db1bf..a368bbd81ead80 100644 --- a/deps/v8/src/accessors.cc +++ b/deps/v8/src/accessors.cc @@ -6,6 +6,7 @@ #include "src/api-inl.h" #include "src/contexts.h" +#include "src/counters.h" #include "src/deoptimizer.h" #include "src/execution.h" #include "src/frames-inl.h" @@ -133,7 +134,7 @@ void Accessors::ArgumentsIteratorGetter( i::Isolate* isolate = reinterpret_cast(info.GetIsolate()); DisallowHeapAllocation no_allocation; HandleScope scope(isolate); - Object* result = isolate->native_context()->array_values_iterator(); + Object result = isolate->native_context()->array_values_iterator(); info.GetReturnValue().Set(Utils::ToLocal(Handle(result, isolate))); } @@ -156,8 +157,8 @@ void Accessors::ArrayLengthGetter( RuntimeCallCounterId::kArrayLengthGetter); DisallowHeapAllocation no_allocation; HandleScope scope(isolate); - JSArray* holder = JSArray::cast(*Utils::OpenHandle(*info.Holder())); - Object* result = holder->length(); + JSArray holder = JSArray::cast(*Utils::OpenHandle(*info.Holder())); + Object result = holder->length(); info.GetReturnValue().Set(Utils::ToLocal(Handle(result, isolate))); } @@ -235,7 +236,7 @@ void Accessors::ModuleNamespaceEntryGetter( v8::Local name, const v8::PropertyCallbackInfo& info) { i::Isolate* isolate = reinterpret_cast(info.GetIsolate()); HandleScope scope(isolate); - JSModuleNamespace* holder = + JSModuleNamespace holder = JSModuleNamespace::cast(*Utils::OpenHandle(*info.Holder())); Handle result; if (!holder @@ -291,13 +292,13 @@ void Accessors::StringLengthGetter( // v8::Object, but internally we have callbacks on entities which are higher // in the hierarchy, in this case for String values. - Object* value = *Utils::OpenHandle(*v8::Local(info.This())); + Object value = *Utils::OpenHandle(*v8::Local(info.This())); if (!value->IsString()) { // Not a string value. That means that we either got a String wrapper or // a Value with a String wrapper in its prototype chain. value = JSValue::cast(*Utils::OpenHandle(*info.Holder()))->value(); } - Object* result = Smi::FromInt(String::cast(value)->length()); + Object result = Smi::FromInt(String::cast(value)->length()); info.GetReturnValue().Set(Utils::ToLocal(Handle(result, isolate))); } @@ -496,7 +497,7 @@ Handle GetFrameArguments(Isolate* isolate, // Copy the parameters to the arguments object. DCHECK(array->length() == length); for (int i = 0; i < length; i++) { - Object* value = frame->GetParameter(i); + Object value = frame->GetParameter(i); if (value->IsTheHole(isolate)) { // Generators currently use holes as dummy arguments when resuming. We // must not leak those. @@ -560,13 +561,11 @@ Handle Accessors::MakeFunctionArgumentsInfo(Isolate* isolate) { // Accessors::FunctionCaller // - -static inline bool AllowAccessToFunction(Context* current_context, - JSFunction* function) { +static inline bool AllowAccessToFunction(Context current_context, + JSFunction function) { return current_context->HasSameSecurityTokenAs(function->context()); } - class FrameFunctionIterator { public: explicit FrameFunctionIterator(Isolate* isolate) @@ -795,7 +794,7 @@ MaybeHandle ClearInternalStackTrace(Isolate* isolate, Handle error) { RETURN_ON_EXCEPTION( isolate, - JSReceiver::SetProperty( + Object::SetProperty( isolate, error, isolate->factory()->stack_trace_symbol(), isolate->factory()->undefined_value(), LanguageMode::kStrict), JSReceiver); diff --git a/deps/v8/src/address-map.cc b/deps/v8/src/address-map.cc index ad71a25a99de0c..112e3134b8f959 100644 --- a/deps/v8/src/address-map.cc +++ b/deps/v8/src/address-map.cc @@ -6,6 +6,7 @@ #include "src/heap/heap.h" #include "src/isolate.h" #include "src/objects-inl.h" +#include "src/objects/heap-object-inl.h" namespace v8 { namespace internal { @@ -14,16 +15,16 @@ RootIndexMap::RootIndexMap(Isolate* isolate) { map_ = isolate->root_index_map(); if (map_ != nullptr) return; map_ = new HeapObjectToIndexHashMap(); - for (RootIndex root_index = RootIndex::kFirstStrongRoot; - root_index <= RootIndex::kLastStrongRoot; ++root_index) { - Object* root = isolate->heap()->root(root_index); + for (RootIndex root_index = RootIndex::kFirstStrongOrReadOnlyRoot; + root_index <= RootIndex::kLastStrongOrReadOnlyRoot; ++root_index) { + Object root = isolate->root(root_index); if (!root->IsHeapObject()) continue; // Omit root entries that can be written after initialization. They must // not be referenced through the root list in the snapshot. // Since we map the raw address of an root item to its root list index, the // raw address must be constant, i.e. the object must be immovable. - if (isolate->heap()->RootCanBeTreatedAsConstant(root_index)) { - HeapObject* heap_object = HeapObject::cast(root); + if (RootsTable::IsImmortalImmovable(root_index)) { + HeapObject heap_object = HeapObject::cast(root); Maybe maybe_index = map_->Get(heap_object); uint32_t index = static_cast(root_index); if (maybe_index.IsJust()) { @@ -32,15 +33,14 @@ RootIndexMap::RootIndexMap(Isolate* isolate) { } else { map_->Set(heap_object, index); } - } else { - // Immortal immovable root objects are constant and allocated on the first - // page of old space. Non-constant roots cannot be immortal immovable. The - // root index map contains all immortal immmovable root objects. - CHECK(!Heap::RootIsImmortalImmovable(root_index)); } } isolate->set_root_index_map(map_); } +bool RootIndexMap::Lookup(Address obj, RootIndex* out_root_list) const { + return Lookup(HeapObject::cast(Object(obj)), out_root_list); +} + } // namespace internal } // namespace v8 diff --git a/deps/v8/src/address-map.h b/deps/v8/src/address-map.h index f7a1cc2ad9aabd..72ba97a4ec0fb8 100644 --- a/deps/v8/src/address-map.h +++ b/deps/v8/src/address-map.h @@ -8,7 +8,8 @@ #include "include/v8.h" #include "src/assert-scope.h" #include "src/base/hashmap.h" -#include "src/objects.h" +#include "src/objects/heap-object.h" +#include "src/roots.h" namespace v8 { namespace internal { @@ -44,20 +45,20 @@ inline uintptr_t PointerToIndexHashMap
::Key(Address value) { return static_cast(value); } -template -inline uintptr_t PointerToIndexHashMap::Key(Type value) { - return reinterpret_cast(value); +template <> +inline uintptr_t PointerToIndexHashMap::Key(HeapObject value) { + return value.ptr(); } class AddressToIndexHashMap : public PointerToIndexHashMap
{}; -class HeapObjectToIndexHashMap : public PointerToIndexHashMap {}; +class HeapObjectToIndexHashMap : public PointerToIndexHashMap {}; class RootIndexMap { public: explicit RootIndexMap(Isolate* isolate); // Returns true on successful lookup and sets *|out_root_list|. - bool Lookup(HeapObject* obj, RootIndex* out_root_list) { + bool Lookup(HeapObject obj, RootIndex* out_root_list) const { Maybe maybe_index = map_->Get(obj); if (maybe_index.IsJust()) { *out_root_list = static_cast(maybe_index.FromJust()); @@ -65,6 +66,7 @@ class RootIndexMap { } return false; } + bool Lookup(Address obj, RootIndex* out_root_list) const; private: HeapObjectToIndexHashMap* map_; diff --git a/deps/v8/src/allocation-site-scopes-inl.h b/deps/v8/src/allocation-site-scopes-inl.h index e114bb3885c202..6500e9efdc8f25 100644 --- a/deps/v8/src/allocation-site-scopes-inl.h +++ b/deps/v8/src/allocation-site-scopes-inl.h @@ -12,12 +12,19 @@ namespace v8 { namespace internal { +void AllocationSiteContext::InitializeTraversal(Handle site) { + top_ = site; + // {current_} is updated in place to not create unnecessary Handles, hence + // we initially need a separate handle. + current_ = Handle::New(*top_, isolate()); +} + Handle AllocationSiteUsageContext::EnterNewScope() { if (top().is_null()) { InitializeTraversal(top_site_); } else { // Advance current site - Object* nested_site = current()->nested_site(); + Object nested_site = current()->nested_site(); // Something is wrong if we advance to the end of the list here. update_current_site(AllocationSite::cast(nested_site)); } @@ -38,7 +45,7 @@ bool AllocationSiteUsageContext::ShouldCreateMemento(Handle object) { if (FLAG_trace_creation_allocation_sites) { PrintF("*** Creating Memento for %s %p\n", object->IsJSArray() ? "JSArray" : "JSObject", - static_cast(*object)); + reinterpret_cast(object->ptr())); } return true; } diff --git a/deps/v8/src/allocation-site-scopes.h b/deps/v8/src/allocation-site-scopes.h index 0a729948db2f59..b6bc6448fbbbf6 100644 --- a/deps/v8/src/allocation-site-scopes.h +++ b/deps/v8/src/allocation-site-scopes.h @@ -7,6 +7,7 @@ #include "src/handles.h" #include "src/objects.h" +#include "src/objects/allocation-site.h" #include "src/objects/map.h" namespace v8 { @@ -28,16 +29,11 @@ class AllocationSiteContext { Isolate* isolate() { return isolate_; } protected: - void update_current_site(AllocationSite* site) { - *(current_.location()) = site; + void update_current_site(AllocationSite site) { + *(current_.location()) = site->ptr(); } - void InitializeTraversal(Handle site) { - top_ = site; - // {current_} is updated in place to not create unnecessary Handles, hence - // we initially need a separate handle. - current_ = Handle::New(*top_, isolate()); - } + inline void InitializeTraversal(Handle site); private: Isolate* isolate_; diff --git a/deps/v8/src/allocation.cc b/deps/v8/src/allocation.cc index 6327a9c965abe7..4be8fb408463b4 100644 --- a/deps/v8/src/allocation.cc +++ b/deps/v8/src/allocation.cc @@ -11,8 +11,9 @@ #include "src/base/lsan-page-allocator.h" #include "src/base/page-allocator.h" #include "src/base/platform/platform.h" -#include "src/utils.h" +#include "src/memcopy.h" #include "src/v8.h" +#include "src/vector.h" #if V8_LIBC_BIONIC #include // NOLINT @@ -37,29 +38,34 @@ void* AlignedAllocInternal(size_t size, size_t alignment) { return ptr; } -// TODO(bbudge) Simplify this once all embedders implement a page allocator. -struct InitializePageAllocator { - static void Construct(void* page_allocator_ptr_arg) { - auto page_allocator_ptr = - reinterpret_cast(page_allocator_ptr_arg); - v8::PageAllocator* page_allocator = - V8::GetCurrentPlatform()->GetPageAllocator(); - if (page_allocator == nullptr) { - static v8::base::PageAllocator default_allocator; - page_allocator = &default_allocator; +class PageAllocatorInitializer { + public: + PageAllocatorInitializer() { + page_allocator_ = V8::GetCurrentPlatform()->GetPageAllocator(); + if (page_allocator_ == nullptr) { + static base::LeakyObject default_page_allocator; + page_allocator_ = default_page_allocator.get(); } #if defined(LEAK_SANITIZER) - { - static v8::base::LsanPageAllocator lsan_allocator(page_allocator); - page_allocator = &lsan_allocator; - } + static base::LeakyObject lsan_allocator( + page_allocator_); + page_allocator_ = lsan_allocator.get(); #endif - *page_allocator_ptr = page_allocator; } + + PageAllocator* page_allocator() const { return page_allocator_; } + + void SetPageAllocatorForTesting(PageAllocator* allocator) { + page_allocator_ = allocator; + } + + private: + PageAllocator* page_allocator_; }; -static base::LazyInstance::type - page_allocator = LAZY_INSTANCE_INITIALIZER; +DEFINE_LAZY_LEAKY_OBJECT_GETTER(PageAllocatorInitializer, + GetPageTableInitializer); + // We will attempt allocation this many times. After each failure, we call // OnCriticalMemoryPressure to try to free some memory. const int kAllocationTries = 2; @@ -67,8 +73,15 @@ const int kAllocationTries = 2; } // namespace v8::PageAllocator* GetPlatformPageAllocator() { - DCHECK_NOT_NULL(page_allocator.Get()); - return page_allocator.Get(); + DCHECK_NOT_NULL(GetPageTableInitializer()->page_allocator()); + return GetPageTableInitializer()->page_allocator(); +} + +v8::PageAllocator* SetPlatformPageAllocatorForTesting( + v8::PageAllocator* new_page_allocator) { + v8::PageAllocator* old_page_allocator = GetPlatformPageAllocator(); + GetPageTableInitializer()->SetPageAllocatorForTesting(new_page_allocator); + return old_page_allocator; } void* Malloced::New(size_t size) { @@ -111,7 +124,7 @@ void* AllocWithRetry(size_t size) { } void* AlignedAlloc(size_t size, size_t alignment) { - DCHECK_LE(V8_ALIGNOF(void*), alignment); + DCHECK_LE(alignof(void*), alignment); DCHECK(base::bits::IsPowerOfTwo(alignment)); void* result = nullptr; for (int i = 0; i < kAllocationTries; ++i) { @@ -155,7 +168,7 @@ void* AllocatePages(v8::PageAllocator* page_allocator, void* address, PageAllocator::Permission access) { DCHECK_NOT_NULL(page_allocator); DCHECK_EQ(address, AlignedAddress(address, alignment)); - DCHECK_EQ(0UL, size & (page_allocator->AllocatePageSize() - 1)); + DCHECK(IsAligned(size, page_allocator->AllocatePageSize())); void* result = nullptr; for (int i = 0; i < kAllocationTries; ++i) { result = page_allocator->AllocatePages(address, size, alignment, access); @@ -169,7 +182,7 @@ void* AllocatePages(v8::PageAllocator* page_allocator, void* address, bool FreePages(v8::PageAllocator* page_allocator, void* address, const size_t size) { DCHECK_NOT_NULL(page_allocator); - DCHECK_EQ(0UL, size & (page_allocator->AllocatePageSize() - 1)); + DCHECK(IsAligned(size, page_allocator->AllocatePageSize())); return page_allocator->FreePages(address, size); } @@ -177,6 +190,7 @@ bool ReleasePages(v8::PageAllocator* page_allocator, void* address, size_t size, size_t new_size) { DCHECK_NOT_NULL(page_allocator); DCHECK_LT(new_size, size); + DCHECK(IsAligned(new_size, page_allocator->CommitPageSize())); return page_allocator->ReleasePages(address, size, new_size); } @@ -209,12 +223,14 @@ VirtualMemory::VirtualMemory(v8::PageAllocator* page_allocator, size_t size, void* hint, size_t alignment) : page_allocator_(page_allocator) { DCHECK_NOT_NULL(page_allocator); + DCHECK(IsAligned(size, page_allocator_->CommitPageSize())); size_t page_size = page_allocator_->AllocatePageSize(); alignment = RoundUp(alignment, page_size); - size = RoundUp(size, page_size); - Address address = reinterpret_cast
(AllocatePages( - page_allocator_, hint, size, alignment, PageAllocator::kNoAccess)); + Address address = reinterpret_cast
( + AllocatePages(page_allocator_, hint, RoundUp(size, page_size), alignment, + PageAllocator::kNoAccess)); if (address != kNullAddress) { + DCHECK(IsAligned(address, alignment)); region_ = base::AddressRegion(address, size); } } @@ -241,7 +257,7 @@ bool VirtualMemory::SetPermissions(Address address, size_t size, size_t VirtualMemory::Release(Address free_start) { DCHECK(IsReserved()); - DCHECK(IsAddressAligned(free_start, page_allocator_->CommitPageSize())); + DCHECK(IsAligned(free_start, page_allocator_->CommitPageSize())); // Notice: Order is important here. The VirtualMemory object might live // inside the allocated region. diff --git a/deps/v8/src/allocation.h b/deps/v8/src/allocation.h index 3a21310af8e698..df6e416e702bf4 100644 --- a/deps/v8/src/allocation.h +++ b/deps/v8/src/allocation.h @@ -86,6 +86,13 @@ void AlignedFree(void *ptr); // Returns platfrom page allocator instance. Guaranteed to be a valid pointer. V8_EXPORT_PRIVATE v8::PageAllocator* GetPlatformPageAllocator(); +// Sets the given page allocator as the platform page allocator and returns +// the current one. This function *must* be used only for testing purposes. +// It is not thread-safe and the testing infrastructure should ensure that +// the tests do not modify the value simultaneously. +V8_EXPORT_PRIVATE v8::PageAllocator* SetPlatformPageAllocatorForTesting( + v8::PageAllocator* page_allocator); + // Gets the page granularity for AllocatePages and FreePages. Addresses returned // by AllocatePages and AllocatePage are aligned to this size. V8_EXPORT_PRIVATE size_t AllocatePageSize(); @@ -160,7 +167,7 @@ class V8_EXPORT_PRIVATE VirtualMemory final { // Reserves virtual memory containing an area of the given size that is // aligned per |alignment| rounded up to the |page_allocator|'s allocate page - // size. + // size. The |size| must be aligned with |page_allocator|'s commit page size. // This may not be at the position returned by address(). VirtualMemory(v8::PageAllocator* page_allocator, size_t size, void* hint, size_t alignment = 1); @@ -170,6 +177,8 @@ class V8_EXPORT_PRIVATE VirtualMemory final { VirtualMemory(v8::PageAllocator* page_allocator, Address address, size_t size) : page_allocator_(page_allocator), region_(address, size) { DCHECK_NOT_NULL(page_allocator); + DCHECK(IsAligned(address, page_allocator->AllocatePageSize())); + DCHECK(IsAligned(size, page_allocator->CommitPageSize())); } // Releases the reserved memory, if any, controlled by this VirtualMemory diff --git a/deps/v8/src/api-arguments-inl.h b/deps/v8/src/api-arguments-inl.h index 1e5d6b2aaa7ceb..1e2e9ed8073c12 100644 --- a/deps/v8/src/api-arguments-inl.h +++ b/deps/v8/src/api-arguments-inl.h @@ -10,6 +10,7 @@ #include "src/api-inl.h" #include "src/debug/debug.h" #include "src/objects/api-callbacks.h" +#include "src/objects/slots-inl.h" #include "src/tracing/trace-event.h" #include "src/vm-state-inl.h" @@ -19,28 +20,33 @@ namespace internal { CustomArgumentsBase::CustomArgumentsBase(Isolate* isolate) : Relocatable(isolate) {} +template +CustomArguments::~CustomArguments() { + slot_at(kReturnValueOffset).store(Object(kHandleZapValue)); +} + template template Handle CustomArguments::GetReturnValue(Isolate* isolate) { // Check the ReturnValue. - Object** handle = &this->begin()[kReturnValueOffset]; + FullObjectSlot slot = slot_at(kReturnValueOffset); // Nothing was set, return empty handle as per previous behaviour. - if ((*handle)->IsTheHole(isolate)) return Handle(); - Handle result = Handle::cast(Handle(handle)); + if ((*slot)->IsTheHole(isolate)) return Handle(); + Handle result = Handle::cast(Handle(slot.location())); result->VerifyApiCallResultType(); return result; } -inline JSObject* PropertyCallbackArguments::holder() { - return JSObject::cast(this->begin()[T::kHolderIndex]); +inline JSObject PropertyCallbackArguments::holder() { + return JSObject::cast(*slot_at(T::kHolderIndex)); } -inline Object* PropertyCallbackArguments::receiver() { - return Object::cast(this->begin()[T::kThisIndex]); +inline Object PropertyCallbackArguments::receiver() { + return *slot_at(T::kThisIndex); } -inline JSObject* FunctionCallbackArguments::holder() { - return JSObject::cast(this->begin()[T::kHolderIndex]); +inline JSObject FunctionCallbackArguments::holder() { + return JSObject::cast(*slot_at(T::kHolderIndex)); } #define FOR_EACH_CALLBACK(F) \ @@ -61,7 +67,7 @@ inline JSObject* FunctionCallbackArguments::holder() { } \ VMState state(ISOLATE); \ ExternalCallbackScope call_scope(ISOLATE, FUNCTION_ADDR(F)); \ - PropertyCallbackInfo callback_info(begin()); + PropertyCallbackInfo callback_info(values_); #define PREPARE_CALLBACK_INFO_FAIL_SIDE_EFFECT_CHECK(ISOLATE, F, RETURN_VALUE, \ API_RETURN_TYPE) \ @@ -70,7 +76,7 @@ inline JSObject* FunctionCallbackArguments::holder() { } \ VMState state(ISOLATE); \ ExternalCallbackScope call_scope(ISOLATE, FUNCTION_ADDR(F)); \ - PropertyCallbackInfo callback_info(begin()); + PropertyCallbackInfo callback_info(values_); #define CREATE_NAMED_CALLBACK(FUNCTION, TYPE, RETURN_TYPE, API_RETURN_TYPE, \ INFO_FOR_SIDE_EFFECT) \ @@ -121,7 +127,7 @@ FOR_EACH_CALLBACK(CREATE_INDEXED_CALLBACK) #undef FOR_EACH_CALLBACK #undef CREATE_INDEXED_CALLBACK -Handle FunctionCallbackArguments::Call(CallHandlerInfo* handler) { +Handle FunctionCallbackArguments::Call(CallHandlerInfo handler) { Isolate* isolate = this->isolate(); LOG(isolate, ApiObjectAccess("call", holder())); RuntimeCallTimerScope timer(isolate, RuntimeCallCounterId::kFunctionCallback); @@ -136,7 +142,7 @@ Handle FunctionCallbackArguments::Call(CallHandlerInfo* handler) { } VMState state(isolate); ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); - FunctionCallbackInfo info(begin(), argv_, argc_); + FunctionCallbackInfo info(values_, argv_, argc_); f(info); return GetReturnValue(isolate); } diff --git a/deps/v8/src/api-arguments.cc b/deps/v8/src/api-arguments.cc index 4b290d9dabb800..b706050b3064d8 100644 --- a/deps/v8/src/api-arguments.cc +++ b/deps/v8/src/api-arguments.cc @@ -10,44 +10,42 @@ namespace v8 { namespace internal { PropertyCallbackArguments::PropertyCallbackArguments(Isolate* isolate, - Object* data, Object* self, - JSObject* holder, + Object data, Object self, + JSObject holder, ShouldThrow should_throw) : Super(isolate) { - Object** values = this->begin(); - values[T::kThisIndex] = self; - values[T::kHolderIndex] = holder; - values[T::kDataIndex] = data; - values[T::kIsolateIndex] = reinterpret_cast(isolate); - values[T::kShouldThrowOnErrorIndex] = - Smi::FromInt(should_throw == kThrowOnError ? 1 : 0); + slot_at(T::kThisIndex).store(self); + slot_at(T::kHolderIndex).store(holder); + slot_at(T::kDataIndex).store(data); + slot_at(T::kIsolateIndex).store(Object(reinterpret_cast
(isolate))); + slot_at(T::kShouldThrowOnErrorIndex) + .store(Smi::FromInt(should_throw == kThrowOnError ? 1 : 0)); // Here the hole is set as default value. // It cannot escape into js as it's removed in Call below. - HeapObject* the_hole = ReadOnlyRoots(isolate).the_hole_value(); - values[T::kReturnValueDefaultValueIndex] = the_hole; - values[T::kReturnValueIndex] = the_hole; - DCHECK(values[T::kHolderIndex]->IsHeapObject()); - DCHECK(values[T::kIsolateIndex]->IsSmi()); + HeapObject the_hole = ReadOnlyRoots(isolate).the_hole_value(); + slot_at(T::kReturnValueDefaultValueIndex).store(the_hole); + slot_at(T::kReturnValueIndex).store(the_hole); + DCHECK((*slot_at(T::kHolderIndex))->IsHeapObject()); + DCHECK((*slot_at(T::kIsolateIndex))->IsSmi()); } FunctionCallbackArguments::FunctionCallbackArguments( - internal::Isolate* isolate, internal::Object* data, - internal::HeapObject* callee, internal::Object* holder, - internal::HeapObject* new_target, internal::Object** argv, int argc) + internal::Isolate* isolate, internal::Object data, + internal::HeapObject callee, internal::Object holder, + internal::HeapObject new_target, internal::Address* argv, int argc) : Super(isolate), argv_(argv), argc_(argc) { - Object** values = begin(); - values[T::kDataIndex] = data; - values[T::kHolderIndex] = holder; - values[T::kNewTargetIndex] = new_target; - values[T::kIsolateIndex] = reinterpret_cast(isolate); + slot_at(T::kDataIndex).store(data); + slot_at(T::kHolderIndex).store(holder); + slot_at(T::kNewTargetIndex).store(new_target); + slot_at(T::kIsolateIndex).store(Object(reinterpret_cast
(isolate))); // Here the hole is set as default value. // It cannot escape into js as it's remove in Call below. - HeapObject* the_hole = ReadOnlyRoots(isolate).the_hole_value(); - values[T::kReturnValueDefaultValueIndex] = the_hole; - values[T::kReturnValueIndex] = the_hole; - DCHECK(values[T::kHolderIndex]->IsHeapObject()); - DCHECK(values[T::kIsolateIndex]->IsSmi()); + HeapObject the_hole = ReadOnlyRoots(isolate).the_hole_value(); + slot_at(T::kReturnValueDefaultValueIndex).store(the_hole); + slot_at(T::kReturnValueIndex).store(the_hole); + DCHECK((*slot_at(T::kHolderIndex))->IsHeapObject()); + DCHECK((*slot_at(T::kIsolateIndex))->IsSmi()); } } // namespace internal diff --git a/deps/v8/src/api-arguments.h b/deps/v8/src/api-arguments.h index d8fc2b49ab2824..6b025bdbb358b1 100644 --- a/deps/v8/src/api-arguments.h +++ b/deps/v8/src/api-arguments.h @@ -8,6 +8,7 @@ #include "src/api.h" #include "src/debug/debug.h" #include "src/isolate.h" +#include "src/objects/slots.h" #include "src/visitors.h" namespace v8 { @@ -26,14 +27,11 @@ class CustomArguments : public CustomArgumentsBase { public: static const int kReturnValueOffset = T::kReturnValueIndex; - ~CustomArguments() override { - this->begin()[kReturnValueOffset] = - reinterpret_cast(kHandleZapValue); - } + ~CustomArguments() override; inline void IterateInstance(RootVisitor* v) override { - v->VisitRootPointers(Root::kRelocatable, nullptr, values_, - values_ + T::kArgsLength); + v->VisitRootPointers(Root::kRelocatable, nullptr, slot_at(0), + slot_at(T::kArgsLength)); } protected: @@ -44,11 +42,17 @@ class CustomArguments : public CustomArgumentsBase { Handle GetReturnValue(Isolate* isolate); inline Isolate* isolate() { - return reinterpret_cast(this->begin()[T::kIsolateIndex]); + return reinterpret_cast((*slot_at(T::kIsolateIndex)).ptr()); } - inline Object** begin() { return values_; } - Object* values_[T::kArgsLength]; + inline FullObjectSlot slot_at(int index) { + // This allows index == T::kArgsLength so "one past the end" slots + // can be retrieved for iterating purposes. + DCHECK_LE(static_cast(index), + static_cast(T::kArgsLength)); + return FullObjectSlot(values_ + index); + } + Address values_[T::kArgsLength]; }; // Note: Calling args.Call() sets the return value on args. For multiple @@ -67,8 +71,8 @@ class PropertyCallbackArguments static const int kIsolateIndex = T::kIsolateIndex; static const int kShouldThrowOnErrorIndex = T::kShouldThrowOnErrorIndex; - PropertyCallbackArguments(Isolate* isolate, Object* data, Object* self, - JSObject* holder, ShouldThrow should_throw); + PropertyCallbackArguments(Isolate* isolate, Object data, Object self, + JSObject holder, ShouldThrow should_throw); // ------------------------------------------------------------------------- // Accessor Callbacks @@ -135,8 +139,8 @@ class PropertyCallbackArguments GenericNamedPropertyGetterCallback f, Handle name, Handle info, Handle receiver = Handle()); - inline JSObject* holder(); - inline Object* receiver(); + inline JSObject holder(); + inline Object receiver(); // Don't copy PropertyCallbackArguments, because they would both have the // same prev_ pointer. @@ -156,11 +160,11 @@ class FunctionCallbackArguments static const int kIsolateIndex = T::kIsolateIndex; static const int kNewTargetIndex = T::kNewTargetIndex; - FunctionCallbackArguments(internal::Isolate* isolate, internal::Object* data, - internal::HeapObject* callee, - internal::Object* holder, - internal::HeapObject* new_target, - internal::Object** argv, int argc); + FunctionCallbackArguments(internal::Isolate* isolate, internal::Object data, + internal::HeapObject callee, + internal::Object holder, + internal::HeapObject new_target, + internal::Address* argv, int argc); /* * The following Call function wraps the calling of all callbacks to handle @@ -170,12 +174,12 @@ class FunctionCallbackArguments * and used if it's been set to anything inside the callback. * New style callbacks always use the return value. */ - inline Handle Call(CallHandlerInfo* handler); + inline Handle Call(CallHandlerInfo handler); private: - inline JSObject* holder(); + inline JSObject holder(); - internal::Object** argv_; + internal::Address* argv_; int argc_; }; diff --git a/deps/v8/src/api-inl.h b/deps/v8/src/api-inl.h index 5758729dd32e7f..024dc88537cc6f 100644 --- a/deps/v8/src/api-inl.h +++ b/deps/v8/src/api-inl.h @@ -6,13 +6,15 @@ #define V8_API_INL_H_ #include "src/api.h" +#include "src/handles-inl.h" #include "src/objects-inl.h" +#include "src/objects/foreign-inl.h" #include "src/objects/stack-frame-info.h" namespace v8 { template -inline T ToCData(v8::internal::Object* obj) { +inline T ToCData(v8::internal::Object obj) { STATIC_ASSERT(sizeof(T) == sizeof(v8::internal::Address)); if (obj == v8::internal::Smi::kZero) return nullptr; return reinterpret_cast( @@ -20,7 +22,7 @@ inline T ToCData(v8::internal::Object* obj) { } template <> -inline v8::internal::Address ToCData(v8::internal::Object* obj) { +inline v8::internal::Address ToCData(v8::internal::Object obj) { if (obj == v8::internal::Smi::kZero) return v8::internal::kNullAddress; return v8::internal::Foreign::cast(obj)->foreign_address(); } @@ -108,14 +110,17 @@ MAKE_TO_LOCAL(ScriptOrModuleToLocal, Script, ScriptOrModule) // Implementations of OpenHandle -#define MAKE_OPEN_HANDLE(From, To) \ - v8::internal::Handle Utils::OpenHandle( \ - const v8::From* that, bool allow_empty_handle) { \ - DCHECK(allow_empty_handle || that != nullptr); \ - DCHECK(that == nullptr || \ - (*reinterpret_cast(that))->Is##To()); \ - return v8::internal::Handle( \ - reinterpret_cast(const_cast(that))); \ +#define MAKE_OPEN_HANDLE(From, To) \ + v8::internal::Handle Utils::OpenHandle( \ + const v8::From* that, bool allow_empty_handle) { \ + DCHECK(allow_empty_handle || that != nullptr); \ + DCHECK(that == nullptr || \ + v8::internal::Object( \ + *reinterpret_cast(that)) \ + ->Is##To()); \ + return v8::internal::Handle( \ + reinterpret_cast( \ + const_cast(that))); \ } OPEN_HANDLE_LIST(MAKE_OPEN_HANDLE) @@ -125,12 +130,20 @@ OPEN_HANDLE_LIST(MAKE_OPEN_HANDLE) namespace internal { -Handle HandleScopeImplementer::MicrotaskContext() { - if (microtask_context_) return Handle(microtask_context_, isolate_); +Handle HandleScopeImplementer::LastEnteredContext() { + DCHECK_EQ(entered_contexts_.size(), is_microtask_context_.size()); + + for (size_t i = 0; i < entered_contexts_.size(); ++i) { + size_t j = entered_contexts_.size() - i - 1; + if (!is_microtask_context_.at(j)) { + return Handle(entered_contexts_.at(j), isolate_); + } + } + return Handle::null(); } -Handle HandleScopeImplementer::LastEnteredContext() { +Handle HandleScopeImplementer::LastEnteredOrMicrotaskContext() { if (entered_contexts_.empty()) return Handle::null(); return Handle(entered_contexts_.back(), isolate_); } diff --git a/deps/v8/src/api-natives.cc b/deps/v8/src/api-natives.cc index 11b63d56d8da2c..d0088bbf1c8f93 100644 --- a/deps/v8/src/api-natives.cc +++ b/deps/v8/src/api-natives.cc @@ -7,9 +7,10 @@ #include "src/api-inl.h" #include "src/isolate-inl.h" #include "src/lookup.h" -#include "src/messages.h" +#include "src/message-template.h" #include "src/objects/api-callbacks.h" #include "src/objects/hash-table-inl.h" +#include "src/objects/property-cell.h" #include "src/objects/templates.h" namespace v8 { @@ -161,8 +162,7 @@ class AccessCheckDisableScope { Handle obj_; }; - -Object* GetIntrinsic(Isolate* isolate, v8::Intrinsic intrinsic) { +Object GetIntrinsic(Isolate* isolate, v8::Intrinsic intrinsic) { Handle native_context = isolate->native_context(); DCHECK(!native_context.is_null()); switch (intrinsic) { @@ -172,10 +172,9 @@ Object* GetIntrinsic(Isolate* isolate, v8::Intrinsic intrinsic) { V8_INTRINSICS_LIST(GET_INTRINSIC_VALUE) #undef GET_INTRINSIC_VALUE } - return nullptr; + return Object(); } - template MaybeHandle ConfigureInstance(Isolate* isolate, Handle obj, Handle data, @@ -186,9 +185,9 @@ MaybeHandle ConfigureInstance(Isolate* isolate, Handle obj, // Walk the inheritance chain and copy all accessors to current object. int max_number_of_properties = 0; - TemplateInfoT* info = *data; - while (info != nullptr) { - Object* props = info->property_accessors(); + TemplateInfoT info = *data; + while (!info.is_null()) { + Object props = info->property_accessors(); if (!props->IsUndefined(isolate)) { max_number_of_properties += TemplateList::cast(props)->length(); } @@ -201,10 +200,10 @@ MaybeHandle ConfigureInstance(Isolate* isolate, Handle obj, Handle array = isolate->factory()->NewFixedArray(max_number_of_properties); - for (Handle temp(*data, isolate); *temp != nullptr; + for (Handle temp(*data, isolate); !temp->is_null(); temp = handle(temp->GetParent(isolate), isolate)) { // Accumulate accessors. - Object* maybe_properties = temp->property_accessors(); + Object maybe_properties = temp->property_accessors(); if (!maybe_properties->IsUndefined(isolate)) { valid_descriptors = AccessorInfo::AppendUnique( isolate, handle(maybe_properties, isolate), array, @@ -222,7 +221,7 @@ MaybeHandle ConfigureInstance(Isolate* isolate, Handle obj, } } - Object* maybe_property_list = data->property_list(); + Object maybe_property_list = data->property_list(); if (maybe_property_list->IsUndefined(isolate)) return obj; Handle properties(TemplateList::cast(maybe_property_list), isolate); @@ -231,7 +230,7 @@ MaybeHandle ConfigureInstance(Isolate* isolate, Handle obj, int i = 0; for (int c = 0; c < data->number_of_properties(); c++) { auto name = handle(Name::cast(properties->get(i++)), isolate); - Object* bit = properties->get(i++); + Object bit = properties->get(i++); if (bit->IsSmi()) { PropertyDetails details(Smi::cast(bit)); PropertyAttributes attributes = details.attributes(); @@ -347,12 +346,12 @@ void UncacheTemplateInstantiation(Isolate* isolate, int serial_number, } } -bool IsSimpleInstantiation(Isolate* isolate, ObjectTemplateInfo* info, - JSReceiver* new_target) { +bool IsSimpleInstantiation(Isolate* isolate, ObjectTemplateInfo info, + JSReceiver new_target) { DisallowHeapAllocation no_gc; if (!new_target->IsJSFunction()) return false; - JSFunction* fun = JSFunction::cast(new_target); + JSFunction fun = JSFunction::cast(new_target); if (fun->shared()->function_data() != info->constructor()) return false; if (info->immutable_proto()) return false; return fun->context()->native_context() == isolate->raw_native_context(); @@ -383,7 +382,7 @@ MaybeHandle InstantiateObject(Isolate* isolate, } if (constructor.is_null()) { - Object* maybe_constructor_info = info->constructor(); + Object maybe_constructor_info = info->constructor(); if (maybe_constructor_info->IsUndefined(isolate)) { constructor = isolate->object_function(); } else { @@ -432,7 +431,7 @@ MaybeHandle InstantiateObject(Isolate* isolate, namespace { MaybeHandle GetInstancePrototype(Isolate* isolate, - Object* function_template) { + Object function_template) { // Enter a new scope. Recursion could otherwise create a lot of handles. HandleScope scope(isolate); Handle parent_instance; @@ -467,9 +466,9 @@ MaybeHandle InstantiateFunction(Isolate* isolate, } Handle prototype; if (!data->remove_prototype()) { - Object* prototype_templ = data->prototype_template(); + Object prototype_templ = data->GetPrototypeTemplate(); if (prototype_templ->IsUndefined(isolate)) { - Object* protoype_provider_templ = data->prototype_provider_template(); + Object protoype_provider_templ = data->GetPrototypeProviderTemplate(); if (protoype_provider_templ->IsUndefined(isolate)) { prototype = isolate->factory()->NewJSObject(isolate->object_function()); } else { @@ -486,7 +485,7 @@ MaybeHandle InstantiateFunction(Isolate* isolate, Handle(), data->hidden_prototype(), true), JSFunction); } - Object* parent = data->parent_template(); + Object parent = data->GetParentTemplate(); if (!parent->IsUndefined(isolate)) { Handle parent_prototype; ASSIGN_RETURN_ON_EXCEPTION(isolate, parent_prototype, @@ -498,8 +497,8 @@ MaybeHandle InstantiateFunction(Isolate* isolate, } InstanceType function_type = (!data->needs_access_check() && - data->named_property_handler()->IsUndefined(isolate) && - data->indexed_property_handler()->IsUndefined(isolate)) + data->GetNamedPropertyHandler()->IsUndefined(isolate) && + data->GetIndexedPropertyHandler()->IsUndefined(isolate)) ? JS_API_OBJECT_TYPE : JS_SPECIAL_API_OBJECT_TYPE; @@ -526,7 +525,7 @@ MaybeHandle InstantiateFunction(Isolate* isolate, void AddPropertyToPropertyList(Isolate* isolate, Handle templ, int length, Handle* data) { - Object* maybe_list = templ->property_list(); + Object maybe_list = templ->property_list(); Handle list; if (maybe_list->IsUndefined(isolate)) { list = TemplateList::New(isolate, length); @@ -570,7 +569,8 @@ MaybeHandle ApiNatives::InstantiateRemoteObject( FunctionTemplateInfo::cast(data->constructor()), isolate); Handle object_map = isolate->factory()->NewMap( JS_SPECIAL_API_OBJECT_TYPE, - JSObject::kHeaderSize + data->embedder_field_count() * kPointerSize, + JSObject::kHeaderSize + + data->embedder_field_count() * kEmbedderDataSlotSize, TERMINAL_FAST_ELEMENTS_KIND); object_map->SetConstructor(*constructor); object_map->set_is_access_check_needed(true); @@ -620,7 +620,7 @@ void ApiNatives::AddAccessorProperty(Isolate* isolate, void ApiNatives::AddNativeDataProperty(Isolate* isolate, Handle info, Handle property) { - Object* maybe_list = info->property_accessors(); + Object maybe_list = info->property_accessors(); Handle list; if (maybe_list->IsUndefined(isolate)) { list = TemplateList::New(isolate, 1); @@ -662,7 +662,7 @@ Handle ApiNatives::CreateApiFunction( if (prototype->IsTheHole(isolate)) { prototype = isolate->factory()->NewFunctionPrototype(result); - } else if (obj->prototype_provider_template()->IsUndefined(isolate)) { + } else if (obj->GetPrototypeProviderTemplate()->IsUndefined(isolate)) { JSObject::AddProperty(isolate, Handle::cast(prototype), isolate->factory()->constructor_string(), result, DONT_ENUM); @@ -670,17 +670,17 @@ Handle ApiNatives::CreateApiFunction( int embedder_field_count = 0; bool immutable_proto = false; - if (!obj->instance_template()->IsUndefined(isolate)) { - Handle instance_template = Handle( - ObjectTemplateInfo::cast(obj->instance_template()), isolate); - embedder_field_count = instance_template->embedder_field_count(); - immutable_proto = instance_template->immutable_proto(); + if (!obj->GetInstanceTemplate()->IsUndefined(isolate)) { + Handle GetInstanceTemplate = Handle( + ObjectTemplateInfo::cast(obj->GetInstanceTemplate()), isolate); + embedder_field_count = GetInstanceTemplate->embedder_field_count(); + immutable_proto = GetInstanceTemplate->immutable_proto(); } // JS_FUNCTION_TYPE requires information about the prototype slot. DCHECK_NE(JS_FUNCTION_TYPE, type); - int instance_size = - JSObject::GetHeaderSize(type) + kPointerSize * embedder_field_count; + int instance_size = JSObject::GetHeaderSize(type) + + kEmbedderDataSlotSize * embedder_field_count; Handle map = isolate->factory()->NewMap(type, instance_size, TERMINAL_FAST_ELEMENTS_KIND); @@ -693,7 +693,7 @@ Handle ApiNatives::CreateApiFunction( // undetectable and callable. If we ever see the need to have an object // that is undetectable but not callable, we need to update the types.h // to allow encoding this. - CHECK(!obj->instance_call_handler()->IsUndefined(isolate)); + CHECK(!obj->GetInstanceCallHandler()->IsUndefined(isolate)); map->set_is_undetectable(true); } @@ -704,17 +704,18 @@ Handle ApiNatives::CreateApiFunction( } // Set interceptor information in the map. - if (!obj->named_property_handler()->IsUndefined(isolate)) { + if (!obj->GetNamedPropertyHandler()->IsUndefined(isolate)) { map->set_has_named_interceptor(true); map->set_may_have_interesting_symbols(true); } - if (!obj->indexed_property_handler()->IsUndefined(isolate)) { + if (!obj->GetIndexedPropertyHandler()->IsUndefined(isolate)) { map->set_has_indexed_interceptor(true); } // Mark instance as callable in the map. - if (!obj->instance_call_handler()->IsUndefined(isolate)) { + if (!obj->GetInstanceCallHandler()->IsUndefined(isolate)) { map->set_is_callable(true); + map->set_is_constructor(!obj->undetectable()); } if (immutable_proto) map->set_is_immutable_proto(true); diff --git a/deps/v8/src/api-natives.h b/deps/v8/src/api-natives.h index ff6cdc6c864537..9a9ae50da811e1 100644 --- a/deps/v8/src/api-natives.h +++ b/deps/v8/src/api-natives.h @@ -16,6 +16,7 @@ namespace v8 { namespace internal { // Forward declarations. +enum InstanceType : uint16_t; class ObjectTemplateInfo; class TemplateInfo; diff --git a/deps/v8/src/api.cc b/deps/v8/src/api.cc index 64676f06c1a38c..23b496706a310f 100644 --- a/deps/v8/src/api.cc +++ b/deps/v8/src/api.cc @@ -26,12 +26,13 @@ #include "src/bootstrapper.h" #include "src/builtins/builtins-utils.h" #include "src/char-predicates-inl.h" -#include "src/code-stubs.h" #include "src/compiler-dispatcher/compiler-dispatcher.h" #include "src/compiler.h" #include "src/contexts.h" #include "src/conversions-inl.h" #include "src/counters.h" +#include "src/cpu-features.h" +#include "src/date.h" #include "src/debug/debug-coverage.h" #include "src/debug/debug-evaluate.h" #include "src/debug/debug-type-profile.h" @@ -49,15 +50,23 @@ #include "src/json-parser.h" #include "src/json-stringifier.h" #include "src/messages.h" +#include "src/microtask-queue.h" #include "src/objects-inl.h" #include "src/objects/api-callbacks.h" +#include "src/objects/embedder-data-array-inl.h" +#include "src/objects/embedder-data-slot-inl.h" +#include "src/objects/hash-table-inl.h" +#include "src/objects/heap-object.h" #include "src/objects/js-array-inl.h" #include "src/objects/js-collection-inl.h" #include "src/objects/js-generator-inl.h" #include "src/objects/js-promise-inl.h" #include "src/objects/js-regexp-inl.h" #include "src/objects/module-inl.h" +#include "src/objects/oddball.h" #include "src/objects/ordered-hash-table-inl.h" +#include "src/objects/slots.h" +#include "src/objects/smi.h" #include "src/objects/stack-frame-info-inl.h" #include "src/objects/templates.h" #include "src/parsing/parse-info.h" @@ -76,15 +85,16 @@ #include "src/runtime-profiler.h" #include "src/runtime/runtime.h" #include "src/simulator.h" -#include "src/snapshot/builtin-serializer.h" #include "src/snapshot/code-serializer.h" #include "src/snapshot/natives.h" +#include "src/snapshot/partial-serializer.h" +#include "src/snapshot/read-only-serializer.h" #include "src/snapshot/snapshot.h" +#include "src/snapshot/startup-serializer.h" #include "src/startup-data-util.h" #include "src/string-hasher.h" #include "src/tracing/trace-event.h" #include "src/trap-handler/trap-handler.h" -#include "src/unicode-cache-inl.h" #include "src/unicode-inl.h" #include "src/v8.h" #include "src/v8threads.h" @@ -97,6 +107,18 @@ #include "src/wasm/wasm-result.h" #include "src/wasm/wasm-serialization.h" +#if V8_OS_LINUX || V8_OS_MACOSX +#include +#include "include/v8-wasm-trap-handler-posix.h" +#include "src/trap-handler/handler-inside-posix.h" +#endif + +#if V8_OS_WIN +#include +#include "include/v8-wasm-trap-handler-win.h" +#include "src/trap-handler/handler-inside-win.h" +#endif + namespace v8 { /* @@ -217,7 +239,7 @@ namespace v8 { namespace { Local ContextFromNeverReadOnlySpaceObject( - i::Handle obj) { + i::Handle obj) { return reinterpret_cast(obj->GetIsolate())->GetCurrentContext(); } @@ -231,10 +253,11 @@ class InternalEscapableScope : public v8::EscapableHandleScope { #ifdef V8_CHECK_MICROTASKS_SCOPES_CONSISTENCY void CheckMicrotasksScopesConsistency(i::Isolate* isolate) { auto handle_scope_implementer = isolate->handle_scope_implementer(); + auto* microtask_queue = isolate->default_microtask_queue(); if (handle_scope_implementer->microtasks_policy() == v8::MicrotasksPolicy::kScoped) { - DCHECK(handle_scope_implementer->GetMicrotasksScopeDepth() || - !handle_scope_implementer->DebugMicrotasksScopeDepthIsZero()); + DCHECK(microtask_queue->GetMicrotasksScopeDepth() || + !microtask_queue->DebugMicrotasksScopeDepthIsZero()); } } #endif @@ -253,14 +276,12 @@ class CallDepthScope { ? i::InterruptsScope::kRunInterrupts : i::InterruptsScope::kPostponeInterrupts) : i::InterruptsScope::kNoop) { - // TODO(dcarney): remove this when blink stops crashing. - DCHECK(!isolate_->external_caught_exception()); isolate_->handle_scope_implementer()->IncrementCallDepth(); isolate_->set_next_v8_call_is_safe_for_termination(false); if (!context.IsEmpty()) { i::Handle env = Utils::OpenHandle(*context); i::HandleScopeImplementer* impl = isolate->handle_scope_implementer(); - if (isolate->context() != nullptr && + if (!isolate->context().is_null() && isolate->context()->native_context() == env->native_context()) { context_ = Local(); } else { @@ -289,8 +310,10 @@ class CallDepthScope { escaped_ = true; auto handle_scope_implementer = isolate_->handle_scope_implementer(); handle_scope_implementer->DecrementCallDepth(); - bool call_depth_is_zero = handle_scope_implementer->CallDepthIsZero(); - isolate_->OptionalRescheduleException(call_depth_is_zero); + bool clear_exception = + handle_scope_implementer->CallDepthIsZero() && + isolate_->thread_local_top()->try_catch_handler() == nullptr; + isolate_->OptionalRescheduleException(clear_exception); } private: @@ -343,20 +366,19 @@ void i::V8::FatalProcessOutOfMemory(i::Isolate* isolate, const char* location, i::HeapStats heap_stats; if (isolate == nullptr) { - isolate = Isolate::Current(); + isolate = Isolate::TryGetCurrent(); } if (isolate == nullptr) { - // On a background thread -> we cannot retrieve memory information from the - // Isolate. Write easy-to-recognize values on the stack. + // If the Isolate is not available for the current thread we cannot retrieve + // memory information from the Isolate. Write easy-to-recognize values on + // the stack. memset(last_few_messages, 0x0BADC0DE, Heap::kTraceRingBufferSize + 1); memset(js_stacktrace, 0x0BADC0DE, Heap::kStacktraceBufferSize + 1); memset(&heap_stats, 0xBADC0DE, sizeof(heap_stats)); - // Note that the embedder's oom handler won't be called in this case. We - // just crash. - FATAL( - "API fatal error handler returned after process out of memory on the " - "background thread"); + // Note that the embedder's oom handler is also not available and therefore + // won't be called in this case. We just crash. + FATAL("Fatal process out of memory: %s", location); UNREACHABLE(); } @@ -387,6 +409,8 @@ void i::V8::FatalProcessOutOfMemory(i::Isolate* isolate, const char* location, heap_stats.map_space_capacity = &map_space_capacity; size_t lo_space_size; heap_stats.lo_space_size = &lo_space_size; + size_t code_lo_space_size; + heap_stats.code_lo_space_size = &code_lo_space_size; size_t global_handle_count; heap_stats.global_handle_count = &global_handle_count; size_t weak_global_handle_count; @@ -563,8 +587,8 @@ SnapshotCreator::SnapshotCreator(Isolate* isolate, SnapshotCreator::SnapshotCreator(const intptr_t* external_references, StartupData* existing_snapshot) - : SnapshotCreator(reinterpret_cast(new i::Isolate()), - external_references, existing_snapshot) {} + : SnapshotCreator(Isolate::Allocate(), external_references, + existing_snapshot) {} SnapshotCreator::~SnapshotCreator() { SnapshotCreatorData* data = SnapshotCreatorData::cast(data_); @@ -608,13 +632,13 @@ size_t SnapshotCreator::AddTemplate(Local