From 638a5c74296173d6b86d67eca74d01aaf32956e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Tue, 20 Jul 2021 16:11:08 +0200 Subject: [PATCH 01/34] deps: update V8 to 9.2.230.21 --- deps/v8/.gn | 12 +- deps/v8/AUTHORS | 3 + deps/v8/BUILD.gn | 351 +- deps/v8/DEPS | 38 +- deps/v8/OWNERS | 2 +- deps/v8/PRESUBMIT.py | 6 +- deps/v8/RISCV_OWNERS | 2 +- deps/v8/WATCHLISTS | 14 + .../trace_event/common/trace_event_common.h | 6 +- deps/v8/gni/v8.gni | 5 +- deps/v8/include/cppgc/allocation.h | 5 + .../include/cppgc/cross-thread-persistent.h | 20 +- deps/v8/include/cppgc/explicit-management.h | 17 +- deps/v8/include/cppgc/heap-statistics.h | 4 +- .../cppgc/internal/compiler-specific.h | 4 +- .../include/cppgc/internal/pointer-policies.h | 39 +- deps/v8/include/cppgc/member.h | 31 +- deps/v8/include/cppgc/persistent.h | 6 +- deps/v8/include/cppgc/sentinel-pointer.h | 2 +- deps/v8/include/cppgc/type-traits.h | 19 + deps/v8/include/js_protocol.pdl | 11 +- deps/v8/include/v8-cppgc.h | 32 + deps/v8/include/v8-fast-api-calls.h | 50 +- deps/v8/include/v8-inspector.h | 12 +- deps/v8/include/v8-internal.h | 75 +- deps/v8/include/v8-metrics.h | 29 +- deps/v8/include/v8-platform.h | 18 +- deps/v8/include/v8-profiler.h | 17 +- deps/v8/include/v8-util.h | 2 +- deps/v8/include/v8-version.h | 6 +- deps/v8/include/v8.h | 468 +- deps/v8/include/v8config.h | 14 +- deps/v8/infra/mb/mb_config.pyl | 55 +- deps/v8/infra/testing/builders.pyl | 536 +- deps/v8/samples/OWNERS | 2 +- deps/v8/samples/shell.cc | 18 +- deps/v8/src/DEPS | 2 + deps/v8/src/api/api-arguments-inl.h | 44 +- deps/v8/src/api/api-inl.h | 23 +- deps/v8/src/api/api-macros.h | 10 +- deps/v8/src/api/api-natives.cc | 102 +- deps/v8/src/api/api.cc | 877 ++- deps/v8/src/ast/ast-value-factory.cc | 16 +- deps/v8/src/ast/ast-value-factory.h | 20 +- deps/v8/src/ast/ast.cc | 26 +- deps/v8/src/ast/ast.h | 38 +- deps/v8/src/ast/modules.cc | 16 +- deps/v8/src/ast/modules.h | 12 +- deps/v8/src/ast/scopes.cc | 15 +- deps/v8/src/ast/scopes.h | 8 +- deps/v8/src/ast/variables.cc | 7 +- deps/v8/src/ast/variables.h | 5 +- deps/v8/src/base/atomicops.h | 298 +- .../src/base/atomicops_internals_portable.h | 216 - deps/v8/src/base/atomicops_internals_std.h | 224 - deps/v8/src/base/bit-field.h | 2 +- deps/v8/src/base/bits.h | 4 +- deps/v8/src/base/bounds.h | 2 +- deps/v8/src/base/cpu.cc | 2 +- deps/v8/src/base/enum-set.h | 2 +- deps/v8/src/base/hashmap.h | 4 +- deps/v8/src/base/logging.h | 6 - deps/v8/src/base/once.h | 16 +- deps/v8/src/base/optional.h | 12 +- deps/v8/src/base/platform/mutex.h | 4 +- deps/v8/src/base/platform/platform-aix.cc | 2 +- deps/v8/src/base/platform/platform-freebsd.cc | 2 +- deps/v8/src/base/platform/platform-posix.cc | 11 +- deps/v8/src/base/platform/platform-win32.cc | 2 +- deps/v8/src/base/platform/semaphore.h | 4 +- deps/v8/src/base/sanitizer/asan.h | 37 + .../sanitizer/lsan-page-allocator.cc | 2 +- .../sanitizer/lsan-page-allocator.h | 9 +- deps/v8/src/base/{ => sanitizer}/lsan.h | 12 +- deps/v8/src/base/sanitizer/msan.h | 40 + deps/v8/src/base/small-vector.h | 7 + deps/v8/src/base/template-utils.h | 9 + deps/v8/src/base/v8-fallthrough.h | 2 +- deps/v8/src/base/vlq.h | 83 +- .../baseline/arm/baseline-assembler-arm-inl.h | 12 +- .../baseline/arm/baseline-compiler-arm-inl.h | 6 +- .../arm64/baseline-assembler-arm64-inl.h | 4 +- .../arm64/baseline-compiler-arm64-inl.h | 6 +- deps/v8/src/baseline/baseline-assembler-inl.h | 7 +- deps/v8/src/baseline/baseline-assembler.h | 5 +- deps/v8/src/baseline/baseline-compiler.cc | 889 +-- deps/v8/src/baseline/baseline-compiler.h | 34 +- deps/v8/src/baseline/baseline-osr-inl.h | 38 + deps/v8/src/baseline/baseline.cc | 38 +- deps/v8/src/baseline/baseline.h | 2 + .../ia32/baseline-assembler-ia32-inl.h | 8 +- .../ia32/baseline-compiler-ia32-inl.h | 6 +- .../riscv64/baseline-assembler-riscv64-inl.h | 615 ++ .../riscv64/baseline-compiler-riscv64-inl.h | 112 + .../baseline/x64/baseline-assembler-x64-inl.h | 11 +- .../baseline/x64/baseline-compiler-x64-inl.h | 6 +- deps/v8/src/bigint/bigint-internal.cc | 43 + deps/v8/src/bigint/bigint-internal.h | 65 + deps/v8/src/bigint/bigint.h | 108 + deps/v8/src/bigint/digit-arithmetic.h | 87 + deps/v8/src/bigint/mul-schoolbook.cc | 99 + deps/v8/src/bigint/vector-arithmetic.cc | 2 +- deps/v8/src/bigint/vector-arithmetic.h | 20 + deps/v8/src/builtins/accessors.cc | 34 +- deps/v8/src/builtins/aggregate-error.tq | 7 +- deps/v8/src/builtins/arm/builtins-arm.cc | 52 +- deps/v8/src/builtins/arm64/builtins-arm64.cc | 58 +- deps/v8/src/builtins/arraybuffer.tq | 105 +- deps/v8/src/builtins/base.tq | 10 +- deps/v8/src/builtins/builtins-api.cc | 6 +- deps/v8/src/builtins/builtins-array-gen.cc | 1 + deps/v8/src/builtins/builtins-array.cc | 65 +- deps/v8/src/builtins/builtins-arraybuffer.cc | 249 +- deps/v8/src/builtins/builtins-call-gen.cc | 103 +- deps/v8/src/builtins/builtins-call-gen.h | 7 + deps/v8/src/builtins/builtins-debug-gen.cc | 22 - deps/v8/src/builtins/builtins-definitions.h | 46 +- deps/v8/src/builtins/builtins-error.cc | 5 +- .../v8/src/builtins/builtins-generator-gen.cc | 2 +- deps/v8/src/builtins/builtins-handler-gen.cc | 55 +- deps/v8/src/builtins/builtins-ic-gen.cc | 273 +- deps/v8/src/builtins/builtins-internal-gen.cc | 40 +- deps/v8/src/builtins/builtins-intl.cc | 43 + deps/v8/src/builtins/builtins-lazy-gen.cc | 15 +- .../builtins/builtins-microtask-queue-gen.cc | 3 +- deps/v8/src/builtins/builtins-regexp-gen.cc | 31 +- deps/v8/src/builtins/builtins-trace.cc | 1 + .../src/builtins/builtins-typed-array-gen.cc | 69 +- deps/v8/src/builtins/builtins-typed-array.cc | 3 +- deps/v8/src/builtins/builtins-utils.h | 3 +- deps/v8/src/builtins/builtins-wasm-gen.cc | 1 - deps/v8/src/builtins/cast.tq | 18 + deps/v8/src/builtins/constructor.tq | 11 + deps/v8/src/builtins/conversion.tq | 21 +- deps/v8/src/builtins/ia32/builtins-ia32.cc | 65 +- deps/v8/src/builtins/ic-callable.tq | 73 +- deps/v8/src/builtins/ic.tq | 9 +- deps/v8/src/builtins/iterator.tq | 12 +- deps/v8/src/builtins/mips/builtins-mips.cc | 37 +- .../v8/src/builtins/mips64/builtins-mips64.cc | 49 +- deps/v8/src/builtins/ppc/builtins-ppc.cc | 241 +- .../src/builtins/riscv64/builtins-riscv64.cc | 460 +- deps/v8/src/builtins/s390/builtins-s390.cc | 51 +- .../src/builtins/setup-builtins-internal.cc | 16 +- .../builtins/typed-array-createtypedarray.tq | 72 +- deps/v8/src/builtins/wasm.tq | 5 +- deps/v8/src/builtins/x64/builtins-x64.cc | 194 +- deps/v8/src/codegen/arm/assembler-arm-inl.h | 2 +- deps/v8/src/codegen/arm/assembler-arm.cc | 148 +- deps/v8/src/codegen/arm/assembler-arm.h | 77 +- deps/v8/src/codegen/arm/cpu-arm.cc | 2 +- .../arm/interface-descriptors-arm-inl.h | 256 + .../codegen/arm/interface-descriptors-arm.cc | 306 - .../v8/src/codegen/arm/macro-assembler-arm.cc | 98 +- deps/v8/src/codegen/arm/macro-assembler-arm.h | 27 +- .../src/codegen/arm64/assembler-arm64-inl.h | 8 +- deps/v8/src/codegen/arm64/assembler-arm64.h | 6 +- deps/v8/src/codegen/arm64/cpu-arm64.cc | 9 +- .../arm64/interface-descriptors-arm64-inl.h | 265 + .../arm64/interface-descriptors-arm64.cc | 310 -- .../codegen/arm64/macro-assembler-arm64-inl.h | 10 +- .../codegen/arm64/macro-assembler-arm64.cc | 112 +- .../src/codegen/arm64/macro-assembler-arm64.h | 27 +- deps/v8/src/codegen/arm64/register-arm64.h | 10 +- deps/v8/src/codegen/assembler.cc | 4 +- deps/v8/src/codegen/assembler.h | 27 +- deps/v8/src/codegen/bailout-reason.h | 1 + deps/v8/src/codegen/code-factory.cc | 48 +- deps/v8/src/codegen/code-factory.h | 11 +- deps/v8/src/codegen/code-stub-assembler.cc | 311 +- deps/v8/src/codegen/code-stub-assembler.h | 69 +- deps/v8/src/codegen/compilation-cache.cc | 68 +- deps/v8/src/codegen/compilation-cache.h | 33 +- deps/v8/src/codegen/compiler.cc | 325 +- deps/v8/src/codegen/compiler.h | 9 +- deps/v8/src/codegen/constants-arch.h | 18 +- deps/v8/src/codegen/cpu-features.h | 3 + .../src/codegen/external-reference-table.cc | 131 +- .../v8/src/codegen/external-reference-table.h | 33 +- deps/v8/src/codegen/external-reference.cc | 8 +- deps/v8/src/codegen/external-reference.h | 10 +- deps/v8/src/codegen/handler-table.h | 4 +- deps/v8/src/codegen/ia32/assembler-ia32.cc | 77 +- deps/v8/src/codegen/ia32/assembler-ia32.h | 17 +- .../ia32/interface-descriptors-ia32-inl.h | 267 + .../ia32/interface-descriptors-ia32.cc | 318 -- .../src/codegen/ia32/macro-assembler-ia32.cc | 144 +- .../src/codegen/ia32/macro-assembler-ia32.h | 236 +- .../src/codegen/interface-descriptors-inl.h | 484 ++ deps/v8/src/codegen/interface-descriptors.cc | 561 +- deps/v8/src/codegen/interface-descriptors.h | 1384 ++--- deps/v8/src/codegen/machine-type.cc | 2 + deps/v8/src/codegen/machine-type.h | 29 +- deps/v8/src/codegen/macro-assembler.h | 6 +- deps/v8/src/codegen/mips/assembler-mips.cc | 18 +- deps/v8/src/codegen/mips/assembler-mips.h | 2 +- .../mips/interface-descriptors-mips-inl.h | 258 + .../mips/interface-descriptors-mips.cc | 332 -- .../src/codegen/mips/macro-assembler-mips.cc | 103 +- .../src/codegen/mips/macro-assembler-mips.h | 27 +- .../v8/src/codegen/mips64/assembler-mips64.cc | 18 +- .../mips64/interface-descriptors-mips64-inl.h | 258 + .../mips64/interface-descriptors-mips64.cc | 332 -- .../codegen/mips64/macro-assembler-mips64.cc | 103 +- .../codegen/mips64/macro-assembler-mips64.h | 27 +- .../src/codegen/optimized-compilation-info.cc | 16 +- .../src/codegen/optimized-compilation-info.h | 31 +- deps/v8/src/codegen/ppc/assembler-ppc.cc | 22 +- deps/v8/src/codegen/ppc/assembler-ppc.h | 7 +- deps/v8/src/codegen/ppc/constants-ppc.h | 42 +- .../ppc/interface-descriptors-ppc-inl.h | 256 + .../codegen/ppc/interface-descriptors-ppc.cc | 306 - .../v8/src/codegen/ppc/macro-assembler-ppc.cc | 279 +- deps/v8/src/codegen/ppc/macro-assembler-ppc.h | 72 +- deps/v8/src/codegen/register-arch.h | 21 + deps/v8/src/codegen/register.h | 4 +- deps/v8/src/codegen/reloc-info.cc | 39 +- deps/v8/src/codegen/reloc-info.h | 4 +- .../codegen/riscv64/assembler-riscv64-inl.h | 32 +- .../src/codegen/riscv64/assembler-riscv64.cc | 146 +- .../src/codegen/riscv64/assembler-riscv64.h | 80 +- .../src/codegen/riscv64/constants-riscv64.cc | 5 +- .../src/codegen/riscv64/constants-riscv64.h | 15 +- .../interface-descriptors-riscv64-inl.h | 265 + .../riscv64/interface-descriptors-riscv64.cc | 313 -- .../riscv64/macro-assembler-riscv64.cc | 367 +- .../codegen/riscv64/macro-assembler-riscv64.h | 59 +- .../v8/src/codegen/riscv64/register-riscv64.h | 2 +- deps/v8/src/codegen/s390/assembler-s390.cc | 4 + .../s390/interface-descriptors-s390-inl.h | 256 + .../s390/interface-descriptors-s390.cc | 306 - .../src/codegen/s390/macro-assembler-s390.cc | 155 +- .../src/codegen/s390/macro-assembler-s390.h | 41 +- deps/v8/src/codegen/safepoint-table.cc | 58 +- deps/v8/src/codegen/safepoint-table.h | 43 +- .../macro-assembler-shared-ia32-x64.cc | 195 + .../macro-assembler-shared-ia32-x64.h | 221 +- deps/v8/src/codegen/signature.h | 8 + deps/v8/src/codegen/source-position-table.cc | 4 +- deps/v8/src/codegen/source-position-table.h | 4 +- deps/v8/src/codegen/string-constants.cc | 3 +- deps/v8/src/codegen/turbo-assembler.cc | 7 - deps/v8/src/codegen/turbo-assembler.h | 33 +- deps/v8/src/codegen/x64/assembler-x64.cc | 66 +- deps/v8/src/codegen/x64/assembler-x64.h | 11 +- .../x64/interface-descriptors-x64-inl.h | 258 + .../codegen/x64/interface-descriptors-x64.cc | 309 -- .../v8/src/codegen/x64/macro-assembler-x64.cc | 363 +- deps/v8/src/codegen/x64/macro-assembler-x64.h | 178 +- deps/v8/src/codegen/x64/register-x64.h | 6 +- deps/v8/src/common/external-pointer-inl.h | 21 +- deps/v8/src/common/external-pointer.h | 4 +- deps/v8/src/common/globals.h | 41 +- deps/v8/src/common/message-template.h | 5 +- deps/v8/src/common/ptr-compr-inl.h | 24 +- .../compiler-dispatcher.cc | 9 +- .../optimizing-compile-dispatcher.cc | 17 +- .../optimizing-compile-dispatcher.h | 3 +- deps/v8/src/compiler/OWNERS | 6 +- deps/v8/src/compiler/access-builder.cc | 14 +- deps/v8/src/compiler/access-builder.h | 6 +- deps/v8/src/compiler/access-info.cc | 260 +- deps/v8/src/compiler/access-info.h | 32 +- .../compiler/add-type-assertions-reducer.cc | 4 +- .../backend/arm/code-generator-arm.cc | 27 +- .../backend/arm/instruction-selector-arm.cc | 8 + .../backend/arm64/code-generator-arm64.cc | 27 +- .../arm64/instruction-selector-arm64.cc | 14 + .../v8/src/compiler/backend/code-generator.cc | 8 +- .../backend/ia32/code-generator-ia32.cc | 215 +- .../backend/ia32/instruction-codes-ia32.h | 6 +- .../ia32/instruction-scheduler-ia32.cc | 6 +- .../backend/ia32/instruction-selector-ia32.cc | 85 +- .../compiler/backend/instruction-scheduler.h | 6 +- .../backend/instruction-selector-impl.h | 10 +- .../compiler/backend/instruction-selector.cc | 30 +- .../compiler/backend/instruction-selector.h | 3 + deps/v8/src/compiler/backend/instruction.cc | 7 +- deps/v8/src/compiler/backend/instruction.h | 20 +- .../backend/mid-tier-register-allocator.cc | 44 +- .../backend/mips/code-generator-mips.cc | 85 +- .../mips/instruction-scheduler-mips.cc | 4 +- .../backend/mips/instruction-selector-mips.cc | 15 +- .../backend/mips64/code-generator-mips64.cc | 61 +- .../mips64/instruction-scheduler-mips64.cc | 4 +- .../mips64/instruction-selector-mips64.cc | 19 +- deps/v8/src/compiler/backend/ppc/OWNERS | 5 - .../backend/ppc/code-generator-ppc.cc | 207 +- .../backend/ppc/instruction-codes-ppc.h | 6 - .../backend/ppc/instruction-scheduler-ppc.cc | 6 - .../backend/ppc/instruction-selector-ppc.cc | 8 + .../compiler/backend/register-allocation.h | 1 + .../backend/register-allocator-verifier.cc | 22 +- .../backend/register-allocator-verifier.h | 2 +- .../compiler/backend/register-allocator.cc | 48 +- .../src/compiler/backend/register-allocator.h | 3 - .../backend/riscv64/code-generator-riscv64.cc | 112 +- .../riscv64/instruction-codes-riscv64.h | 1 + .../riscv64/instruction-scheduler-riscv64.cc | 5 +- .../riscv64/instruction-selector-riscv64.cc | 22 +- .../backend/s390/code-generator-s390.cc | 165 +- .../backend/s390/instruction-selector-s390.cc | 11 +- .../backend/x64/code-generator-x64.cc | 230 +- .../backend/x64/instruction-codes-x64.h | 1 + .../backend/x64/instruction-scheduler-x64.cc | 1 + .../backend/x64/instruction-selector-x64.cc | 91 +- .../v8/src/compiler/bytecode-graph-builder.cc | 136 +- deps/v8/src/compiler/code-assembler.cc | 41 +- deps/v8/src/compiler/code-assembler.h | 19 +- .../src/compiler/common-operator-reducer.cc | 10 +- deps/v8/src/compiler/common-operator.h | 17 +- .../src/compiler/compilation-dependencies.cc | 22 +- .../src/compiler/compilation-dependencies.h | 4 + .../src/compiler/constant-folding-reducer.cc | 3 +- deps/v8/src/compiler/dead-code-elimination.cc | 8 +- deps/v8/src/compiler/dead-code-elimination.h | 5 +- .../src/compiler/decompression-optimizer.cc | 7 +- .../src/compiler/effect-control-linearizer.cc | 127 +- .../src/compiler/effect-control-linearizer.h | 15 +- deps/v8/src/compiler/globals.h | 21 +- deps/v8/src/compiler/graph-assembler.cc | 66 + deps/v8/src/compiler/graph-assembler.h | 24 + deps/v8/src/compiler/graph-reducer.cc | 4 +- deps/v8/src/compiler/graph-visualizer.cc | 7 +- deps/v8/src/compiler/graph-visualizer.h | 3 +- deps/v8/src/compiler/graph.h | 2 +- deps/v8/src/compiler/heap-refs.cc | 4594 +++++++++++++++ deps/v8/src/compiler/heap-refs.h | 297 +- deps/v8/src/compiler/int64-lowering.cc | 33 +- deps/v8/src/compiler/js-call-reducer.cc | 318 +- .../src/compiler/js-context-specialization.cc | 25 +- deps/v8/src/compiler/js-create-lowering.cc | 120 +- deps/v8/src/compiler/js-create-lowering.h | 11 +- deps/v8/src/compiler/js-generic-lowering.cc | 7 +- deps/v8/src/compiler/js-graph.cc | 3 +- deps/v8/src/compiler/js-graph.h | 7 +- deps/v8/src/compiler/js-heap-broker.cc | 4938 +---------------- deps/v8/src/compiler/js-heap-broker.h | 173 +- deps/v8/src/compiler/js-heap-copy-reducer.cc | 43 +- deps/v8/src/compiler/js-inlining-heuristic.cc | 4 +- deps/v8/src/compiler/js-inlining.cc | 7 +- deps/v8/src/compiler/js-intrinsic-lowering.cc | 20 +- deps/v8/src/compiler/js-intrinsic-lowering.h | 1 + .../js-native-context-specialization.cc | 132 +- deps/v8/src/compiler/js-operator.cc | 10 +- deps/v8/src/compiler/js-operator.h | 84 +- deps/v8/src/compiler/js-typed-lowering.cc | 28 +- deps/v8/src/compiler/load-elimination.cc | 3 + deps/v8/src/compiler/loop-analysis.cc | 25 +- .../v8/src/compiler/machine-graph-verifier.cc | 1 + deps/v8/src/compiler/machine-operator.cc | 10 + deps/v8/src/compiler/machine-operator.h | 55 +- deps/v8/src/compiler/map-inference.cc | 8 +- deps/v8/src/compiler/memory-lowering.cc | 95 +- deps/v8/src/compiler/memory-lowering.h | 1 + deps/v8/src/compiler/memory-optimizer.cc | 39 +- deps/v8/src/compiler/memory-optimizer.h | 2 + deps/v8/src/compiler/node-matchers.h | 9 +- deps/v8/src/compiler/node-observer.h | 2 +- deps/v8/src/compiler/node-properties.h | 10 +- deps/v8/src/compiler/opcodes.h | 14 +- deps/v8/src/compiler/operation-typer.cc | 11 +- deps/v8/src/compiler/operator.h | 2 +- deps/v8/src/compiler/pipeline.cc | 204 +- deps/v8/src/compiler/processed-feedback.h | 8 +- .../src/compiler/property-access-builder.cc | 27 +- deps/v8/src/compiler/raw-machine-assembler.cc | 7 +- deps/v8/src/compiler/raw-machine-assembler.h | 47 +- deps/v8/src/compiler/refs-map.cc | 4 + deps/v8/src/compiler/refs-map.h | 1 + deps/v8/src/compiler/representation-change.cc | 33 +- deps/v8/src/compiler/representation-change.h | 11 +- .../compiler/scheduled-machine-lowering.cc | 68 - .../src/compiler/scheduled-machine-lowering.h | 51 - deps/v8/src/compiler/scheduler.cc | 156 +- deps/v8/src/compiler/scheduler.h | 7 +- deps/v8/src/compiler/select-lowering.cc | 10 +- .../serializer-for-background-compilation.cc | 216 +- deps/v8/src/compiler/simd-scalar-lowering.cc | 2829 ---------- deps/v8/src/compiler/simd-scalar-lowering.h | 150 - deps/v8/src/compiler/simplified-lowering.cc | 207 +- .../compiler/simplified-operator-reducer.cc | 7 +- deps/v8/src/compiler/simplified-operator.cc | 38 +- deps/v8/src/compiler/simplified-operator.h | 44 +- .../src/compiler/store-store-elimination.cc | 4 +- deps/v8/src/compiler/type-cache.h | 18 +- .../v8/src/compiler/type-narrowing-reducer.cc | 8 +- deps/v8/src/compiler/type-narrowing-reducer.h | 1 + deps/v8/src/compiler/typed-optimization.cc | 2 +- deps/v8/src/compiler/typer.cc | 6 +- deps/v8/src/compiler/types.cc | 13 +- deps/v8/src/compiler/types.h | 6 +- deps/v8/src/compiler/verifier.cc | 27 +- deps/v8/src/compiler/wasm-compiler.cc | 404 +- deps/v8/src/compiler/wasm-compiler.h | 5 +- deps/v8/src/d8/async-hooks-wrapper.cc | 6 +- deps/v8/src/d8/d8-console.cc | 5 +- deps/v8/src/d8/d8-posix.cc | 132 +- deps/v8/src/d8/d8-test.cc | 200 +- deps/v8/src/d8/d8.cc | 217 +- deps/v8/src/d8/d8.h | 12 +- deps/v8/src/debug/arm/debug-arm.cc | 57 - deps/v8/src/debug/arm64/debug-arm64.cc | 58 - deps/v8/src/debug/debug-coverage.cc | 3 +- deps/v8/src/debug/debug-evaluate.cc | 29 +- deps/v8/src/debug/debug-evaluate.h | 4 + deps/v8/src/debug/debug-frames.cc | 17 +- deps/v8/src/debug/debug-frames.h | 3 +- deps/v8/src/debug/debug-interface.cc | 67 + deps/v8/src/debug/debug-interface.h | 31 +- deps/v8/src/debug/debug-scopes.cc | 8 +- .../src/debug/debug-stack-trace-iterator.cc | 8 - .../v8/src/debug/debug-stack-trace-iterator.h | 1 - deps/v8/src/debug/debug-wasm-objects.cc | 117 +- deps/v8/src/debug/debug-wasm-objects.h | 11 +- deps/v8/src/debug/debug.cc | 65 +- deps/v8/src/debug/debug.h | 32 - deps/v8/src/debug/ia32/debug-ia32.cc | 54 - deps/v8/src/debug/liveedit.cc | 289 +- deps/v8/src/debug/liveedit.h | 7 - deps/v8/src/debug/mips/debug-mips.cc | 55 - deps/v8/src/debug/mips64/debug-mips64.cc | 55 - deps/v8/src/debug/ppc/OWNERS | 5 - deps/v8/src/debug/ppc/debug-ppc.cc | 53 - deps/v8/src/debug/riscv64/debug-riscv64.cc | 55 - deps/v8/src/debug/s390/debug-s390.cc | 55 - deps/v8/src/debug/x64/debug-x64.cc | 55 - .../deoptimizer/deoptimizer-cfi-builtins.cc | 8 +- deps/v8/src/deoptimizer/deoptimizer.cc | 17 +- .../riscv64/deoptimizer-riscv64.cc | 6 +- deps/v8/src/deoptimizer/translated-state.cc | 4 +- .../src/diagnostics/compilation-statistics.cc | 5 +- deps/v8/src/diagnostics/disassembler.cc | 13 +- deps/v8/src/diagnostics/eh-frame.cc | 6 +- deps/v8/src/diagnostics/eh-frame.h | 8 +- deps/v8/src/diagnostics/ia32/disasm-ia32.cc | 5 +- deps/v8/src/diagnostics/objects-debug.cc | 31 +- deps/v8/src/diagnostics/objects-printer.cc | 341 +- deps/v8/src/diagnostics/perf-jit.cc | 1 - deps/v8/src/diagnostics/ppc/disasm-ppc.cc | 36 +- .../src/diagnostics/riscv64/disasm-riscv64.cc | 25 +- .../src/diagnostics/system-jit-metadata-win.h | 3 + deps/v8/src/diagnostics/system-jit-win.cc | 4 + .../src/diagnostics/unwinding-info-win64.cc | 78 +- deps/v8/src/execution/arguments.h | 45 +- deps/v8/src/execution/arm/simulator-arm.cc | 696 +-- deps/v8/src/execution/arm/simulator-arm.h | 9 +- .../v8/src/execution/arm64/simulator-arm64.cc | 2 +- deps/v8/src/execution/execution.cc | 16 +- .../v8/src/execution/external-pointer-table.h | 9 +- deps/v8/src/execution/frame-constants.h | 18 +- deps/v8/src/execution/frames.cc | 41 +- deps/v8/src/execution/frames.h | 7 +- deps/v8/src/execution/isolate-data.h | 32 +- deps/v8/src/execution/isolate-utils-inl.h | 19 +- deps/v8/src/execution/isolate.cc | 289 +- deps/v8/src/execution/isolate.h | 136 +- deps/v8/src/execution/local-isolate-inl.h | 2 +- deps/v8/src/execution/local-isolate.h | 5 +- deps/v8/src/execution/messages.cc | 45 +- deps/v8/src/execution/messages.h | 7 +- deps/v8/src/execution/microtask-queue.cc | 10 + deps/v8/src/execution/mips/simulator-mips.cc | 2 +- .../src/execution/mips64/simulator-mips64.cc | 2 +- deps/v8/src/execution/ppc/simulator-ppc.cc | 52 +- deps/v8/src/execution/ppc/simulator-ppc.h | 12 + deps/v8/src/execution/protectors.h | 2 + .../execution/riscv64/simulator-riscv64.cc | 39 +- .../src/execution/riscv64/simulator-riscv64.h | 1 + deps/v8/src/execution/runtime-profiler.cc | 15 +- deps/v8/src/execution/s390/simulator-s390.cc | 96 +- .../shared-mutex-guard-if-off-thread.h | 2 +- deps/v8/src/execution/stack-guard.cc | 1 + .../src/extensions/cputracemark-extension.cc | 5 +- .../externalize-string-extension.cc | 21 +- .../vtunedomain-support-extension.cc | 7 +- deps/v8/src/flags/flag-definitions.h | 144 +- deps/v8/src/flags/flags.cc | 2 + deps/v8/src/handles/global-handles.cc | 23 +- deps/v8/src/handles/handles-inl.h | 2 +- deps/v8/src/handles/local-handles-inl.h | 2 +- deps/v8/src/heap/array-buffer-sweeper.cc | 55 +- deps/v8/src/heap/array-buffer-sweeper.h | 9 +- .../base/asm/riscv64/push_registers_asm.cc | 34 +- .../heap/base/asm/x64/push_registers_asm.cc | 16 +- .../heap/base/asm/x64/push_registers_masm.S | 18 +- deps/v8/src/heap/base/stack.cc | 17 +- deps/v8/src/heap/base/stack.h | 14 +- deps/v8/src/heap/basic-memory-chunk.h | 7 + deps/v8/src/heap/code-range.cc | 172 + deps/v8/src/heap/code-range.h | 147 + deps/v8/src/heap/collection-barrier.cc | 3 +- deps/v8/src/heap/combined-heap.h | 3 +- deps/v8/src/heap/concurrent-allocator-inl.h | 1 + deps/v8/src/heap/concurrent-marking.cc | 31 +- deps/v8/src/heap/cppgc-js/cpp-heap.cc | 115 +- deps/v8/src/heap/cppgc-js/cpp-heap.h | 9 + deps/v8/src/heap/cppgc-js/cpp-snapshot.cc | 10 +- .../cppgc-js/unified-heap-marking-verifier.cc | 11 +- .../cppgc-js/unified-heap-marking-verifier.h | 2 - deps/v8/src/heap/cppgc/caged-heap.cc | 23 +- deps/v8/src/heap/cppgc/compactor.cc | 21 +- deps/v8/src/heap/cppgc/concurrent-marker.cc | 2 +- deps/v8/src/heap/cppgc/explicit-management.cc | 67 +- deps/v8/src/heap/cppgc/free-list.cc | 12 +- deps/v8/src/heap/cppgc/gc-info-table.cc | 5 +- deps/v8/src/heap/cppgc/heap-base.cc | 32 +- deps/v8/src/heap/cppgc/heap-base.h | 30 +- deps/v8/src/heap/cppgc/heap-object-header.cc | 8 +- deps/v8/src/heap/cppgc/heap-object-header.h | 43 +- deps/v8/src/heap/cppgc/heap-page.cc | 5 + deps/v8/src/heap/cppgc/heap-page.h | 22 +- .../heap/cppgc/heap-statistics-collector.cc | 2 +- deps/v8/src/heap/cppgc/heap.cc | 4 +- deps/v8/src/heap/cppgc/liveness-broker.cc | 2 +- deps/v8/src/heap/cppgc/marker.cc | 42 +- deps/v8/src/heap/cppgc/marking-state.h | 41 +- deps/v8/src/heap/cppgc/marking-verifier.cc | 61 +- deps/v8/src/heap/cppgc/marking-verifier.h | 14 +- deps/v8/src/heap/cppgc/marking-visitor.cc | 2 +- deps/v8/src/heap/cppgc/memory.cc | 22 + deps/v8/src/heap/cppgc/memory.h | 76 + deps/v8/src/heap/cppgc/metric-recorder.h | 2 +- deps/v8/src/heap/cppgc/object-allocator.cc | 2 +- deps/v8/src/heap/cppgc/object-allocator.h | 10 +- deps/v8/src/heap/cppgc/object-poisoner.h | 4 +- deps/v8/src/heap/cppgc/object-size-trait.cc | 7 +- deps/v8/src/heap/cppgc/object-view.h | 54 + deps/v8/src/heap/cppgc/page-memory.cc | 2 +- deps/v8/src/heap/cppgc/pointer-policies.cc | 59 +- .../src/heap/cppgc/process-heap-statistics.h | 2 +- deps/v8/src/heap/cppgc/process-heap.cc | 56 + deps/v8/src/heap/cppgc/process-heap.h | 35 + deps/v8/src/heap/cppgc/sanitizers.h | 82 - deps/v8/src/heap/cppgc/stats-collector.h | 4 +- deps/v8/src/heap/cppgc/sweeper.cc | 81 +- deps/v8/src/heap/cppgc/sweeper.h | 4 + deps/v8/src/heap/cppgc/trace-trait.cc | 7 +- deps/v8/src/heap/cppgc/visitor.cc | 21 +- deps/v8/src/heap/embedder-tracing.cc | 34 +- deps/v8/src/heap/embedder-tracing.h | 42 +- deps/v8/src/heap/factory-base-inl.h | 26 +- deps/v8/src/heap/factory-base.cc | 121 +- deps/v8/src/heap/factory-base.h | 9 +- deps/v8/src/heap/factory.cc | 245 +- deps/v8/src/heap/factory.h | 19 +- .../finalization-registry-cleanup-task.cc | 15 +- deps/v8/src/heap/free-list.cc | 21 +- deps/v8/src/heap/gc-tracer.cc | 32 +- deps/v8/src/heap/gc-tracer.h | 6 + deps/v8/src/heap/heap-inl.h | 89 +- deps/v8/src/heap/heap-write-barrier.cc | 11 +- deps/v8/src/heap/heap.cc | 550 +- deps/v8/src/heap/heap.h | 127 +- deps/v8/src/heap/incremental-marking.cc | 43 +- deps/v8/src/heap/large-spaces.cc | 6 +- deps/v8/src/heap/large-spaces.h | 1 + deps/v8/src/heap/local-allocator.h | 2 +- deps/v8/src/heap/local-heap-inl.h | 2 + deps/v8/src/heap/local-heap.cc | 2 +- deps/v8/src/heap/mark-compact-inl.h | 8 +- deps/v8/src/heap/mark-compact.cc | 161 +- deps/v8/src/heap/mark-compact.h | 7 +- deps/v8/src/heap/marking-barrier-inl.h | 10 +- deps/v8/src/heap/marking-visitor-inl.h | 6 +- deps/v8/src/heap/marking-visitor.h | 9 +- deps/v8/src/heap/memory-allocator.cc | 112 +- deps/v8/src/heap/memory-allocator.h | 68 +- deps/v8/src/heap/memory-chunk.cc | 3 + deps/v8/src/heap/memory-measurement.cc | 2 +- deps/v8/src/heap/new-spaces-inl.h | 8 +- deps/v8/src/heap/new-spaces.cc | 9 +- deps/v8/src/heap/object-stats.cc | 2 +- deps/v8/src/heap/objects-visiting-inl.h | 7 +- deps/v8/src/heap/objects-visiting.h | 7 +- deps/v8/src/heap/paged-spaces-inl.h | 3 + deps/v8/src/heap/paged-spaces.cc | 6 +- deps/v8/src/heap/read-only-heap.cc | 4 + deps/v8/src/heap/read-only-heap.h | 5 +- deps/v8/src/heap/read-only-spaces.cc | 40 +- deps/v8/src/heap/read-only-spaces.h | 3 + deps/v8/src/heap/scavenger-inl.h | 20 +- deps/v8/src/heap/scavenger.cc | 18 +- deps/v8/src/heap/setup-heap-internal.cc | 32 +- deps/v8/src/heap/spaces-inl.h | 3 +- deps/v8/src/heap/spaces.cc | 2 +- deps/v8/src/heap/spaces.h | 3 + deps/v8/src/heap/sweeper.cc | 6 +- deps/v8/src/heap/third-party/heap-api-stub.cc | 6 + deps/v8/src/heap/third-party/heap-api.h | 6 + deps/v8/src/ic/accessor-assembler.cc | 265 +- deps/v8/src/ic/accessor-assembler.h | 6 + deps/v8/src/ic/call-optimization.cc | 40 +- deps/v8/src/ic/call-optimization.h | 29 +- deps/v8/src/ic/ic.cc | 97 +- deps/v8/src/ic/ic.h | 5 +- deps/v8/src/ic/keyed-store-generic.cc | 6 +- deps/v8/src/init/bootstrapper.cc | 195 +- deps/v8/src/init/heap-symbols.h | 451 +- deps/v8/src/init/isolate-allocator.cc | 238 +- deps/v8/src/init/isolate-allocator.h | 39 +- deps/v8/src/init/v8.cc | 23 + deps/v8/src/inspector/injected-script.cc | 3 +- deps/v8/src/inspector/injected-script.h | 3 +- deps/v8/src/inspector/string-16.h | 4 +- deps/v8/src/inspector/v8-console-message.cc | 2 +- deps/v8/src/inspector/v8-console.cc | 94 +- .../src/inspector/v8-debugger-agent-impl.cc | 18 +- deps/v8/src/inspector/v8-debugger.cc | 2 +- .../inspector/v8-heap-profiler-agent-impl.cc | 15 +- .../inspector/v8-heap-profiler-agent-impl.h | 9 +- .../inspector/v8-inspector-session-impl.cc | 14 + .../src/inspector/v8-inspector-session-impl.h | 3 + .../src/inspector/v8-profiler-agent-impl.cc | 9 +- .../v8/src/inspector/v8-runtime-agent-impl.cc | 19 +- deps/v8/src/inspector/v8-runtime-agent-impl.h | 3 +- deps/v8/src/inspector/v8-stack-trace-impl.cc | 17 +- deps/v8/src/inspector/v8-stack-trace-impl.h | 5 +- .../v8/src/inspector/v8-string-conversions.cc | 7 +- deps/v8/src/inspector/value-mirror.cc | 69 +- .../src/interpreter/bytecode-array-builder.cc | 57 +- .../src/interpreter/bytecode-array-builder.h | 8 +- .../interpreter/bytecode-array-iterator.cc | 8 +- .../src/interpreter/bytecode-array-iterator.h | 8 +- .../src/interpreter/bytecode-array-writer.cc | 8 +- .../src/interpreter/bytecode-array-writer.h | 10 +- deps/v8/src/interpreter/bytecode-generator.cc | 45 +- deps/v8/src/interpreter/bytecode-generator.h | 16 +- deps/v8/src/interpreter/bytecode-operands.h | 2 - deps/v8/src/interpreter/bytecodes.h | 75 +- .../src/interpreter/constant-array-builder.cc | 17 +- .../src/interpreter/constant-array-builder.h | 16 +- .../src/interpreter/handler-table-builder.cc | 4 +- .../src/interpreter/handler-table-builder.h | 4 +- .../src/interpreter/interpreter-assembler.cc | 26 +- .../src/interpreter/interpreter-assembler.h | 3 - .../src/interpreter/interpreter-generator.cc | 27 +- .../interpreter-intrinsics-generator.cc | 6 - .../src/interpreter/interpreter-intrinsics.h | 1 - deps/v8/src/interpreter/interpreter.cc | 36 +- deps/v8/src/json/json-parser.cc | 16 +- .../libplatform/tracing/recorder-default.cc | 25 - .../src/libplatform/tracing/recorder-mac.cc | 43 + deps/v8/src/libplatform/tracing/recorder.h | 23 +- .../src/libplatform/tracing/trace-writer.cc | 5 + .../v8/src/libplatform/tracing/trace-writer.h | 2 + deps/v8/src/logging/code-events.h | 6 + deps/v8/src/logging/counters-definitions.h | 5 + deps/v8/src/logging/counters-inl.h | 64 - deps/v8/src/logging/counters.cc | 370 +- deps/v8/src/logging/counters.h | 687 +-- deps/v8/src/logging/log.cc | 10 +- deps/v8/src/logging/log.h | 3 + deps/v8/src/logging/runtime-call-stats.cc | 370 ++ deps/v8/src/logging/runtime-call-stats.h | 763 +++ deps/v8/src/numbers/conversions.cc | 48 +- deps/v8/src/numbers/conversions.h | 4 +- deps/v8/src/numbers/dtoa.h | 11 +- deps/v8/src/objects/all-objects-inl.h | 1 + deps/v8/src/objects/allocation-site-inl.h | 12 +- deps/v8/src/objects/allocation-site.h | 10 +- deps/v8/src/objects/api-callbacks.h | 2 + deps/v8/src/objects/arguments.tq | 2 +- deps/v8/src/objects/backing-store.cc | 319 +- deps/v8/src/objects/backing-store.h | 60 +- deps/v8/src/objects/bigint.cc | 131 +- deps/v8/src/objects/bigint.h | 16 +- deps/v8/src/objects/code-inl.h | 6 +- deps/v8/src/objects/code-kind.cc | 2 - deps/v8/src/objects/code-kind.h | 39 +- deps/v8/src/objects/code.cc | 124 +- deps/v8/src/objects/code.h | 3 +- .../v8/src/objects/compilation-cache-table.cc | 34 - deps/v8/src/objects/compilation-cache-table.h | 7 - deps/v8/src/objects/compressed-slots-inl.h | 21 + deps/v8/src/objects/compressed-slots.h | 4 + deps/v8/src/objects/contexts-inl.h | 87 +- deps/v8/src/objects/contexts.cc | 7 +- deps/v8/src/objects/contexts.h | 59 +- deps/v8/src/objects/contexts.tq | 27 +- deps/v8/src/objects/debug-objects-inl.h | 6 - deps/v8/src/objects/debug-objects.cc | 35 +- deps/v8/src/objects/debug-objects.h | 8 +- deps/v8/src/objects/debug-objects.tq | 6 +- deps/v8/src/objects/descriptor-array.h | 4 +- deps/v8/src/objects/dictionary.h | 12 +- deps/v8/src/objects/elements-kind.cc | 12 + deps/v8/src/objects/elements-kind.h | 58 +- deps/v8/src/objects/elements.cc | 870 ++- deps/v8/src/objects/elements.h | 43 +- deps/v8/src/objects/embedder-data-slot-inl.h | 30 +- deps/v8/src/objects/embedder-data-slot.h | 5 +- deps/v8/src/objects/feedback-vector-inl.h | 14 +- deps/v8/src/objects/feedback-vector.cc | 73 +- deps/v8/src/objects/feedback-vector.h | 26 +- deps/v8/src/objects/feedback-vector.tq | 2 +- deps/v8/src/objects/fixed-array-inl.h | 25 +- deps/v8/src/objects/fixed-array.h | 28 +- deps/v8/src/objects/fixed-array.tq | 4 +- deps/v8/src/objects/foreign-inl.h | 3 +- deps/v8/src/objects/free-space-inl.h | 8 +- deps/v8/src/objects/free-space.h | 3 +- deps/v8/src/objects/function-kind.h | 8 + deps/v8/src/objects/hash-table-inl.h | 5 +- deps/v8/src/objects/hash-table.h | 16 +- deps/v8/src/objects/heap-object.h | 16 +- deps/v8/src/objects/instance-type-inl.h | 4 +- deps/v8/src/objects/instance-type.h | 7 +- deps/v8/src/objects/internal-index.h | 3 +- deps/v8/src/objects/intl-objects.cc | 85 +- deps/v8/src/objects/intl-objects.h | 2 +- deps/v8/src/objects/js-array-buffer-inl.h | 51 +- deps/v8/src/objects/js-array-buffer.cc | 51 +- deps/v8/src/objects/js-array-buffer.h | 37 +- deps/v8/src/objects/js-array-buffer.tq | 32 + deps/v8/src/objects/js-array.h | 4 +- deps/v8/src/objects/js-function-inl.h | 21 +- deps/v8/src/objects/js-function.cc | 65 +- deps/v8/src/objects/js-function.h | 12 +- deps/v8/src/objects/js-locale.cc | 344 ++ deps/v8/src/objects/js-locale.h | 15 + deps/v8/src/objects/js-objects-inl.h | 29 +- deps/v8/src/objects/js-objects.cc | 60 +- deps/v8/src/objects/js-objects.h | 22 +- deps/v8/src/objects/js-objects.tq | 7 +- deps/v8/src/objects/js-regexp.cc | 21 + deps/v8/src/objects/js-regexp.h | 3 + deps/v8/src/objects/literal-objects.cc | 62 +- deps/v8/src/objects/literal-objects.h | 12 +- deps/v8/src/objects/lookup-inl.h | 5 +- deps/v8/src/objects/lookup.cc | 35 +- deps/v8/src/objects/map-inl.h | 140 +- deps/v8/src/objects/map-updater.cc | 280 +- deps/v8/src/objects/map-updater.h | 26 + deps/v8/src/objects/map.cc | 317 +- deps/v8/src/objects/map.h | 61 +- deps/v8/src/objects/map.tq | 3 +- deps/v8/src/objects/megadom-handler-inl.h | 26 + deps/v8/src/objects/megadom-handler.h | 32 + deps/v8/src/objects/megadom-handler.tq | 11 + deps/v8/src/objects/object-list-macros.h | 4 + deps/v8/src/objects/object-macros-undef.h | 6 +- deps/v8/src/objects/object-macros.h | 27 +- .../objects/objects-body-descriptors-inl.h | 62 +- deps/v8/src/objects/objects-definitions.h | 6 +- deps/v8/src/objects/objects-inl.h | 81 +- deps/v8/src/objects/objects.cc | 274 +- deps/v8/src/objects/objects.h | 26 +- deps/v8/src/objects/ordered-hash-table.cc | 44 +- deps/v8/src/objects/ordered-hash-table.h | 50 +- deps/v8/src/objects/property-array-inl.h | 7 +- deps/v8/src/objects/property-array.h | 6 +- deps/v8/src/objects/scope-info.cc | 17 +- deps/v8/src/objects/scope-info.h | 13 +- deps/v8/src/objects/script-inl.h | 46 +- deps/v8/src/objects/script.h | 36 +- deps/v8/src/objects/script.tq | 8 +- .../v8/src/objects/shared-function-info-inl.h | 32 +- deps/v8/src/objects/shared-function-info.cc | 10 +- deps/v8/src/objects/shared-function-info.h | 34 +- deps/v8/src/objects/shared-function-info.tq | 1 - deps/v8/src/objects/slots-inl.h | 21 + deps/v8/src/objects/slots.h | 4 + deps/v8/src/objects/smi.h | 10 +- deps/v8/src/objects/source-text-module.cc | 6 +- deps/v8/src/objects/source-text-module.h | 13 +- deps/v8/src/objects/source-text-module.tq | 2 +- deps/v8/src/objects/string-inl.h | 95 +- deps/v8/src/objects/string-table.cc | 25 +- deps/v8/src/objects/string-table.h | 4 +- deps/v8/src/objects/string.cc | 25 +- deps/v8/src/objects/string.h | 105 +- deps/v8/src/objects/struct-inl.h | 7 - deps/v8/src/objects/struct.h | 1 - .../src/objects/swiss-name-dictionary-inl.h | 43 +- deps/v8/src/objects/swiss-name-dictionary.cc | 5 +- deps/v8/src/objects/swiss-name-dictionary.h | 26 +- deps/v8/src/objects/tagged-field-inl.h | 62 +- deps/v8/src/objects/tagged-field.h | 11 +- deps/v8/src/objects/tagged-impl.h | 3 +- deps/v8/src/objects/tagged-index.h | 4 +- deps/v8/src/objects/templates-inl.h | 33 +- deps/v8/src/objects/templates.h | 51 +- deps/v8/src/objects/templates.tq | 8 +- deps/v8/src/objects/torque-defined-classes.h | 1 + deps/v8/src/objects/transitions.cc | 10 +- deps/v8/src/objects/transitions.h | 8 +- deps/v8/src/objects/value-serializer.cc | 48 +- deps/v8/src/objects/visitors.h | 5 + deps/v8/src/parsing/literal-buffer.cc | 4 +- deps/v8/src/parsing/literal-buffer.h | 4 +- deps/v8/src/parsing/parse-info.cc | 4 +- deps/v8/src/parsing/parse-info.h | 4 +- deps/v8/src/parsing/parser-base.h | 49 +- deps/v8/src/parsing/parser.cc | 62 +- deps/v8/src/parsing/parser.h | 13 +- .../pending-compilation-error-handler.cc | 12 +- .../pending-compilation-error-handler.h | 12 +- deps/v8/src/parsing/preparser.cc | 7 +- deps/v8/src/parsing/rewriter.cc | 7 +- .../src/parsing/scanner-character-streams.cc | 6 +- deps/v8/src/parsing/scanner.cc | 8 +- deps/v8/src/parsing/scanner.h | 8 +- deps/v8/src/profiler/cpu-profiler.cc | 21 +- deps/v8/src/profiler/cpu-profiler.h | 20 +- deps/v8/src/profiler/heap-profiler.cc | 5 +- deps/v8/src/profiler/heap-profiler.h | 3 +- .../src/profiler/heap-snapshot-generator.cc | 148 +- .../v8/src/profiler/heap-snapshot-generator.h | 31 +- deps/v8/src/profiler/profile-generator.cc | 33 +- deps/v8/src/profiler/profile-generator.h | 33 +- deps/v8/src/profiler/profiler-listener.cc | 7 + deps/v8/src/profiler/profiler-listener.h | 1 + .../v8/src/profiler/sampling-heap-profiler.cc | 2 +- deps/v8/src/profiler/tick-sample.cc | 20 +- deps/v8/src/profiler/tick-sample.h | 1 + .../arm64/regexp-macro-assembler-arm64.cc | 14 +- deps/v8/src/regexp/ppc/OWNERS | 5 - .../regexp/ppc/regexp-macro-assembler-ppc.cc | 98 +- deps/v8/src/regexp/regexp-ast.cc | 4 +- deps/v8/src/regexp/regexp-ast.h | 3 +- deps/v8/src/regexp/regexp-bytecodes.h | 4 +- deps/v8/src/regexp/regexp-compiler.cc | 34 +- deps/v8/src/regexp/regexp-dotprinter.cc | 3 +- deps/v8/src/regexp/regexp-macro-assembler.cc | 7 +- deps/v8/src/regexp/regexp-nodes.h | 5 + .../regexp/x64/regexp-macro-assembler-x64.cc | 15 +- deps/v8/src/roots/roots.cc | 4 + deps/v8/src/roots/roots.h | 9 + deps/v8/src/runtime/runtime-array.cc | 15 +- deps/v8/src/runtime/runtime-classes.cc | 7 +- deps/v8/src/runtime/runtime-compiler.cc | 64 +- deps/v8/src/runtime/runtime-debug.cc | 364 +- deps/v8/src/runtime/runtime-internal.cc | 28 +- deps/v8/src/runtime/runtime-literals.cc | 3 +- deps/v8/src/runtime/runtime-object.cc | 117 +- deps/v8/src/runtime/runtime-promise.cc | 17 +- deps/v8/src/runtime/runtime-regexp.cc | 10 +- deps/v8/src/runtime/runtime-scopes.cc | 4 +- deps/v8/src/runtime/runtime-strings.cc | 2 +- deps/v8/src/runtime/runtime-test-wasm.cc | 9 +- deps/v8/src/runtime/runtime-test.cc | 69 + deps/v8/src/runtime/runtime-typedarray.cc | 24 +- deps/v8/src/runtime/runtime.cc | 3 + deps/v8/src/runtime/runtime.h | 260 +- deps/v8/src/sanitizer/asan.h | 28 - deps/v8/src/sanitizer/msan.h | 36 - deps/v8/src/sanitizer/tsan.h | 47 - deps/v8/src/snapshot/code-serializer.cc | 3 +- deps/v8/src/snapshot/context-deserializer.cc | 4 +- deps/v8/src/snapshot/deserializer.cc | 3 + .../v8/src/snapshot/embedded/embedded-data.cc | 21 +- deps/v8/src/snapshot/embedded/embedded-data.h | 8 + deps/v8/src/snapshot/mksnapshot.cc | 4 +- deps/v8/src/snapshot/object-deserializer.cc | 4 +- deps/v8/src/snapshot/read-only-serializer.cc | 17 + deps/v8/src/snapshot/read-only-serializer.h | 2 + .../v8/src/snapshot/serializer-deserializer.h | 9 +- deps/v8/src/snapshot/serializer.cc | 2 +- deps/v8/src/snapshot/serializer.h | 4 + deps/v8/src/snapshot/snapshot-utils.cc | 2 +- deps/v8/src/snapshot/snapshot.cc | 26 +- deps/v8/src/snapshot/snapshot.h | 9 + deps/v8/src/strings/unicode.cc | 4461 +++++++-------- deps/v8/src/third_party/vtune/BUILD.gn | 9 +- .../torque/class-debug-reader-generator.cc | 5 + deps/v8/src/torque/constants.h | 18 +- deps/v8/src/torque/global-context.h | 2 + deps/v8/src/torque/implementation-visitor.cc | 248 +- deps/v8/src/torque/torque-parser.cc | 19 +- deps/v8/src/torque/torque.cc | 5 + deps/v8/src/tracing/trace-event.cc | 4 + deps/v8/src/tracing/trace-event.h | 9 + deps/v8/src/trap-handler/DEPS | 19 +- .../src/trap-handler/handler-inside-posix.h | 1 + deps/v8/src/trap-handler/handler-inside-win.h | 4 +- deps/v8/src/trap-handler/handler-inside.cc | 7 +- .../src/trap-handler/handler-outside-posix.cc | 6 +- .../src/trap-handler/handler-outside-win.cc | 2 +- deps/v8/src/trap-handler/handler-outside.cc | 35 +- deps/v8/src/trap-handler/handler-shared.cc | 2 +- .../src/trap-handler/trap-handler-internal.h | 2 +- deps/v8/src/trap-handler/trap-handler.h | 72 +- deps/v8/src/utils/allocation.cc | 138 +- deps/v8/src/utils/allocation.h | 105 +- deps/v8/src/utils/ostreams.cc | 2 +- deps/v8/src/utils/ostreams.h | 10 +- deps/v8/src/utils/v8dll-main.cc | 2 +- deps/v8/src/utils/vector.h | 2 +- deps/v8/src/wasm/OWNERS | 1 + .../wasm/baseline/arm/liftoff-assembler-arm.h | 11 +- .../baseline/arm64/liftoff-assembler-arm64.h | 44 +- .../baseline/ia32/liftoff-assembler-ia32.h | 161 +- .../v8/src/wasm/baseline/liftoff-assembler.cc | 32 +- deps/v8/src/wasm/baseline/liftoff-assembler.h | 11 +- deps/v8/src/wasm/baseline/liftoff-compiler.cc | 490 +- deps/v8/src/wasm/baseline/liftoff-register.h | 21 +- .../baseline/mips/liftoff-assembler-mips.h | 15 +- .../mips64/liftoff-assembler-mips64.h | 15 +- deps/v8/src/wasm/baseline/ppc/OWNERS | 5 - .../wasm/baseline/ppc/liftoff-assembler-ppc.h | 168 +- .../riscv64/liftoff-assembler-riscv64.h | 306 +- .../baseline/s390/liftoff-assembler-s390.h | 358 +- .../wasm/baseline/x64/liftoff-assembler-x64.h | 153 +- deps/v8/src/wasm/branch-hint-map.h | 46 + deps/v8/src/wasm/c-api.cc | 46 +- deps/v8/src/wasm/compilation-environment.h | 12 +- deps/v8/src/wasm/function-body-decoder-impl.h | 748 ++- deps/v8/src/wasm/function-compiler.cc | 17 +- deps/v8/src/wasm/function-compiler.h | 9 +- deps/v8/src/wasm/graph-builder-interface.cc | 177 +- deps/v8/src/wasm/graph-builder-interface.h | 3 +- deps/v8/src/wasm/memory-protection-key.cc | 189 + deps/v8/src/wasm/memory-protection-key.h | 90 + deps/v8/src/wasm/memory-tracing.cc | 2 +- deps/v8/src/wasm/module-compiler.cc | 67 +- deps/v8/src/wasm/module-decoder.cc | 360 +- deps/v8/src/wasm/module-decoder.h | 10 +- deps/v8/src/wasm/module-instantiate.cc | 48 +- deps/v8/src/wasm/value-type.h | 39 +- deps/v8/src/wasm/wasm-code-manager.cc | 439 +- deps/v8/src/wasm/wasm-code-manager.h | 119 +- deps/v8/src/wasm/wasm-constants.h | 7 +- deps/v8/src/wasm/wasm-debug.cc | 10 +- deps/v8/src/wasm/wasm-engine.cc | 78 +- deps/v8/src/wasm/wasm-engine.h | 12 +- deps/v8/src/wasm/wasm-feature-flags.h | 14 +- deps/v8/src/wasm/wasm-init-expr.cc | 57 + deps/v8/src/wasm/wasm-init-expr.h | 150 + deps/v8/src/wasm/wasm-js.cc | 35 +- deps/v8/src/wasm/wasm-limits.h | 5 +- deps/v8/src/wasm/wasm-module-builder.cc | 12 +- deps/v8/src/wasm/wasm-module-builder.h | 2 + deps/v8/src/wasm/wasm-module.cc | 14 +- deps/v8/src/wasm/wasm-module.h | 32 +- deps/v8/src/wasm/wasm-objects-inl.h | 38 +- deps/v8/src/wasm/wasm-objects.cc | 130 +- deps/v8/src/wasm/wasm-objects.h | 43 +- deps/v8/src/wasm/wasm-objects.tq | 22 +- deps/v8/src/wasm/wasm-opcodes-inl.h | 8 +- deps/v8/src/wasm/wasm-opcodes.cc | 3 - deps/v8/src/wasm/wasm-opcodes.h | 185 +- deps/v8/src/wasm/wasm-serialization.cc | 6 +- deps/v8/src/wasm/wasm-subtyping.cc | 71 +- deps/v8/src/wasm/wasm-subtyping.h | 14 +- deps/v8/src/wasm/wasm-value.h | 2 +- deps/v8/src/web-snapshot/web-snapshot.cc | 189 +- deps/v8/src/web-snapshot/web-snapshot.h | 15 +- deps/v8/src/zone/zone-segment.cc | 2 +- deps/v8/src/zone/zone.cc | 2 +- deps/v8/test/benchmarks/cpp/BUILD.gn | 5 +- deps/v8/test/benchmarks/cpp/DEPS | 1 + deps/v8/test/benchmarks/cpp/cppgc/DEPS | 1 + .../benchmarks/cpp/cppgc/allocation_perf.cc | 3 + .../test/benchmarks/cpp/cppgc/trace_perf.cc | 5 +- deps/v8/test/benchmarks/cpp/empty.cc | 6 +- deps/v8/test/cctest/BUILD.gn | 4 +- deps/v8/test/cctest/cctest.cc | 6 +- deps/v8/test/cctest/cctest.h | 8 +- deps/v8/test/cctest/cctest.status | 498 +- .../test/cctest/compiler/serializer-tester.cc | 6 +- .../cctest/compiler/test-code-assembler.cc | 2 + .../test-concurrent-shared-function-info.cc | 2 - .../test-js-context-specialization.cc | 50 +- .../compiler/test-representation-change.cc | 15 +- .../test/cctest/compiler/test-run-machops.cc | 126 + .../test/cctest/compiler/test-verify-type.cc | 70 + deps/v8/test/cctest/heap/heap-utils.cc | 3 +- .../cctest/heap/test-array-buffer-tracker.cc | 15 +- .../cctest/heap/test-concurrent-allocation.cc | 3 + .../cctest/heap/test-concurrent-marking.cc | 8 + .../test/cctest/heap/test-embedder-tracing.cc | 9 +- .../heap/test-external-string-tracker.cc | 1 + deps/v8/test/cctest/heap/test-heap.cc | 178 +- .../cctest/heap/test-invalidated-slots.cc | 4 + deps/v8/test/cctest/heap/test-iterators.cc | 2 +- deps/v8/test/cctest/heap/test-mark-compact.cc | 1 + .../cctest/heap/test-memory-measurement.cc | 2 - deps/v8/test/cctest/heap/test-shared-heap.cc | 91 + deps/v8/test/cctest/heap/test-spaces.cc | 26 +- .../test/cctest/heap/test-weak-references.cc | 9 +- .../v8/test/cctest/heap/test-write-barrier.cc | 7 + .../PrivateAccessorAccess.golden | 8 +- .../PrivateMethodAccess.golden | 4 +- .../StaticPrivateMethodAccess.golden | 32 +- deps/v8/test/cctest/test-allocation.cc | 2 +- deps/v8/test/cctest/test-api-accessors.cc | 210 +- deps/v8/test/cctest/test-api-array-buffer.cc | 189 +- deps/v8/test/cctest/test-api-icu.cc | 2 +- deps/v8/test/cctest/test-api-interceptors.cc | 16 +- deps/v8/test/cctest/test-api-stack-traces.cc | 26 +- deps/v8/test/cctest/test-api.cc | 319 +- deps/v8/test/cctest/test-assembler-arm.cc | 2 +- deps/v8/test/cctest/test-assembler-ia32.cc | 29 + deps/v8/test/cctest/test-assembler-mips.cc | 6 +- deps/v8/test/cctest/test-assembler-mips64.cc | 6 +- deps/v8/test/cctest/test-assembler-riscv64.cc | 24 +- deps/v8/test/cctest/test-assembler-x64.cc | 29 + deps/v8/test/cctest/test-code-pages.cc | 21 +- .../test/cctest/test-code-stub-assembler.cc | 10 +- deps/v8/test/cctest/test-compiler.cc | 116 +- .../test/cctest/test-concurrent-prototype.cc | 4 +- deps/v8/test/cctest/test-concurrent-string.cc | 2 +- deps/v8/test/cctest/test-cpu-profiler.cc | 155 +- deps/v8/test/cctest/test-debug-helper.cc | 16 +- deps/v8/test/cctest/test-debug.cc | 56 +- deps/v8/test/cctest/test-disasm-riscv64.cc | 1 + deps/v8/test/cctest/test-disasm-x64.cc | 8 + deps/v8/test/cctest/test-double.cc | 15 +- deps/v8/test/cctest/test-factory.cc | 2 +- deps/v8/test/cctest/test-feedback-vector.cc | 43 + .../test/cctest/test-field-type-tracking.cc | 24 +- deps/v8/test/cctest/test-global-handles.cc | 4 + deps/v8/test/cctest/test-heap-profiler.cc | 31 +- .../cctest/test-inobject-slack-tracking.cc | 5 +- deps/v8/test/cctest/test-js-to-wasm.cc | 30 +- deps/v8/test/cctest/test-js-weak-refs.cc | 9 + deps/v8/test/cctest/test-log-stack-tracer.cc | 2 +- .../test/cctest/test-macro-assembler-mips.cc | 3 +- .../cctest/test-macro-assembler-mips64.cc | 3 +- .../cctest/test-macro-assembler-riscv64.cc | 17 +- .../test/cctest/test-macro-assembler-x64.cc | 30 +- deps/v8/test/cctest/test-mementos.cc | 6 +- deps/v8/test/cctest/test-parsing.cc | 10 + .../test/cctest/test-poison-disasm-arm64.cc | 8 + deps/v8/test/cctest/test-ptr-compr-cage.cc | 175 + deps/v8/test/cctest/test-serialize.cc | 1 + deps/v8/test/cctest/test-simple-riscv64.cc | 2 +- deps/v8/test/cctest/test-strings.cc | 2 +- deps/v8/test/cctest/test-typedarrays.cc | 24 - deps/v8/test/cctest/test-weakmaps.cc | 7 +- deps/v8/test/cctest/test-weaksets.cc | 8 +- deps/v8/test/cctest/test-web-snapshots.cc | 369 +- deps/v8/test/cctest/wasm/test-c-wasm-entry.cc | 1 - deps/v8/test/cctest/wasm/test-gc.cc | 220 +- .../cctest/wasm/test-jump-table-assembler.cc | 10 +- .../cctest/wasm/test-liftoff-inspection.cc | 25 +- .../cctest/wasm/test-run-wasm-bulk-memory.cc | 3 +- .../cctest/wasm/test-run-wasm-exceptions.cc | 70 + .../cctest/wasm/test-run-wasm-relaxed-simd.cc | 42 +- .../cctest/wasm/test-run-wasm-simd-liftoff.cc | 16 +- .../test-run-wasm-simd-scalar-lowering.cc | 332 -- .../v8/test/cctest/wasm/test-run-wasm-simd.cc | 776 ++- deps/v8/test/cctest/wasm/test-run-wasm.cc | 77 +- .../test/cctest/wasm/test-wasm-breakpoints.cc | 1 - .../cctest/wasm/test-wasm-serialization.cc | 1 - .../cctest/wasm/test-wasm-shared-engine.cc | 93 +- deps/v8/test/cctest/wasm/wasm-run-utils.cc | 24 +- deps/v8/test/cctest/wasm/wasm-run-utils.h | 50 +- deps/v8/test/cctest/wasm/wasm-simd-utils.cc | 132 +- deps/v8/test/cctest/wasm/wasm-simd-utils.h | 82 +- deps/v8/test/common/wasm/wasm-interpreter.cc | 5 +- deps/v8/test/common/wasm/wasm-macro-gen.h | 5 + .../debug-evaluate-repl-mode-optimized.js | 33 + .../debug/debug-evaluate-repl-mode.js | 150 +- .../debug/debug-liveedit-check-stack.js | 7 - .../debug/debug-liveedit-double-call.js | 137 - .../debug/debug-liveedit-exceptions.js | 63 - .../debug/debug-liveedit-recursion.js | 8 +- .../debug/debug-liveedit-replace-code.js | 31 - .../debug/debug-liveedit-restart-frame.js | 154 - .../debugger/debug/debug-liveedit-stepin.js | 73 - .../debug/es6/debug-liveedit-new-target-1.js | 2 +- .../debug/es6/debug-liveedit-new-target-2.js | 2 +- .../debug/es6/debug-liveedit-new-target-3.js | 4 +- .../debug/es6/generators-debug-liveedit.js | 131 - .../debug/es8/debug-async-liveedit.js | 146 - .../test/debugger/debug/wasm/breakpoints.js | 12 +- .../debug/wasm/debug-step-into-wasm.js | 2 +- .../debugger/debug/wasm/frame-inspection.js | 4 +- .../debugger/debug/wasm/stepping-from-js.js | 14 +- deps/v8/test/debugger/debugger.status | 15 +- .../debugger/regress/regress-crbug-1156498.js | 20 + deps/v8/test/debugger/test-api.js | 7 +- deps/v8/test/fuzzer/fuzzer.status | 9 + deps/v8/test/fuzzer/inspector-fuzzer.cc | 8 +- deps/v8/test/fuzzer/multi-return.cc | 2 +- .../access-obsolete-frame-expected.txt | 9 - .../debugger/access-obsolete-frame.js | 69 - ...-line-api-with-arrow-function-expected.txt | 23 + .../command-line-api-with-arrow-function.js | 67 + .../get-properties-paused-expected.txt | 17 +- .../debugger/get-properties-paused.js | 2 - .../debugger/restart-frame-expected.txt | 16 +- .../test/inspector/debugger/restart-frame.js | 19 +- .../debugger/set-script-source-2-expected.txt | 73 - .../inspector/debugger/set-script-source-2.js | 99 - ...t-script-source-stack-padding-expected.txt | 15 - .../set-script-source-stack-padding.js | 54 - .../debugger/set-variable-value-expected.txt | 74 +- ...sm-breakpoint-reset-on-debugger-restart.js | 1 + .../debugger/wasm-conditional-breakpoints.js | 1 + .../inspector/debugger/wasm-debug-command.js | 1 + .../wasm-evaluate-on-call-frame-expected.txt | 44 +- .../debugger/wasm-gc-breakpoints-expected.txt | 4 +- .../inspector/debugger/wasm-gc-breakpoints.js | 1 + .../wasm-gc-in-debug-break-expected.txt | 4 +- .../debugger/wasm-gc-in-debug-break.js | 4 +- ...sm-get-breakable-locations-byte-offsets.js | 1 + .../test/inspector/debugger/wasm-imports.js | 3 +- .../debugger/wasm-inspect-many-registers.js | 1 + .../wasm-instrumentation-breakpoint.js | 8 + .../debugger/wasm-remove-breakpoint.js | 4 +- .../debugger/wasm-scope-info-expected.txt | 48 +- .../inspector/debugger/wasm-scope-info.js | 5 +- ...oint-breaks-on-first-breakable-location.js | 1 + .../debugger/wasm-set-breakpoint-expected.txt | 74 +- .../inspector/debugger/wasm-set-breakpoint.js | 1 + ...de-effect-free-debug-evaluate-expected.txt | 33 + .../wasm-side-effect-free-debug-evaluate.js | 72 + .../inspector/debugger/wasm-stack-check.js | 1 + .../debugger/wasm-stack-expected.txt | 4 +- .../inspector/debugger/wasm-step-a-lot.js | 1 + .../wasm-step-after-trap-expected.txt | 4 +- .../debugger/wasm-step-after-trap.js | 1 + .../wasm-step-from-non-breakable-position.js | 1 + .../debugger/wasm-stepping-in-from-js.js | 4 +- .../wasm-stepping-no-opcode-merging.js | 1 + .../debugger/wasm-stepping-out-from-js.js | 1 + .../inspector/debugger/wasm-stepping-to-js.js | 4 +- .../debugger/wasm-stepping-with-skiplist.js | 1 + ...wasm-stepping-with-source-map-expected.txt | 58 +- .../debugger/wasm-stepping-with-source-map.js | 1 + .../test/inspector/debugger/wasm-stepping.js | 1 + .../wasm-unnamed-function-names-expected.txt | 4 +- deps/v8/test/inspector/inspector-test.cc | 12 +- deps/v8/test/inspector/inspector.status | 336 +- deps/v8/test/inspector/isolate-data.cc | 10 +- .../regress-crbug-1195927-expected.txt | 32 + .../regress/regress-crbug-1195927.js | 54 + .../regress-crbug-1197392-expected.txt | 10 + .../regress/regress-crbug-1197392.js | 16 + .../regress-crbug-1207867-expected.txt | 41 + .../regress/regress-crbug-1207867.js | 59 + .../runtime/add-binding-expected.txt | 44 + deps/v8/test/inspector/runtime/add-binding.js | 42 +- .../runtime/clear-of-command-line-api.js | 2 +- .../runtime/command-line-api-expected.txt | 24 +- .../runtime/get-properties-expected.txt | 55 +- .../test/inspector/runtime/get-properties.js | 6 - .../runtime/internal-properties-expected.txt | 201 +- .../runtime/remote-object-expected.txt | 24 +- .../remote-object-get-properties-expected.txt | 44 +- .../test/inspector/runtime/remote-object.js | 8 +- .../runtime-remote-object-expected.txt | 70 +- deps/v8/test/inspector/task-runner.cc | 4 +- deps/v8/test/inspector/wasm-inspector-test.js | 7 +- .../test/intl/general/getCanonicalLocales.js | 2 +- .../intl/locale/locale-info-check-property.js | 23 + .../locale/locale-info-check-return-types.js | 46 + deps/v8/test/intl/locale/locale-info-ext.js | 26 + deps/v8/test/intl/locale/locale.js | 2 +- deps/v8/test/memory/Memory.json | 3 +- .../message/fail/wasm-async-compile-fail.out | 4 +- .../fail/wasm-async-instantiate-fail.out | 4 +- deps/v8/test/message/fail/wasm-module-name.js | 2 +- deps/v8/test/message/fail/wasm-no-name.out | 2 +- .../fail/wasm-streaming-compile-fail.out | 4 +- .../fail/wasm-streaming-instantiate-fail.out | 4 +- .../message/fail/wasm-sync-compile-fail.out | 4 +- deps/v8/test/message/message.status | 18 +- deps/v8/test/message/testcfg.py | 15 +- .../v8/test/message/wasm-module-name-async.js | 2 +- deps/v8/test/message/wasm-no-name-async.out | 2 +- .../test/message/wasm-no-name-streaming.out | 2 +- .../test/message/wasm-trace-memory-liftoff.js | 1 - .../message/wasm-trace-memory-liftoff.out | 28 +- deps/v8/test/message/wasm-trace-memory.js | 1 - deps/v8/test/message/wasm-trace-memory.out | 28 +- deps/v8/test/mjsunit/BUILD.gn | 8 +- deps/v8/test/mjsunit/baseline/test-osr.js | 51 + .../test/mjsunit/compiler/bigint-asuintn.js | 37 + .../concurrent-invalidate-transition-map.js | 2 +- .../compiler/concurrent-proto-change.js | 2 +- .../test/mjsunit/compiler/deopt-pretenure.js | 72 + .../test/mjsunit/compiler/fast-api-calls.js | 58 +- .../compiler/fast-api-interface-types.js | 61 + .../compiler/load-elimination-const-field.js | 4 +- .../compiler/opt-higher-order-functions.js | 45 + .../test/mjsunit/compiler/regress-1195650.js | 31 + .../test/mjsunit/compiler/regress-1196185.js | 46 + .../test/mjsunit/compiler/regress-1196683.js | 2 +- .../test/mjsunit/compiler/regress-1202312.js | 24 + .../test/mjsunit/compiler/regress-1202625.js | 21 + .../test/mjsunit/compiler/regress-1202924.js | 18 + .../test/mjsunit/compiler/regress-1203116.js | 30 + .../mjsunit/compiler/regress-crbug-11564.js | 32 + .../mjsunit/compiler/regress-crbug-1201011.js | 11 + .../mjsunit/compiler/regress-crbug-1201057.js | 9 + .../mjsunit/compiler/regress-crbug-1201082.js | 11 + .../compiler/test-literal-map-migration.js | 30 + .../concurrent-initial-prototype-change-1.js | 4 +- deps/v8/test/mjsunit/const-dict-tracking.js | 1 + .../mjsunit/harmony/class-static-blocks.js | 23 + deps/v8/test/mjsunit/harmony/error-cause.js | 221 + .../modules-import-assertions-dynamic-12.mjs | 26 + deps/v8/test/mjsunit/harmony/to-string.js | 13 - ...nalizationregistry-independent-lifetime.js | 2 +- deps/v8/test/mjsunit/ic-megadom-2.js | 52 + deps/v8/test/mjsunit/ic-megadom.js | 48 + deps/v8/test/mjsunit/mjsunit.js | 2 + deps/v8/test/mjsunit/mjsunit.status | 214 +- deps/v8/test/mjsunit/regress-10782.js | 10 + .../test/mjsunit/regress/regress-1189077.js | 56 + .../test/mjsunit/regress/regress-1201114.js | 19 + .../test/mjsunit/regress/regress-1204748.js | 24 + .../test/mjsunit/regress/regress-1205290.js | 24 + .../test/mjsunit/regress/regress-1207679.js | 24 + .../test/mjsunit/regress/regress-1208782.js | 6 + .../test/mjsunit/regress/regress-1212583.js | 25 + .../mjsunit/regress/regress-crbug-1163499.js | 15 + .../mjsunit/regress/regress-crbug-1209152.js | 13 + .../test/mjsunit/regress/regress-v8-11290.js | 5 + .../test/mjsunit/regress/regress-v8-11616.js | 8 + .../test/mjsunit/regress/regress-v8-11851.js | 22 + .../mjsunit/regress/wasm/regress-1046472.js | 4 +- .../mjsunit/regress/wasm/regress-10702.js | 2 +- .../mjsunit/regress/wasm/regress-11809.js | 64 - .../mjsunit/regress/wasm/regress-1187831.js | 2 +- .../mjsunit/regress/wasm/regress-1196837.js | 39 + .../mjsunit/regress/wasm/regress-1199662.js | 38 + .../mjsunit/regress/wasm/regress-1200231.js | 19 + .../mjsunit/regress/wasm/regress-1202736.js | 34 + .../mjsunit/regress/wasm/regress-1217064.js | 32 + .../mjsunit/regress/wasm/regress-1227351.js | 13 + .../mjsunit/regress/wasm/regress-1228720.js | 13 + .../mjsunit/regress/wasm/regress-739768.js | 2 +- .../mjsunit/regress/wasm/regress-803788.js | 2 +- .../mjsunit/regress/wasm/regress-817380.js | 3 +- .../mjsunit/regress/wasm/regress-834619.js | 2 +- .../regress/wasm/regress-crbug-1203692.js | 12 + .../mjsunit/regress/wasm/regress-v8-9106.js | 2 - ...learraybuffer-growablesharedarraybuffer.js | 430 ++ ...kprocessor-test-func-info.log.symbols.json | 7 + .../tools/tickprocessor-test-large.default | 85 + .../mjsunit/tools/tickprocessor-test-large.js | 58 + .../tools/tickprocessor-test-large.log | 2759 +++++++++ .../tickprocessor-test-large.log.symbols.json | 1 + .../tools/tickprocessor-test.log.symbols.json | 7 + ...kprocessor-test.separate-baseline-handlers | 61 + .../tickprocessor-test.separate-bytecodes | 61 + deps/v8/test/mjsunit/tools/tickprocessor.mjs | 178 +- .../typedarray-growablesharedarraybuffer.js | 354 ++ .../typedarray-resizablearraybuffer-detach.js | 138 + .../typedarray-resizablearraybuffer.js | 605 ++ deps/v8/test/mjsunit/wasm/async-compile.js | 2 +- deps/v8/test/mjsunit/wasm/bulk-memory.js | 20 +- deps/v8/test/mjsunit/wasm/call-ref.js | 17 + .../compilation-hints-async-compilation.js | 2 +- .../compilation-hints-sync-compilation.js | 2 +- .../wasm/compiled-module-serialization.js | 4 +- deps/v8/test/mjsunit/wasm/data-segments.js | 2 +- .../wasm/element-segments-with-reftypes.js | 99 + deps/v8/test/mjsunit/wasm/exceptions.js | 21 + .../mjsunit/wasm/export-mutable-global.js | 28 +- .../v8/test/mjsunit/wasm/externref-globals.js | 17 +- deps/v8/test/mjsunit/wasm/externref-table.js | 8 +- deps/v8/test/mjsunit/wasm/globals.js | 25 +- deps/v8/test/mjsunit/wasm/import-table.js | 39 +- .../wasm/indirect-call-non-zero-table.js | 15 +- deps/v8/test/mjsunit/wasm/indirect-calls.js | 6 +- deps/v8/test/mjsunit/wasm/indirect-tables.js | 41 +- deps/v8/test/mjsunit/wasm/loop-unrolling.js | 23 + deps/v8/test/mjsunit/wasm/memory64.js | 11 +- .../wasm/multi-table-element-section.js | 12 +- .../v8/test/mjsunit/wasm/reference-globals.js | 6 +- deps/v8/test/mjsunit/wasm/reference-tables.js | 3 +- deps/v8/test/mjsunit/wasm/return-calls.js | 2 +- deps/v8/test/mjsunit/wasm/simd-globals.js | 5 +- deps/v8/test/mjsunit/wasm/stack.js | 33 +- deps/v8/test/mjsunit/wasm/table-access.js | 6 +- .../test/mjsunit/wasm/table-copy-externref.js | 2 +- deps/v8/test/mjsunit/wasm/table-copy.js | 2 - deps/v8/test/mjsunit/wasm/table-get.js | 30 +- deps/v8/test/mjsunit/wasm/table-grow.js | 11 +- .../mjsunit/wasm/unreachable-validation.js | 4 +- .../test/mjsunit/wasm/wasm-module-builder.js | 381 +- deps/v8/test/test262/test262.status | 16 +- deps/v8/test/test262/testcfg.py | 3 + deps/v8/test/unittests/BUILD.gn | 9 + .../base/division-by-constant-unittest.cc | 2 +- .../base/platform/platform-unittest.cc | 2 + .../codegen/code-stub-assembler-unittest.cc | 2 +- .../instruction-selector-arm64-unittest.cc | 23 +- .../backend/instruction-selector-unittest.cc | 8 + .../backend/instruction-selector-unittest.h | 2 + .../backend/instruction-sequence-unittest.cc | 4 +- .../backend/instruction-sequence-unittest.h | 4 +- .../dead-code-elimination-unittest.cc | 3 +- .../effect-control-linearizer-unittest.cc | 60 +- .../instruction-selector-ia32-unittest.cc | 15 + .../compiler/int64-lowering-unittest.cc | 335 +- .../compiler/js-call-reducer-unittest.cc | 2 +- ...-native-context-specialization-unittest.cc | 3 +- .../compiler/machine-operator-unittest.cc | 4 +- .../test/unittests/compiler/node-test-utils.h | 2 +- deps/v8/test/unittests/compiler/ppc/OWNERS | 5 - .../instruction-selector-riscv64-unittest.cc | 16 +- .../x64/instruction-selector-x64-unittest.cc | 46 + .../execution/microtask-queue-unittest.cc | 5 + .../heap/cppgc/allocation-unittest.cc | 134 + .../heap/cppgc/concurrent-sweeper-unittest.cc | 17 +- .../heap/cppgc/custom-spaces-unittest.cc | 12 + .../heap/cppgc/ephemeron-pair-unittest.cc | 30 +- .../cppgc/explicit-management-unittest.cc | 58 +- .../heap/cppgc/garbage-collected-unittest.cc | 96 +- .../unittests/heap/cppgc/gc-info-unittest.cc | 8 +- .../heap/cppgc/gc-invoker-unittest.cc | 8 +- .../heap/cppgc/heap-growing-unittest.cc | 27 +- .../heap/cppgc/heap-object-header-unittest.cc | 20 +- .../heap/cppgc/heap-page-unittest.cc | 10 +- .../heap/cppgc/heap-registry-unittest.cc | 88 + .../unittests/heap/cppgc/heap-unittest.cc | 116 +- .../unittests/heap/cppgc/logging-unittest.cc | 10 +- .../unittests/heap/cppgc/marker-unittest.cc | 54 +- .../heap/cppgc/marking-verifier-unittest.cc | 83 +- .../heap/cppgc/marking-visitor-unittest.cc | 30 +- .../unittests/heap/cppgc/member-unittest.cc | 193 + .../unittests/heap/cppgc/minor-gc-unittest.cc | 20 +- .../heap/cppgc/name-trait-unittest.cc | 8 +- .../heap/cppgc/persistent-family-unittest.cc | 124 +- .../heap/cppgc/sanitizer-unittest.cc | 59 + .../unittests/heap/cppgc/stack-unittest.cc | 153 +- .../unittests/heap/cppgc/sweeper-unittest.cc | 59 +- deps/v8/test/unittests/heap/cppgc/tests.h | 10 + .../unittests/heap/cppgc/visitor-unittest.cc | 38 +- .../heap/cppgc/weak-container-unittest.cc | 64 +- .../heap/cppgc/workloads-unittest.cc | 351 ++ .../heap/cppgc/write-barrier-unittest.cc | 23 +- deps/v8/test/unittests/heap/heap-unittest.cc | 9 +- .../heap/unified-heap-snapshot-unittest.cc | 97 +- .../unittests/heap/unified-heap-unittest.cc | 144 + .../test/unittests/heap/unified-heap-utils.cc | 7 +- .../test/unittests/heap/unified-heap-utils.h | 2 + .../test/unittests/heap/unmapper-unittest.cc | 13 + .../bytecode-array-builder-unittest.cc | 26 +- .../bytecode-array-iterator-unittest.cc | 5 +- .../unittests/logging/counters-unittest.cc | 616 -- .../logging/runtime-call-stats-unittest.cc | 643 +++ .../test/unittests/regexp/regexp-unittest.cc | 39 + .../regress/regress-crbug-1041240-unittest.cc | 4 +- .../regress/regress-crbug-938251-unittest.cc | 2 +- deps/v8/test/unittests/test-utils.cc | 2 +- deps/v8/test/unittests/test-utils.h | 2 +- deps/v8/test/unittests/unittests.status | 39 +- .../unittests/utils/allocation-unittest.cc | 4 +- .../wasm/function-body-decoder-unittest.cc | 202 +- .../unittests/wasm/module-decoder-unittest.cc | 59 +- .../test/unittests/wasm/subtyping-unittest.cc | 184 +- .../wasm/trap-handler-x64-unittest.cc | 6 +- .../wasm-api-tests/run-all-wasm-api-tests.cc | 9 + .../test/wasm-api-tests/wasm-api-tests.status | 8 + deps/v8/test/wasm-js/tests.tar.gz.sha1 | 2 +- .../v8/test/wasm-spec-tests/tests.tar.gz.sha1 | 2 +- .../wasm-spec-tests/wasm-spec-tests.status | 22 +- deps/v8/third_party/google_benchmark/BUILD.gn | 75 + deps/v8/third_party/google_benchmark/OWNERS | 3 + .../v8/third_party/google_benchmark/README.v8 | 21 + deps/v8/third_party/googletest/BUILD.gn | 38 +- .../src/googletest/include/gtest/gtest_prod.h | 6 +- .../third_party/inspector_protocol/BUILD.gn | 6 +- .../third_party/inspector_protocol/README.v8 | 2 +- .../inspector_protocol/crdtp/serializable.cc | 5 +- .../inspector_protocol/crdtp/status.cc | 2 + .../inspector_protocol/crdtp/status.h | 1 + .../lib/ValueConversions_cpp.template | 4 + .../lib/base_string_adapter_cc.template | 5 +- deps/v8/third_party/inspector_protocol/pdl.py | 3 + deps/v8/third_party/jsoncpp/BUILD.gn | 2 - deps/v8/third_party/zlib/OWNERS | 1 + deps/v8/third_party/zlib/google/OWNERS | 2 + deps/v8/third_party/zlib/google/zip.cc | 140 +- deps/v8/third_party/zlib/google/zip.h | 138 +- .../zlib/google/zip_reader_unittest.cc | 5 +- .../third_party/zlib/google/zip_unittest.cc | 187 +- deps/v8/third_party/zlib/google/zip_writer.cc | 191 +- deps/v8/third_party/zlib/google/zip_writer.h | 63 +- .../tools/clusterfuzz/testdata/baseline/d8.py | 5 + .../tools/clusterfuzz/testdata/build3/d8.py | 7 + .../testdata/failure_output_arch.txt | 50 + .../testdata/failure_output_second.txt | 50 + deps/v8/tools/clusterfuzz/v8_foozzie.py | 87 +- deps/v8/tools/clusterfuzz/v8_foozzie_test.py | 32 +- deps/v8/tools/clusterfuzz/v8_mock.js | 12 +- deps/v8/tools/codemap.mjs | 11 +- deps/v8/tools/cppgc/gen_cmake.py | 4 + .../debug_helper/get-object-properties.cc | 14 +- deps/v8/tools/dev/gm.py | 7 +- deps/v8/tools/dev/v8gen.py | 10 +- .../tools/generate-header-include-checks.py | 2 + deps/v8/tools/mb/mb.py | 17 +- deps/v8/tools/profile.mjs | 13 +- deps/v8/tools/profview/profile-utils.js | 63 +- deps/v8/tools/profview/profview.js | 166 +- deps/v8/tools/release/auto_roll.py | 4 +- deps/v8/tools/release/test_scripts.py | 4 +- deps/v8/tools/system-analyzer/index.css | 2 +- deps/v8/tools/system-analyzer/index.mjs | 14 +- deps/v8/tools/system-analyzer/processor.mjs | 24 +- .../view/code-panel-template.html | 4 +- .../tools/system-analyzer/view/code-panel.mjs | 13 +- deps/v8/tools/system-analyzer/view/helper.mjs | 95 +- .../view/list-panel-template.html | 4 +- .../tools/system-analyzer/view/list-panel.mjs | 20 +- .../view/map-panel-template.html | 2 +- .../tools/system-analyzer/view/map-panel.mjs | 197 +- .../view/map-panel/map-details.mjs | 2 +- .../view/map-panel/map-transitions.mjs | 2 +- .../view/script-panel-template.html | 10 +- .../system-analyzer/view/script-panel.mjs | 6 +- .../view/timeline/timeline-track.mjs | 4 +- .../view/tool-tip-template.html | 1 + .../tools/system-analyzer/view/tool-tip.mjs | 7 +- deps/v8/tools/testrunner/base_runner.py | 36 +- .../v8/tools/testrunner/local/junit_output.py | 49 - deps/v8/tools/testrunner/local/statusfile.py | 2 +- deps/v8/tools/testrunner/local/utils.py | 52 + deps/v8/tools/testrunner/local/variants.py | 20 +- deps/v8/tools/testrunner/outproc/message.py | 8 +- deps/v8/tools/testrunner/standard_runner.py | 2 +- deps/v8/tools/testrunner/testproc/fuzzer.py | 1 + deps/v8/tools/testrunner/testproc/progress.py | 40 - deps/v8/tools/tickprocessor-driver.mjs | 8 +- deps/v8/tools/tickprocessor.mjs | 25 +- .../ubsan/{blacklist.txt => ignorelist.txt} | 2 +- ...vptr_blacklist.txt => vptr_ignorelist.txt} | 6 +- deps/v8/tools/unittests/run_tests_test.py | 3 +- .../testdata/testroot1/v8_build_config.json | 3 + .../testdata/testroot2/v8_build_config.json | 3 + deps/v8/tools/v8.xcodeproj/README.txt | 11 + deps/v8/tools/v8_presubmit.py | 3 + deps/v8/tools/v8heapconst.py | 650 +-- deps/v8/tools/v8windbg/BUILD.gn | 5 +- deps/v8/tools/v8windbg/README.md | 4 - deps/v8/tools/v8windbg/src/list-chunks.cc | 238 - deps/v8/tools/v8windbg/src/list-chunks.h | 100 - .../tools/v8windbg/src/v8windbg-extension.cc | 4 - deps/v8/tools/whitespace.txt | 4 +- 1438 files changed, 54904 insertions(+), 39346 deletions(-) delete mode 100644 deps/v8/src/base/atomicops_internals_portable.h delete mode 100644 deps/v8/src/base/atomicops_internals_std.h create mode 100644 deps/v8/src/base/sanitizer/asan.h rename deps/v8/src/{ => base}/sanitizer/lsan-page-allocator.cc (97%) rename deps/v8/src/{ => base}/sanitizer/lsan-page-allocator.h (86%) rename deps/v8/src/base/{ => sanitizer}/lsan.h (75%) create mode 100644 deps/v8/src/base/sanitizer/msan.h create mode 100644 deps/v8/src/baseline/baseline-osr-inl.h create mode 100644 deps/v8/src/baseline/riscv64/baseline-assembler-riscv64-inl.h create mode 100644 deps/v8/src/baseline/riscv64/baseline-compiler-riscv64-inl.h create mode 100644 deps/v8/src/bigint/bigint-internal.cc create mode 100644 deps/v8/src/bigint/bigint-internal.h create mode 100644 deps/v8/src/bigint/digit-arithmetic.h create mode 100644 deps/v8/src/bigint/mul-schoolbook.cc create mode 100644 deps/v8/src/bigint/vector-arithmetic.h delete mode 100644 deps/v8/src/builtins/builtins-debug-gen.cc create mode 100644 deps/v8/src/codegen/arm/interface-descriptors-arm-inl.h delete mode 100644 deps/v8/src/codegen/arm/interface-descriptors-arm.cc create mode 100644 deps/v8/src/codegen/arm64/interface-descriptors-arm64-inl.h delete mode 100644 deps/v8/src/codegen/arm64/interface-descriptors-arm64.cc create mode 100644 deps/v8/src/codegen/ia32/interface-descriptors-ia32-inl.h delete mode 100644 deps/v8/src/codegen/ia32/interface-descriptors-ia32.cc create mode 100644 deps/v8/src/codegen/interface-descriptors-inl.h create mode 100644 deps/v8/src/codegen/mips/interface-descriptors-mips-inl.h delete mode 100644 deps/v8/src/codegen/mips/interface-descriptors-mips.cc create mode 100644 deps/v8/src/codegen/mips64/interface-descriptors-mips64-inl.h delete mode 100644 deps/v8/src/codegen/mips64/interface-descriptors-mips64.cc create mode 100644 deps/v8/src/codegen/ppc/interface-descriptors-ppc-inl.h delete mode 100644 deps/v8/src/codegen/ppc/interface-descriptors-ppc.cc create mode 100644 deps/v8/src/codegen/riscv64/interface-descriptors-riscv64-inl.h delete mode 100644 deps/v8/src/codegen/riscv64/interface-descriptors-riscv64.cc create mode 100644 deps/v8/src/codegen/s390/interface-descriptors-s390-inl.h delete mode 100644 deps/v8/src/codegen/s390/interface-descriptors-s390.cc create mode 100644 deps/v8/src/codegen/x64/interface-descriptors-x64-inl.h delete mode 100644 deps/v8/src/codegen/x64/interface-descriptors-x64.cc delete mode 100644 deps/v8/src/compiler/backend/ppc/OWNERS create mode 100644 deps/v8/src/compiler/heap-refs.cc delete mode 100644 deps/v8/src/compiler/scheduled-machine-lowering.cc delete mode 100644 deps/v8/src/compiler/scheduled-machine-lowering.h delete mode 100644 deps/v8/src/compiler/simd-scalar-lowering.cc delete mode 100644 deps/v8/src/compiler/simd-scalar-lowering.h delete mode 100644 deps/v8/src/debug/arm/debug-arm.cc delete mode 100644 deps/v8/src/debug/arm64/debug-arm64.cc delete mode 100644 deps/v8/src/debug/ia32/debug-ia32.cc delete mode 100644 deps/v8/src/debug/mips/debug-mips.cc delete mode 100644 deps/v8/src/debug/mips64/debug-mips64.cc delete mode 100644 deps/v8/src/debug/ppc/OWNERS delete mode 100644 deps/v8/src/debug/ppc/debug-ppc.cc delete mode 100644 deps/v8/src/debug/riscv64/debug-riscv64.cc delete mode 100644 deps/v8/src/debug/s390/debug-s390.cc delete mode 100644 deps/v8/src/debug/x64/debug-x64.cc create mode 100644 deps/v8/src/heap/code-range.cc create mode 100644 deps/v8/src/heap/code-range.h create mode 100644 deps/v8/src/heap/cppgc/memory.cc create mode 100644 deps/v8/src/heap/cppgc/memory.h create mode 100644 deps/v8/src/heap/cppgc/object-view.h delete mode 100644 deps/v8/src/heap/cppgc/sanitizers.h delete mode 100644 deps/v8/src/libplatform/tracing/recorder-default.cc create mode 100644 deps/v8/src/libplatform/tracing/recorder-mac.cc delete mode 100644 deps/v8/src/logging/counters-inl.h create mode 100644 deps/v8/src/logging/runtime-call-stats.cc create mode 100644 deps/v8/src/logging/runtime-call-stats.h create mode 100644 deps/v8/src/objects/megadom-handler-inl.h create mode 100644 deps/v8/src/objects/megadom-handler.h create mode 100644 deps/v8/src/objects/megadom-handler.tq delete mode 100644 deps/v8/src/regexp/ppc/OWNERS delete mode 100644 deps/v8/src/sanitizer/asan.h delete mode 100644 deps/v8/src/sanitizer/msan.h delete mode 100644 deps/v8/src/sanitizer/tsan.h delete mode 100644 deps/v8/src/wasm/baseline/ppc/OWNERS create mode 100644 deps/v8/src/wasm/branch-hint-map.h create mode 100644 deps/v8/src/wasm/memory-protection-key.cc create mode 100644 deps/v8/src/wasm/memory-protection-key.h create mode 100644 deps/v8/src/wasm/wasm-init-expr.cc create mode 100644 deps/v8/src/wasm/wasm-init-expr.h create mode 100644 deps/v8/test/cctest/compiler/test-verify-type.cc create mode 100644 deps/v8/test/cctest/heap/test-shared-heap.cc create mode 100644 deps/v8/test/cctest/test-ptr-compr-cage.cc delete mode 100644 deps/v8/test/cctest/wasm/test-run-wasm-simd-scalar-lowering.cc delete mode 100644 deps/v8/test/debugger/debug/debug-liveedit-double-call.js delete mode 100644 deps/v8/test/debugger/debug/debug-liveedit-exceptions.js delete mode 100644 deps/v8/test/debugger/debug/debug-liveedit-replace-code.js delete mode 100644 deps/v8/test/debugger/debug/debug-liveedit-restart-frame.js delete mode 100644 deps/v8/test/debugger/debug/debug-liveedit-stepin.js delete mode 100644 deps/v8/test/debugger/debug/es6/generators-debug-liveedit.js delete mode 100644 deps/v8/test/debugger/debug/es8/debug-async-liveedit.js create mode 100644 deps/v8/test/debugger/regress/regress-crbug-1156498.js delete mode 100644 deps/v8/test/inspector/debugger/access-obsolete-frame-expected.txt delete mode 100644 deps/v8/test/inspector/debugger/access-obsolete-frame.js create mode 100644 deps/v8/test/inspector/debugger/command-line-api-with-arrow-function-expected.txt create mode 100644 deps/v8/test/inspector/debugger/command-line-api-with-arrow-function.js delete mode 100644 deps/v8/test/inspector/debugger/set-script-source-2-expected.txt delete mode 100644 deps/v8/test/inspector/debugger/set-script-source-2.js delete mode 100644 deps/v8/test/inspector/debugger/set-script-source-stack-padding-expected.txt delete mode 100644 deps/v8/test/inspector/debugger/set-script-source-stack-padding.js create mode 100644 deps/v8/test/inspector/debugger/wasm-side-effect-free-debug-evaluate-expected.txt create mode 100644 deps/v8/test/inspector/debugger/wasm-side-effect-free-debug-evaluate.js create mode 100644 deps/v8/test/inspector/regress/regress-crbug-1195927-expected.txt create mode 100644 deps/v8/test/inspector/regress/regress-crbug-1195927.js create mode 100644 deps/v8/test/inspector/regress/regress-crbug-1197392-expected.txt create mode 100644 deps/v8/test/inspector/regress/regress-crbug-1197392.js create mode 100644 deps/v8/test/inspector/regress/regress-crbug-1207867-expected.txt create mode 100644 deps/v8/test/inspector/regress/regress-crbug-1207867.js create mode 100644 deps/v8/test/intl/locale/locale-info-check-property.js create mode 100644 deps/v8/test/intl/locale/locale-info-check-return-types.js create mode 100644 deps/v8/test/intl/locale/locale-info-ext.js create mode 100644 deps/v8/test/mjsunit/baseline/test-osr.js create mode 100644 deps/v8/test/mjsunit/compiler/bigint-asuintn.js create mode 100644 deps/v8/test/mjsunit/compiler/deopt-pretenure.js create mode 100644 deps/v8/test/mjsunit/compiler/fast-api-interface-types.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-1195650.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-1196185.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-1202312.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-1202625.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-1202924.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-1203116.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-crbug-11564.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-crbug-1201011.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-crbug-1201057.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-crbug-1201082.js create mode 100644 deps/v8/test/mjsunit/compiler/test-literal-map-migration.js create mode 100644 deps/v8/test/mjsunit/harmony/error-cause.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-import-assertions-dynamic-12.mjs create mode 100644 deps/v8/test/mjsunit/ic-megadom-2.js create mode 100644 deps/v8/test/mjsunit/ic-megadom.js create mode 100644 deps/v8/test/mjsunit/regress-10782.js create mode 100644 deps/v8/test/mjsunit/regress/regress-1189077.js create mode 100644 deps/v8/test/mjsunit/regress/regress-1201114.js create mode 100644 deps/v8/test/mjsunit/regress/regress-1204748.js create mode 100644 deps/v8/test/mjsunit/regress/regress-1205290.js create mode 100644 deps/v8/test/mjsunit/regress/regress-1207679.js create mode 100644 deps/v8/test/mjsunit/regress/regress-1208782.js create mode 100644 deps/v8/test/mjsunit/regress/regress-1212583.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-1163499.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-1209152.js create mode 100644 deps/v8/test/mjsunit/regress/regress-v8-11290.js create mode 100644 deps/v8/test/mjsunit/regress/regress-v8-11616.js create mode 100644 deps/v8/test/mjsunit/regress/regress-v8-11851.js delete mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-11809.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-1196837.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-1199662.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-1200231.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-1202736.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-1217064.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-1227351.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-1228720.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-crbug-1203692.js create mode 100644 deps/v8/test/mjsunit/resizablearraybuffer-growablesharedarraybuffer.js create mode 100644 deps/v8/test/mjsunit/tools/tickprocessor-test-func-info.log.symbols.json create mode 100644 deps/v8/test/mjsunit/tools/tickprocessor-test-large.default create mode 100644 deps/v8/test/mjsunit/tools/tickprocessor-test-large.js create mode 100644 deps/v8/test/mjsunit/tools/tickprocessor-test-large.log create mode 100644 deps/v8/test/mjsunit/tools/tickprocessor-test-large.log.symbols.json create mode 100644 deps/v8/test/mjsunit/tools/tickprocessor-test.log.symbols.json create mode 100644 deps/v8/test/mjsunit/tools/tickprocessor-test.separate-baseline-handlers create mode 100644 deps/v8/test/mjsunit/tools/tickprocessor-test.separate-bytecodes create mode 100644 deps/v8/test/mjsunit/typedarray-growablesharedarraybuffer.js create mode 100644 deps/v8/test/mjsunit/typedarray-resizablearraybuffer-detach.js create mode 100644 deps/v8/test/mjsunit/typedarray-resizablearraybuffer.js create mode 100644 deps/v8/test/mjsunit/wasm/element-segments-with-reftypes.js delete mode 100644 deps/v8/test/unittests/compiler/ppc/OWNERS create mode 100644 deps/v8/test/unittests/heap/cppgc/allocation-unittest.cc create mode 100644 deps/v8/test/unittests/heap/cppgc/heap-registry-unittest.cc create mode 100644 deps/v8/test/unittests/heap/cppgc/sanitizer-unittest.cc create mode 100644 deps/v8/test/unittests/heap/cppgc/workloads-unittest.cc create mode 100644 deps/v8/test/unittests/logging/runtime-call-stats-unittest.cc create mode 100644 deps/v8/test/unittests/regexp/regexp-unittest.cc create mode 100644 deps/v8/third_party/google_benchmark/BUILD.gn create mode 100644 deps/v8/third_party/google_benchmark/OWNERS create mode 100644 deps/v8/third_party/google_benchmark/README.v8 create mode 100644 deps/v8/tools/clusterfuzz/testdata/failure_output_arch.txt create mode 100644 deps/v8/tools/clusterfuzz/testdata/failure_output_second.txt delete mode 100644 deps/v8/tools/testrunner/local/junit_output.py rename deps/v8/tools/ubsan/{blacklist.txt => ignorelist.txt} (97%) rename deps/v8/tools/ubsan/{vptr_blacklist.txt => vptr_ignorelist.txt} (79%) create mode 100644 deps/v8/tools/v8.xcodeproj/README.txt delete mode 100644 deps/v8/tools/v8windbg/src/list-chunks.cc delete mode 100644 deps/v8/tools/v8windbg/src/list-chunks.h diff --git a/deps/v8/.gn b/deps/v8/.gn index d4ad959954845f..a691fa339b0430 100644 --- a/deps/v8/.gn +++ b/deps/v8/.gn @@ -7,11 +7,21 @@ import("//build/dotfile_settings.gni") # The location of the build configuration file. buildconfig = "//build/config/BUILDCONFIG.gn" +# The python interpreter to use by default. On Windows, this will look +# for python3.exe and python3.bat. +script_executable = "python3" + # These are the targets to check headers for by default. The files in targets # matching these patterns (see "gn help label_pattern" for format) will have # their includes checked for proper dependencies when you run either # "gn check" or "gn gen --check". -check_targets = [] +no_check_targets = [ + "//:cppgc_base", + "//:v8_internal_headers", + "//src/inspector:inspector", + "//test/cctest:cctest_sources", + "//third_party/icu:*", +] # These are the list of GN files that run exec_script. This whitelist exists # to force additional review for new uses of exec_script, which is strongly diff --git a/deps/v8/AUTHORS b/deps/v8/AUTHORS index abfdc7887ba512..15909406cc6ebe 100644 --- a/deps/v8/AUTHORS +++ b/deps/v8/AUTHORS @@ -84,6 +84,7 @@ Colin Ihrig Cong Zuo Daniel Andersson Daniel Bevenius +Daniel Dromboski Daniel James David Carlier David Manouchehri @@ -229,6 +230,7 @@ Vladimir Krivosheev Vladimir Shutoff Wei Wu Wenlu Wang +Wenyu Zhao Wiktor Garbacz Wouter Vermeiren Xiaofang Zou @@ -240,6 +242,7 @@ Yong Wang Youfeng Hao Yu Yin Yusif Khudhur +Yuri Iozzelli Zac Hansen Zeynep Cankara Zhao Jiazhong diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn index d2bfb6129dcf2b..5e3045bfdc1d80 100644 --- a/deps/v8/BUILD.gn +++ b/deps/v8/BUILD.gn @@ -41,7 +41,7 @@ declare_args() { v8_enable_future = false # Sets -DSYSTEM_INSTRUMENTATION. Enables OS-dependent event tracing - v8_enable_system_instrumentation = true + v8_enable_system_instrumentation = is_win || is_mac # Sets the GUID for the ETW provider v8_etw_guid = "" @@ -95,8 +95,19 @@ declare_args() { v8_win64_unwinding_info = true # Enable code comments for builtins in the snapshot (impacts performance). + # This also enables v8_code_comments. v8_enable_snapshot_code_comments = false + # Allow runtime-enabled code comments (with --code-comments). Enabled by + # default in debug builds. + # Sets -dV8_CODE_COMMENTS + v8_code_comments = "" + + # Allow runtime-enabled debug code (with --debug-code). Enabled by default in + # debug builds. + # Sets -dV8_ENABLE_DEBUG_CODE + v8_enable_debug_code = "" + # Enable native counters from the snapshot (impacts performance, sets # -dV8_SNAPSHOT_NATIVE_CODE_COUNTERS). # This option will generate extra code in the snapshot to increment counters, @@ -200,10 +211,6 @@ declare_args() { (is_linux || is_chromeos || is_mac)) || (v8_current_cpu == "ppc64" && (is_linux || is_chromeos)) - # Temporary flag to allow embedders to update their microtasks scopes - # while rolling in a new version of V8. - v8_check_microtasks_scopes_consistency = "" - # Enable mitigations for executing untrusted code. # Disabled by default on ia32 due to conflicting requirements with embedded # builtins. Enabled by default on Android since it doesn't support @@ -272,6 +279,10 @@ declare_args() { # Enable heap reservation of size 4GB. Only possible for 64bit archs. cppgc_enable_caged_heap = v8_current_cpu == "x64" || v8_current_cpu == "arm64" + # Enable verification of live bytes in the marking verifier. + # TODO(v8:11785): Enable by default when running with the verifier. + cppgc_enable_verify_live_bytes = false + # Enable young generation in cppgc. cppgc_enable_young_generation = false @@ -300,6 +311,12 @@ declare_args() { # meaning that they are not switched to fast mode. # Sets -DV8_DICT_PROPERTY_CONST_TRACKING v8_dict_property_const_tracking = false + + # Enable map packing & unpacking (sets -dV8_MAP_PACKING). + v8_enable_map_packing = false + + # Allow for JS promise hooks (instead of just C++). + v8_allow_javascript_in_promise_hooks = false } # Derived defaults. @@ -321,9 +338,15 @@ if (v8_enable_test_features == "") { if (v8_enable_v8_checks == "") { v8_enable_v8_checks = v8_enable_debugging_features } -if (v8_check_microtasks_scopes_consistency == "") { - v8_check_microtasks_scopes_consistency = - v8_enable_debugging_features || dcheck_always_on +if (v8_enable_snapshot_code_comments) { + assert(v8_code_comments == true || v8_code_comments == "", + "v8_enable_snapshot_code_comments conflicts with v8_code_comments.") + v8_code_comments = true +} else if (v8_code_comments == "") { + v8_code_comments = v8_enable_debugging_features +} +if (v8_enable_debug_code == "") { + v8_enable_debug_code = v8_enable_debugging_features } if (v8_enable_snapshot_native_code_counters == "") { v8_enable_snapshot_native_code_counters = v8_enable_debugging_features @@ -333,7 +356,7 @@ if (v8_enable_pointer_compression == "") { v8_current_cpu == "arm64" || v8_current_cpu == "x64" } if (v8_enable_pointer_compression_shared_cage == "") { - v8_enable_pointer_compression_shared_cage = false + v8_enable_pointer_compression_shared_cage = v8_enable_pointer_compression } if (v8_enable_fast_torque == "") { v8_enable_fast_torque = v8_enable_fast_mksnapshot @@ -357,6 +380,13 @@ if (v8_enable_atomic_object_field_writes == "") { if (v8_enable_atomic_marking_state == "") { v8_enable_atomic_marking_state = v8_enable_concurrent_marking } +if (v8_enable_third_party_heap) { + v8_disable_write_barriers = true + v8_enable_single_generation = true + v8_enable_shared_ro_heap = false + v8_enable_pointer_compression = false + v8_enable_pointer_compression_shared_cage = false +} assert(!v8_enable_concurrent_marking || v8_enable_atomic_object_field_writes, "Concurrent marking requires atomic object field writes.") assert(!v8_enable_concurrent_marking || v8_enable_atomic_marking_state, @@ -386,7 +416,8 @@ if (v8_enable_short_builtin_calls && v8_enable_short_builtin_calls = false } if (v8_enable_shared_ro_heap == "") { - v8_enable_shared_ro_heap = !v8_enable_pointer_compression + v8_enable_shared_ro_heap = !v8_enable_pointer_compression || + v8_enable_pointer_compression_shared_cage } assert(!v8_disable_write_barriers || v8_enable_single_generation, @@ -398,15 +429,18 @@ assert(v8_current_cpu != "x86" || !v8_untrusted_code_mitigations, assert(v8_current_cpu == "arm64" || !v8_control_flow_integrity, "Control-flow integrity is only supported on arm64") -if (v8_enable_shared_ro_heap && v8_enable_pointer_compression) { +if (v8_enable_shared_ro_heap && v8_enable_pointer_compression && + !v8_enable_pointer_compression_shared_cage) { assert( is_linux || is_chromeos || is_android, "Sharing read-only heap with pointer compression is only supported on Linux or Android") } -assert( - !v8_enable_pointer_compression_shared_cage || !v8_enable_shared_ro_heap, - "Sharing read-only heap is not yet supported when sharing a pointer compression cage") +assert(!v8_enable_map_packing || !v8_enable_pointer_compression, + "Map packing does not support pointer compression") + +assert(!v8_enable_map_packing || v8_current_cpu == "x64", + "Map packing is only supported on x64") assert(!v8_use_multi_snapshots || !v8_control_flow_integrity, "Control-flow integrity does not support multisnapshots") @@ -418,6 +452,10 @@ assert( !v8_enable_pointer_compression_shared_cage || v8_enable_pointer_compression, "Can't share a pointer compression cage if pointers aren't compressed") +assert(!v8_enable_pointer_compression_shared_cage || v8_current_cpu == "x64" || + v8_current_cpu == "arm64", + "Sharing a pointer compression cage is only supported on x64 and arm64") + assert(!v8_enable_unconditional_write_barriers || !v8_disable_write_barriers, "Write barriers can't be both enabled and disabled") @@ -566,6 +604,7 @@ external_v8_defines = [ "V8_IMMINENT_DEPRECATION_WARNINGS", "V8_NO_ARGUMENTS_ADAPTOR", "V8_USE_PERFETTO", + "V8_MAP_PACKING", ] enabled_external_v8_defines = [] @@ -575,11 +614,11 @@ if (v8_enable_v8_checks) { } if (v8_enable_pointer_compression) { enabled_external_v8_defines += [ "V8_COMPRESS_POINTERS" ] -} -if (v8_enable_pointer_compression_shared_cage) { - enabled_external_v8_defines += [ "V8_COMPRESS_POINTERS_IN_SHARED_CAGE" ] -} else if (v8_enable_pointer_compression) { - enabled_external_v8_defines += [ "V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE" ] + if (v8_enable_pointer_compression_shared_cage) { + enabled_external_v8_defines += [ "V8_COMPRESS_POINTERS_IN_SHARED_CAGE" ] + } else { + enabled_external_v8_defines += [ "V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE" ] + } } if (v8_enable_pointer_compression || v8_enable_31bit_smis_on_64bit_arch) { enabled_external_v8_defines += [ "V8_31BIT_SMIS_ON_64BIT_ARCH" ] @@ -599,6 +638,9 @@ if (v8_imminent_deprecation_warnings) { if (v8_use_perfetto) { enabled_external_v8_defines += [ "V8_USE_PERFETTO" ] } +if (v8_enable_map_packing) { + enabled_external_v8_defines += [ "V8_MAP_PACKING" ] +} disabled_external_v8_defines = external_v8_defines - enabled_external_v8_defines @@ -665,6 +707,10 @@ config("features") { ":cppgc_header_features", ] + if (cppgc_enable_verify_live_bytes) { + defines += [ "CPPGC_VERIFY_LIVE_BYTES" ] + } + if (v8_embedder_string != "") { defines += [ "V8_EMBEDDER_STRING=\"$v8_embedder_string\"" ] } @@ -729,6 +775,12 @@ config("features") { if (v8_enable_handle_zapping) { defines += [ "ENABLE_HANDLE_ZAPPING" ] } + if (v8_code_comments == true) { + defines += [ "V8_CODE_COMMENTS" ] + } + if (v8_enable_debug_code) { + defines += [ "V8_ENABLE_DEBUG_CODE" ] + } if (v8_enable_snapshot_native_code_counters) { defines += [ "V8_SNAPSHOT_NATIVE_CODE_COUNTERS" ] } @@ -756,9 +808,6 @@ config("features") { if (v8_enable_lazy_source_positions) { defines += [ "V8_ENABLE_LAZY_SOURCE_POSITIONS" ] } - if (v8_check_microtasks_scopes_consistency) { - defines += [ "V8_CHECK_MICROTASKS_SCOPES_CONSISTENCY" ] - } if (v8_use_multi_snapshots) { defines += [ "V8_MULTI_SNAPSHOTS" ] } @@ -807,6 +856,9 @@ config("features") { if (v8_dict_property_const_tracking) { defines += [ "V8_DICT_PROPERTY_CONST_TRACKING" ] } + if (v8_allow_javascript_in_promise_hooks) { + defines += [ "V8_ALLOW_JAVASCRIPT_IN_PROMISE_HOOKS" ] + } } config("toolchain") { @@ -1038,6 +1090,10 @@ config("toolchain") { defines += [ "ENABLE_VERIFY_CSA" ] } + if (v8_enable_runtime_call_stats) { + defines += [ "V8_RUNTIME_CALL_STATS" ] + } + if (!v8_untrusted_code_mitigations) { defines += [ "DISABLE_UNTRUSTED_CODE_MITIGATIONS" ] } @@ -1244,6 +1300,8 @@ action("postmortem-metadata") { "src/objects/map.cc", "src/objects/map.h", "src/objects/map-inl.h", + "src/objects/megadom-handler.h", + "src/objects/megadom-handler-inl.h", "src/objects/name.h", "src/objects/name-inl.h", "src/objects/objects.h", @@ -1432,6 +1490,7 @@ torque_files = [ "src/objects/js-weak-refs.tq", "src/objects/literal-objects.tq", "src/objects/map.tq", + "src/objects/megadom-handler.tq", "src/objects/microtask.tq", "src/objects/module.tq", "src/objects/name.tq", @@ -1515,44 +1574,37 @@ template("run_torque") { destination_folder = "$target_gen_dir/torque-generated$suffix" - files = [ - "$target_gen_dir/torque-generated/bit-fields.h", - "$target_gen_dir/torque-generated/builtin-definitions.h", - "$target_gen_dir/torque-generated/class-debug-readers.cc", - "$target_gen_dir/torque-generated/class-debug-readers.h", - "$target_gen_dir/torque-generated/class-forward-declarations.h", - "$target_gen_dir/torque-generated/class-verifiers.cc", - "$target_gen_dir/torque-generated/class-verifiers.h", - "$target_gen_dir/torque-generated/csa-types.h", - "$target_gen_dir/torque-generated/debug-macros.cc", - "$target_gen_dir/torque-generated/debug-macros.h", - "$target_gen_dir/torque-generated/enum-verifiers.cc", - "$target_gen_dir/torque-generated/exported-macros-assembler.cc", - "$target_gen_dir/torque-generated/exported-macros-assembler.h", - "$target_gen_dir/torque-generated/factory.cc", - "$target_gen_dir/torque-generated/factory.inc", - "$target_gen_dir/torque-generated/field-offsets.h", - "$target_gen_dir/torque-generated/instance-types.h", - "$target_gen_dir/torque-generated/interface-descriptors.inc", - "$target_gen_dir/torque-generated/objects-body-descriptors-inl.inc", - "$target_gen_dir/torque-generated/objects-printer.cc", + outputs = [ + "$destination_folder/bit-fields.h", + "$destination_folder/builtin-definitions.h", + "$destination_folder/class-debug-readers.cc", + "$destination_folder/class-debug-readers.h", + "$destination_folder/class-forward-declarations.h", + "$destination_folder/class-verifiers.cc", + "$destination_folder/class-verifiers.h", + "$destination_folder/csa-types.h", + "$destination_folder/debug-macros.cc", + "$destination_folder/debug-macros.h", + "$destination_folder/enum-verifiers.cc", + "$destination_folder/exported-macros-assembler.cc", + "$destination_folder/exported-macros-assembler.h", + "$destination_folder/factory.cc", + "$destination_folder/factory.inc", + "$destination_folder/field-offsets.h", + "$destination_folder/instance-types.h", + "$destination_folder/interface-descriptors.inc", + "$destination_folder/objects-body-descriptors-inl.inc", + "$destination_folder/objects-printer.cc", ] - outputs = [] - foreach(file, files) { - outputs += [ string_replace(file, - "$target_gen_dir/torque-generated", - destination_folder) ] - } - foreach(file, torque_files) { filetq = string_replace(file, ".tq", "-tq") outputs += [ - "$target_gen_dir/torque-generated/$filetq-csa.cc", - "$target_gen_dir/torque-generated/$filetq-csa.h", - "$target_gen_dir/torque-generated/$filetq-inl.inc", - "$target_gen_dir/torque-generated/$filetq.cc", - "$target_gen_dir/torque-generated/$filetq.inc", + "$destination_folder/$filetq-csa.cc", + "$destination_folder/$filetq-csa.h", + "$destination_folder/$filetq-inl.inc", + "$destination_folder/$filetq.cc", + "$destination_folder/$filetq.inc", ] } @@ -1892,11 +1944,16 @@ action("v8_dump_build_config") { "v8_enable_atomic_object_field_writes=" + "$v8_enable_atomic_object_field_writes", "v8_enable_concurrent_marking=$v8_enable_concurrent_marking", + "v8_enable_single_generation=$v8_enable_single_generation", "v8_enable_i18n_support=$v8_enable_i18n_support", "v8_enable_verify_predictable=$v8_enable_verify_predictable", "v8_enable_verify_csa=$v8_enable_verify_csa", "v8_enable_lite_mode=$v8_enable_lite_mode", + "v8_enable_runtime_call_stats=$v8_enable_runtime_call_stats", "v8_enable_pointer_compression=$v8_enable_pointer_compression", + "v8_enable_pointer_compression_shared_cage=" + + "$v8_enable_pointer_compression_shared_cage", + "v8_enable_third_party_heap=$v8_enable_third_party_heap", "v8_enable_webassembly=$v8_enable_webassembly", "v8_control_flow_integrity=$v8_control_flow_integrity", "v8_target_cpu=\"$v8_target_cpu\"", @@ -1918,7 +1975,10 @@ action("v8_dump_build_config") { v8_source_set("v8_snapshot") { visibility = [ ":*" ] # Targets in this file can depend on this. - deps = [] + deps = [ + ":v8_internal_headers", + ":v8_libbase", + ] public_deps = [ # This should be public so downstream targets can declare the snapshot # output file as their inputs. @@ -2000,7 +2060,6 @@ v8_source_set("v8_initializers") { "src/builtins/builtins-conversion-gen.cc", "src/builtins/builtins-data-view-gen.h", "src/builtins/builtins-date-gen.cc", - "src/builtins/builtins-debug-gen.cc", "src/builtins/builtins-generator-gen.cc", "src/builtins/builtins-global-gen.cc", "src/builtins/builtins-handler-gen.cc", @@ -2226,9 +2285,8 @@ if (v8_generate_external_defines_header) { v8_header_set("v8_shared_internal_headers") { visibility = [ ":*", - "test/cctest:*", - "test/unittests:*", - "tools/debug_helper/:*", + "test/*", + "tools/*", ] configs = [ ":internal_config" ] @@ -2245,7 +2303,10 @@ v8_header_set("v8_shared_internal_headers") { } v8_header_set("v8_flags") { - visibility = [ ":*" ] + visibility = [ + ":*", + "tools/*", + ] configs = [ ":internal_config" ] @@ -2273,6 +2334,7 @@ v8_header_set("v8_internal_headers") { "src/api/api-arguments-inl.h", "src/api/api-arguments.h", "src/api/api-inl.h", + "src/api/api-macros-undef.h", "src/api/api-macros.h", "src/api/api-natives.h", "src/api/api.h", @@ -2289,6 +2351,7 @@ v8_header_set("v8_internal_headers") { "src/baseline/baseline-assembler-inl.h", "src/baseline/baseline-assembler.h", "src/baseline/baseline-compiler.h", + "src/baseline/baseline-osr-inl.h", "src/baseline/baseline.h", "src/baseline/bytecode-offset-iterator.h", "src/builtins/accessors.h", @@ -2321,6 +2384,7 @@ v8_header_set("v8_internal_headers") { "src/codegen/external-reference.h", "src/codegen/flush-instruction-cache.h", "src/codegen/handler-table.h", + "src/codegen/interface-descriptors-inl.h", "src/codegen/interface-descriptors.h", "src/codegen/label.h", "src/codegen/machine-type.h", @@ -2382,6 +2446,7 @@ v8_header_set("v8_internal_headers") { "src/compiler/common-operator-reducer.h", "src/compiler/common-operator.h", "src/compiler/compilation-dependencies.h", + "src/compiler/compilation-dependency.h", "src/compiler/compiler-source-position-table.h", "src/compiler/constant-folding-reducer.h", "src/compiler/control-equivalence.h", @@ -2448,18 +2513,17 @@ v8_header_set("v8_internal_headers") { "src/compiler/persistent-map.h", "src/compiler/pipeline-statistics.h", "src/compiler/pipeline.h", + "src/compiler/processed-feedback.h", "src/compiler/property-access-builder.h", "src/compiler/raw-machine-assembler.h", "src/compiler/redundancy-elimination.h", "src/compiler/refs-map.h", "src/compiler/representation-change.h", "src/compiler/schedule.h", - "src/compiler/scheduled-machine-lowering.h", "src/compiler/scheduler.h", "src/compiler/select-lowering.h", "src/compiler/serializer-for-background-compilation.h", "src/compiler/serializer-hints.h", - "src/compiler/simd-scalar-lowering.h", "src/compiler/simplified-lowering.h", "src/compiler/simplified-operator-reducer.h", "src/compiler/simplified-operator.h", @@ -2517,6 +2581,7 @@ v8_header_set("v8_internal_headers") { "src/execution/interrupts-scope.h", "src/execution/isolate-data.h", "src/execution/isolate-inl.h", + "src/execution/isolate-utils-inl.h", "src/execution/isolate-utils.h", "src/execution/isolate.h", "src/execution/local-isolate-inl.h", @@ -2557,6 +2622,7 @@ v8_header_set("v8_internal_headers") { "src/heap/base-space.h", "src/heap/basic-memory-chunk.h", "src/heap/code-object-registry.h", + "src/heap/code-range.h", "src/heap/code-stats.h", "src/heap/collection-barrier.h", "src/heap/combined-heap.h", @@ -2592,11 +2658,13 @@ v8_header_set("v8_internal_headers") { "src/heap/list.h", "src/heap/local-allocator-inl.h", "src/heap/local-allocator.h", + "src/heap/local-factory-inl.h", "src/heap/local-factory.h", "src/heap/local-heap-inl.h", "src/heap/local-heap.h", "src/heap/mark-compact-inl.h", "src/heap/mark-compact.h", + "src/heap/marking-barrier-inl.h", "src/heap/marking-barrier.h", "src/heap/marking-visitor-inl.h", "src/heap/marking-visitor.h", @@ -2679,13 +2747,13 @@ v8_header_set("v8_internal_headers") { "src/libsampler/sampler.h", "src/logging/code-events.h", "src/logging/counters-definitions.h", - "src/logging/counters-inl.h", "src/logging/counters.h", "src/logging/local-logger.h", "src/logging/log-inl.h", "src/logging/log-utils.h", "src/logging/log.h", "src/logging/metrics.h", + "src/logging/runtime-call-stats.h", "src/logging/tracing-flags.h", "src/numbers/bignum-dtoa.h", "src/numbers/bignum.h", @@ -2766,6 +2834,7 @@ v8_header_set("v8_internal_headers") { "src/objects/js-array-inl.h", "src/objects/js-array.h", "src/objects/js-collection-inl.h", + "src/objects/js-collection-iterator-inl.h", "src/objects/js-collection-iterator.h", "src/objects/js-collection.h", "src/objects/js-function-inl.h", @@ -2782,6 +2851,8 @@ v8_header_set("v8_internal_headers") { "src/objects/js-regexp-string-iterator-inl.h", "src/objects/js-regexp-string-iterator.h", "src/objects/js-regexp.h", + "src/objects/js-segments-inl.h", + "src/objects/js-segments.h", "src/objects/js-weak-refs-inl.h", "src/objects/js-weak-refs.h", "src/objects/keys.h", @@ -2797,6 +2868,8 @@ v8_header_set("v8_internal_headers") { "src/objects/map.h", "src/objects/maybe-object-inl.h", "src/objects/maybe-object.h", + "src/objects/megadom-handler-inl.h", + "src/objects/megadom-handler.h", "src/objects/microtask-inl.h", "src/objects/microtask.h", "src/objects/module-inl.h", @@ -2831,6 +2904,7 @@ v8_header_set("v8_internal_headers") { "src/objects/property.h", "src/objects/prototype-info-inl.h", "src/objects/prototype-info.h", + "src/objects/prototype-inl.h", "src/objects/prototype.h", "src/objects/regexp-match-info.h", "src/objects/scope-info-inl.h", @@ -2842,6 +2916,7 @@ v8_header_set("v8_internal_headers") { "src/objects/slots-atomic-inl.h", "src/objects/slots-inl.h", "src/objects/slots.h", + "src/objects/source-text-module-inl.h", "src/objects/source-text-module.h", "src/objects/stack-frame-info-inl.h", "src/objects/stack-frame-info.h", @@ -2880,6 +2955,7 @@ v8_header_set("v8_internal_headers") { "src/parsing/expression-scope.h", "src/parsing/func-name-inferrer.h", "src/parsing/import-assertions.h", + "src/parsing/keywords-gen.h", "src/parsing/literal-buffer.h", "src/parsing/parse-info.h", "src/parsing/parser-base.h", @@ -2892,6 +2968,7 @@ v8_header_set("v8_internal_headers") { "src/parsing/preparser.h", "src/parsing/rewriter.h", "src/parsing/scanner-character-streams.h", + "src/parsing/scanner-inl.h", "src/parsing/scanner.h", "src/parsing/token.h", "src/profiler/allocation-tracker.h", @@ -2939,10 +3016,6 @@ v8_header_set("v8_internal_headers") { "src/roots/roots.h", "src/runtime/runtime-utils.h", "src/runtime/runtime.h", - "src/sanitizer/asan.h", - "src/sanitizer/lsan-page-allocator.h", - "src/sanitizer/msan.h", - "src/sanitizer/tsan.h", "src/snapshot/code-serializer.h", "src/snapshot/context-deserializer.h", "src/snapshot/context-serializer.h", @@ -2980,6 +3053,7 @@ v8_header_set("v8_internal_headers") { "src/tasks/task-utils.h", "src/third_party/siphash/halfsiphash.h", "src/third_party/utf8-decoder/utf8-decoder.h", + "src/torque/runtime-macro-shims.h", "src/tracing/trace-event.h", "src/tracing/traced-value.h", "src/tracing/tracing-category-observer.h", @@ -3046,6 +3120,7 @@ v8_header_set("v8_internal_headers") { "src/wasm/jump-table-assembler.h", "src/wasm/leb-helper.h", "src/wasm/local-decl-encoder.h", + "src/wasm/memory-protection-key.h", "src/wasm/memory-tracing.h", "src/wasm/module-compiler.h", "src/wasm/module-decoder.h", @@ -3063,6 +3138,7 @@ v8_header_set("v8_internal_headers") { "src/wasm/wasm-feature-flags.h", "src/wasm/wasm-features.h", "src/wasm/wasm-import-wrapper-cache.h", + "src/wasm/wasm-init-expr.h", "src/wasm/wasm-js.h", "src/wasm/wasm-linkage.h", "src/wasm/wasm-module-builder.h", @@ -3070,6 +3146,7 @@ v8_header_set("v8_internal_headers") { "src/wasm/wasm-module.h", "src/wasm/wasm-objects-inl.h", "src/wasm/wasm-objects.h", + "src/wasm/wasm-opcodes-inl.h", "src/wasm/wasm-opcodes.h", "src/wasm/wasm-result.h", "src/wasm/wasm-serialization.h", @@ -3140,6 +3217,7 @@ v8_header_set("v8_internal_headers") { "src/codegen/ia32/assembler-ia32-inl.h", "src/codegen/ia32/assembler-ia32.h", "src/codegen/ia32/constants-ia32.h", + "src/codegen/ia32/interface-descriptors-ia32-inl.h", "src/codegen/ia32/macro-assembler-ia32.h", "src/codegen/ia32/register-ia32.h", "src/codegen/ia32/sse-instr.h", @@ -3158,6 +3236,7 @@ v8_header_set("v8_internal_headers") { "src/codegen/x64/assembler-x64.h", "src/codegen/x64/constants-x64.h", "src/codegen/x64/fma-instr.h", + "src/codegen/x64/interface-descriptors-x64-inl.h", "src/codegen/x64/macro-assembler-x64.h", "src/codegen/x64/register-x64.h", "src/codegen/x64/sse-instr.h", @@ -3187,6 +3266,7 @@ v8_header_set("v8_internal_headers") { "src/codegen/arm/assembler-arm-inl.h", "src/codegen/arm/assembler-arm.h", "src/codegen/arm/constants-arm.h", + "src/codegen/arm/interface-descriptors-arm-inl.h", "src/codegen/arm/macro-assembler-arm.h", "src/codegen/arm/register-arm.h", "src/compiler/backend/arm/instruction-codes-arm.h", @@ -3206,6 +3286,7 @@ v8_header_set("v8_internal_headers") { "src/codegen/arm64/decoder-arm64-inl.h", "src/codegen/arm64/decoder-arm64.h", "src/codegen/arm64/instructions-arm64.h", + "src/codegen/arm64/interface-descriptors-arm64-inl.h", "src/codegen/arm64/macro-assembler-arm64-inl.h", "src/codegen/arm64/macro-assembler-arm64.h", "src/codegen/arm64/register-arm64.h", @@ -3259,11 +3340,10 @@ v8_header_set("v8_internal_headers") { ] } else if (v8_current_cpu == "ppc") { sources += [ ### gcmole(arch:ppc) ### - "src/baseline/ppc/baseline-assembler-ppc-inl.h", - "src/baseline/ppc/baseline-compiler-ppc-inl.h", "src/codegen/ppc/assembler-ppc-inl.h", "src/codegen/ppc/assembler-ppc.h", "src/codegen/ppc/constants-ppc.h", + "src/codegen/ppc/interface-descriptors-ppc-inl.h", "src/codegen/ppc/macro-assembler-ppc.h", "src/codegen/ppc/register-ppc.h", "src/compiler/backend/ppc/instruction-codes-ppc.h", @@ -3275,11 +3355,10 @@ v8_header_set("v8_internal_headers") { ] } else if (v8_current_cpu == "ppc64") { sources += [ ### gcmole(arch:ppc64) ### - "src/baseline/ppc/baseline-assembler-ppc-inl.h", - "src/baseline/ppc/baseline-compiler-ppc-inl.h", "src/codegen/ppc/assembler-ppc-inl.h", "src/codegen/ppc/assembler-ppc.h", "src/codegen/ppc/constants-ppc.h", + "src/codegen/ppc/interface-descriptors-ppc-inl.h", "src/codegen/ppc/macro-assembler-ppc.h", "src/codegen/ppc/register-ppc.h", "src/compiler/backend/ppc/instruction-codes-ppc.h", @@ -3296,6 +3375,7 @@ v8_header_set("v8_internal_headers") { "src/codegen/s390/assembler-s390-inl.h", "src/codegen/s390/assembler-s390.h", "src/codegen/s390/constants-s390.h", + "src/codegen/s390/interface-descriptors-s390-inl.h", "src/codegen/s390/macro-assembler-s390.h", "src/codegen/s390/register-s390.h", "src/compiler/backend/s390/instruction-codes-s390.h", @@ -3384,6 +3464,7 @@ v8_compiler_sources = [ "src/compiler/graph-trimmer.cc", "src/compiler/graph-visualizer.cc", "src/compiler/graph.cc", + "src/compiler/heap-refs.cc", "src/compiler/js-call-reducer.cc", "src/compiler/js-context-specialization.cc", "src/compiler/js-create-lowering.cc", @@ -3430,7 +3511,6 @@ v8_compiler_sources = [ "src/compiler/refs-map.cc", "src/compiler/representation-change.cc", "src/compiler/schedule.cc", - "src/compiler/scheduled-machine-lowering.cc", "src/compiler/scheduler.cc", "src/compiler/select-lowering.cc", "src/compiler/serializer-for-background-compilation.cc", @@ -3452,7 +3532,6 @@ v8_compiler_sources = [ if (v8_enable_webassembly) { v8_compiler_sources += [ "src/compiler/int64-lowering.cc", - "src/compiler/simd-scalar-lowering.cc", "src/compiler/wasm-compiler.cc", ] } @@ -3676,6 +3755,7 @@ v8_source_set("v8_base_without_compiler") { "src/heap/base-space.cc", "src/heap/basic-memory-chunk.cc", "src/heap/code-object-registry.cc", + "src/heap/code-range.cc", "src/heap/code-stats.cc", "src/heap/collection-barrier.cc", "src/heap/combined-heap.cc", @@ -3763,6 +3843,7 @@ v8_source_set("v8_base_without_compiler") { "src/logging/log-utils.cc", "src/logging/log.cc", "src/logging/metrics.cc", + "src/logging/runtime-call-stats.cc", "src/logging/tracing-flags.cc", "src/numbers/bignum-dtoa.cc", "src/numbers/bignum.cc", @@ -3908,7 +3989,6 @@ v8_source_set("v8_base_without_compiler") { "src/runtime/runtime-typedarray.cc", "src/runtime/runtime-weak-refs.cc", "src/runtime/runtime.cc", - "src/sanitizer/lsan-page-allocator.cc", "src/snapshot/code-serializer.cc", "src/snapshot/context-deserializer.cc", "src/snapshot/context-serializer.cc", @@ -3977,6 +4057,7 @@ v8_source_set("v8_base_without_compiler") { "src/wasm/graph-builder-interface.cc", "src/wasm/jump-table-assembler.cc", "src/wasm/local-decl-encoder.cc", + "src/wasm/memory-protection-key.cc", "src/wasm/memory-tracing.cc", "src/wasm/module-compiler.cc", "src/wasm/module-decoder.cc", @@ -3988,10 +4069,12 @@ v8_source_set("v8_base_without_compiler") { "src/wasm/value-type.cc", "src/wasm/wasm-code-manager.cc", "src/wasm/wasm-debug.cc", + "src/wasm/wasm-debug.h", "src/wasm/wasm-engine.cc", "src/wasm/wasm-external-refs.cc", "src/wasm/wasm-features.cc", "src/wasm/wasm-import-wrapper-cache.cc", + "src/wasm/wasm-init-expr.cc", "src/wasm/wasm-js.cc", "src/wasm/wasm-module-builder.cc", "src/wasm/wasm-module-sourcemap.cc", @@ -4007,7 +4090,10 @@ v8_source_set("v8_base_without_compiler") { if (v8_enable_third_party_heap) { sources += v8_third_party_heap_files } else { - sources += [ "src/heap/third-party/heap-api-stub.cc" ] + sources += [ + "src/heap/third-party/heap-api-stub.cc", + "src/heap/third-party/heap-api.h", + ] } if (v8_enable_conservative_stack_scanning) { @@ -4027,24 +4113,15 @@ v8_source_set("v8_base_without_compiler") { ] } - if (v8_check_header_includes) { - # This file will be generated by tools/generate-header-include-checks.py - # if the "check_v8_header_includes" gclient variable is set. - import("check-header-includes/sources.gni") - sources += check_header_includes_sources - } - if (v8_current_cpu == "x86") { sources += [ ### gcmole(arch:ia32) ### "src/codegen/ia32/assembler-ia32.cc", "src/codegen/ia32/cpu-ia32.cc", - "src/codegen/ia32/interface-descriptors-ia32.cc", "src/codegen/ia32/macro-assembler-ia32.cc", "src/codegen/shared-ia32-x64/macro-assembler-shared-ia32-x64.cc", "src/compiler/backend/ia32/code-generator-ia32.cc", "src/compiler/backend/ia32/instruction-scheduler-ia32.cc", "src/compiler/backend/ia32/instruction-selector-ia32.cc", - "src/debug/ia32/debug-ia32.cc", "src/deoptimizer/ia32/deoptimizer-ia32.cc", "src/diagnostics/ia32/disasm-ia32.cc", "src/diagnostics/ia32/unwinder-ia32.cc", @@ -4056,13 +4133,11 @@ v8_source_set("v8_base_without_compiler") { "src/codegen/shared-ia32-x64/macro-assembler-shared-ia32-x64.cc", "src/codegen/x64/assembler-x64.cc", "src/codegen/x64/cpu-x64.cc", - "src/codegen/x64/interface-descriptors-x64.cc", "src/codegen/x64/macro-assembler-x64.cc", "src/compiler/backend/x64/code-generator-x64.cc", "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/debug/x64/debug-x64.cc", "src/deoptimizer/x64/deoptimizer-x64.cc", "src/diagnostics/x64/disasm-x64.cc", "src/diagnostics/x64/eh-frame-x64.cc", @@ -4091,13 +4166,11 @@ v8_source_set("v8_base_without_compiler") { "src/codegen/arm/assembler-arm.cc", "src/codegen/arm/constants-arm.cc", "src/codegen/arm/cpu-arm.cc", - "src/codegen/arm/interface-descriptors-arm.cc", "src/codegen/arm/macro-assembler-arm.cc", "src/compiler/backend/arm/code-generator-arm.cc", "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/debug/arm/debug-arm.cc", "src/deoptimizer/arm/deoptimizer-arm.cc", "src/diagnostics/arm/disasm-arm.cc", "src/diagnostics/arm/eh-frame-arm.cc", @@ -4113,7 +4186,6 @@ v8_source_set("v8_base_without_compiler") { "src/codegen/arm64/decoder-arm64.cc", "src/codegen/arm64/instructions-arm64-constants.cc", "src/codegen/arm64/instructions-arm64.cc", - "src/codegen/arm64/interface-descriptors-arm64.cc", "src/codegen/arm64/macro-assembler-arm64.cc", "src/codegen/arm64/register-arm64.cc", "src/codegen/arm64/utils-arm64.cc", @@ -4121,7 +4193,6 @@ v8_source_set("v8_base_without_compiler") { "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/debug/arm64/debug-arm64.cc", "src/deoptimizer/arm64/deoptimizer-arm64.cc", "src/diagnostics/arm64/disasm-arm64.cc", "src/diagnostics/arm64/eh-frame-arm64.cc", @@ -4146,12 +4217,11 @@ v8_source_set("v8_base_without_compiler") { "src/codegen/mips/assembler-mips.cc", "src/codegen/mips/constants-mips.cc", "src/codegen/mips/cpu-mips.cc", - "src/codegen/mips/interface-descriptors-mips.cc", + "src/codegen/mips/interface-descriptors-mips-inl.h", "src/codegen/mips/macro-assembler-mips.cc", "src/compiler/backend/mips/code-generator-mips.cc", "src/compiler/backend/mips/instruction-scheduler-mips.cc", "src/compiler/backend/mips/instruction-selector-mips.cc", - "src/debug/mips/debug-mips.cc", "src/deoptimizer/mips/deoptimizer-mips.cc", "src/diagnostics/mips/disasm-mips.cc", "src/diagnostics/mips/unwinder-mips.cc", @@ -4164,12 +4234,11 @@ v8_source_set("v8_base_without_compiler") { "src/codegen/mips64/assembler-mips64.cc", "src/codegen/mips64/constants-mips64.cc", "src/codegen/mips64/cpu-mips64.cc", - "src/codegen/mips64/interface-descriptors-mips64.cc", + "src/codegen/mips64/interface-descriptors-mips64-inl.h", "src/codegen/mips64/macro-assembler-mips64.cc", "src/compiler/backend/mips64/code-generator-mips64.cc", "src/compiler/backend/mips64/instruction-scheduler-mips64.cc", "src/compiler/backend/mips64/instruction-selector-mips64.cc", - "src/debug/mips64/debug-mips64.cc", "src/deoptimizer/mips64/deoptimizer-mips64.cc", "src/diagnostics/mips64/disasm-mips64.cc", "src/diagnostics/mips64/unwinder-mips64.cc", @@ -4182,13 +4251,11 @@ v8_source_set("v8_base_without_compiler") { "src/codegen/ppc/assembler-ppc.cc", "src/codegen/ppc/constants-ppc.cc", "src/codegen/ppc/cpu-ppc.cc", - "src/codegen/ppc/interface-descriptors-ppc.cc", "src/codegen/ppc/macro-assembler-ppc.cc", "src/compiler/backend/ppc/code-generator-ppc.cc", "src/compiler/backend/ppc/instruction-scheduler-ppc.cc", "src/compiler/backend/ppc/instruction-selector-ppc.cc", "src/compiler/backend/ppc/unwinding-info-writer-ppc.cc", - "src/debug/ppc/debug-ppc.cc", "src/deoptimizer/ppc/deoptimizer-ppc.cc", "src/diagnostics/ppc/disasm-ppc.cc", "src/diagnostics/ppc/eh-frame-ppc.cc", @@ -4202,13 +4269,11 @@ v8_source_set("v8_base_without_compiler") { "src/codegen/ppc/assembler-ppc.cc", "src/codegen/ppc/constants-ppc.cc", "src/codegen/ppc/cpu-ppc.cc", - "src/codegen/ppc/interface-descriptors-ppc.cc", "src/codegen/ppc/macro-assembler-ppc.cc", "src/compiler/backend/ppc/code-generator-ppc.cc", "src/compiler/backend/ppc/instruction-scheduler-ppc.cc", "src/compiler/backend/ppc/instruction-selector-ppc.cc", "src/compiler/backend/ppc/unwinding-info-writer-ppc.cc", - "src/debug/ppc/debug-ppc.cc", "src/deoptimizer/ppc/deoptimizer-ppc.cc", "src/diagnostics/ppc/disasm-ppc.cc", "src/diagnostics/ppc/eh-frame-ppc.cc", @@ -4222,13 +4287,11 @@ v8_source_set("v8_base_without_compiler") { "src/codegen/s390/assembler-s390.cc", "src/codegen/s390/constants-s390.cc", "src/codegen/s390/cpu-s390.cc", - "src/codegen/s390/interface-descriptors-s390.cc", "src/codegen/s390/macro-assembler-s390.cc", "src/compiler/backend/s390/code-generator-s390.cc", "src/compiler/backend/s390/instruction-scheduler-s390.cc", "src/compiler/backend/s390/instruction-selector-s390.cc", "src/compiler/backend/s390/unwinding-info-writer-s390.cc", - "src/debug/s390/debug-s390.cc", "src/deoptimizer/s390/deoptimizer-s390.cc", "src/diagnostics/s390/disasm-s390.cc", "src/diagnostics/s390/eh-frame-s390.cc", @@ -4239,15 +4302,17 @@ v8_source_set("v8_base_without_compiler") { ] } else if (v8_current_cpu == "riscv64") { sources += [ ### gcmole(arch:riscv64) ### + "src/baseline/riscv64/baseline-assembler-riscv64-inl.h", + "src/baseline/riscv64/baseline-compiler-riscv64-inl.h", + "src/codegen/riscv64/assembler-riscv64-inl.h", "src/codegen/riscv64/assembler-riscv64.cc", "src/codegen/riscv64/constants-riscv64.cc", "src/codegen/riscv64/cpu-riscv64.cc", - "src/codegen/riscv64/interface-descriptors-riscv64.cc", + "src/codegen/riscv64/interface-descriptors-riscv64-inl.h", "src/codegen/riscv64/macro-assembler-riscv64.cc", "src/compiler/backend/riscv64/code-generator-riscv64.cc", "src/compiler/backend/riscv64/instruction-scheduler-riscv64.cc", "src/compiler/backend/riscv64/instruction-selector-riscv64.cc", - "src/debug/riscv64/debug-riscv64.cc", "src/deoptimizer/riscv64/deoptimizer-riscv64.cc", "src/diagnostics/riscv64/disasm-riscv64.cc", "src/diagnostics/riscv64/unwinder-riscv64.cc", @@ -4497,8 +4562,6 @@ v8_component("v8_libbase") { "src/base/atomic-utils.h", "src/base/atomicops.h", "src/base/atomicops_internals_atomicword_compat.h", - "src/base/atomicops_internals_portable.h", - "src/base/atomicops_internals_std.h", "src/base/base-export.h", "src/base/bit-field.h", "src/base/bits-iterator.h", @@ -4532,7 +4595,6 @@ v8_component("v8_libbase") { "src/base/lazy-instance.h", "src/base/logging.cc", "src/base/logging.h", - "src/base/lsan.h", "src/base/macros.h", "src/base/memory.h", "src/base/once.cc", @@ -4558,6 +4620,11 @@ v8_component("v8_libbase") { "src/base/safe_conversions.h", "src/base/safe_conversions_arm_impl.h", "src/base/safe_conversions_impl.h", + "src/base/sanitizer/asan.h", + "src/base/sanitizer/lsan-page-allocator.cc", + "src/base/sanitizer/lsan-page-allocator.h", + "src/base/sanitizer/lsan.h", + "src/base/sanitizer/msan.h", "src/base/small-vector.h", "src/base/sys-info.cc", "src/base/sys-info.h", @@ -4694,9 +4761,11 @@ v8_component("v8_libbase") { if (is_tsan && !build_with_chromium) { data += [ "tools/sanitizers/tsan_suppressions.txt" ] + } - # llvm-symbolizer uses libstdc++ from the clang package. - data += [ "//third_party/llvm-build/Release+Asserts/lib/libstdc++.so.6" ] + if (using_sanitizer && !build_with_chromium) { + data_deps += + [ "//build/config/clang:llvm-symbolizer_data($host_toolchain)" ] } # TODO(jochen): Add support for qnx, freebsd, openbsd, netbsd, and solaris. @@ -4720,8 +4789,6 @@ v8_component("v8_libplatform") { "src/libplatform/delayed-task-queue.h", "src/libplatform/task-queue.cc", "src/libplatform/task-queue.h", - "src/libplatform/tracing/recorder-default.cc", - "src/libplatform/tracing/recorder.h", "src/libplatform/tracing/trace-buffer.cc", "src/libplatform/tracing/trace-buffer.h", "src/libplatform/tracing/trace-config.cc", @@ -4752,8 +4819,6 @@ v8_component("v8_libplatform") { if (v8_use_perfetto) { sources -= [ "//base/trace_event/common/trace_event_common.h", - "src/libplatform/tracing/recorder-default.cc", - "src/libplatform/tracing/recorder.h", "src/libplatform/tracing/trace-buffer.cc", "src/libplatform/tracing/trace-buffer.h", "src/libplatform/tracing/trace-object.cc", @@ -4768,9 +4833,15 @@ v8_component("v8_libplatform") { # TODO(skyostil): Switch TraceEventListener to protozero. "//third_party/perfetto/protos/perfetto/trace:lite", ] - } else if (is_win) { - sources -= [ "src/libplatform/tracing/recorder-default.cc" ] - sources += [ "src/libplatform/tracing/recorder-win.cc" ] + } + + if (v8_enable_system_instrumentation) { + sources += [ "src/libplatform/tracing/recorder.h" ] + if (is_mac) { + sources += [ "src/libplatform/tracing/recorder-mac.cc" ] + } else if (is_win) { + sources += [ "src/libplatform/tracing/recorder-win.cc" ] + } } } @@ -4794,8 +4865,13 @@ v8_source_set("fuzzer_support") { v8_source_set("v8_bigint") { sources = [ + "src/bigint/bigint-internal.cc", + "src/bigint/bigint-internal.h", "src/bigint/bigint.h", + "src/bigint/digit-arithmetic.h", + "src/bigint/mul-schoolbook.cc", "src/bigint/vector-arithmetic.cc", + "src/bigint/vector-arithmetic.h", ] configs = [ ":internal_config" ] @@ -4807,7 +4883,6 @@ v8_source_set("v8_cppgc_shared") { "src/heap/base/stack.h", "src/heap/base/worklist.cc", "src/heap/base/worklist.h", - "src/heap/cppgc/sanitizers.h", ] if (is_clang || !is_win) { @@ -4954,6 +5029,8 @@ v8_source_set("cppgc_base") { "src/heap/cppgc/marking-visitor.h", "src/heap/cppgc/marking-worklists.cc", "src/heap/cppgc/marking-worklists.h", + "src/heap/cppgc/memory.cc", + "src/heap/cppgc/memory.h", "src/heap/cppgc/metric-recorder.h", "src/heap/cppgc/name-trait.cc", "src/heap/cppgc/object-allocator.cc", @@ -4961,6 +5038,7 @@ v8_source_set("cppgc_base") { "src/heap/cppgc/object-poisoner.h", "src/heap/cppgc/object-size-trait.cc", "src/heap/cppgc/object-start-bitmap.h", + "src/heap/cppgc/object-view.h", "src/heap/cppgc/page-memory.cc", "src/heap/cppgc/page-memory.h", "src/heap/cppgc/persistent-node.cc", @@ -5032,6 +5110,35 @@ v8_source_set("cppgc_base_for_testing") { public_deps = [ ":cppgc_base" ] } +if (v8_check_header_includes) { + # This file will be generated by tools/generate-header-include-checks.py + # if the "check_v8_header_includes" gclient variable is set. + import("check-header-includes/sources.gni") + v8_source_set("check_headers") { + configs = [ ":internal_config" ] + sources = check_header_includes_sources + + # Any rules that contain headers files should be added here either directly + # or indirectly by including something that has it transitively in its + # public_deps. + deps = [ + ":d8", + ":mksnapshot", + ":torque_base", + ":torque_ls_base", + ":v8_base_without_compiler", + ":v8_bigint", + ":v8_initializers", + ":v8_internal_headers", + ":v8_libbase", + ":v8_maybe_icu", + ":wee8", + "src/inspector:inspector", + "src/inspector:inspector_string_conversions", + ] + } +} + ############################################################################### # Produce a single static library for embedders # @@ -5284,6 +5391,10 @@ group("gn_all") { if (want_v8_shell) { deps += [ ":v8_shell" ] } + + if (v8_check_header_includes) { + deps += [ ":check_headers" ] + } } group("v8_python_base") { @@ -6199,9 +6310,7 @@ if (!build_with_chromium && v8_use_perfetto) { configs = [ ":v8_tracing_config" ] public_configs = [ "//third_party/perfetto/gn:public_config" ] deps = [ - "//third_party/perfetto/src/trace_processor:export_json", "//third_party/perfetto/src/trace_processor:storage_minimal", - "//third_party/perfetto/src/tracing:client_api", "//third_party/perfetto/src/tracing/core", # TODO(skyostil): Support non-POSIX platforms. @@ -6210,5 +6319,11 @@ if (!build_with_chromium && v8_use_perfetto) { "//third_party/perfetto/src/tracing:in_process_backend", "//third_party/perfetto/src/tracing:platform_impl", ] + + public_deps = [ + "//third_party/perfetto/include/perfetto/trace_processor", + "//third_party/perfetto/src/trace_processor:export_json", + "//third_party/perfetto/src/tracing:client_api", + ] } } # if (!build_with_chromium && v8_use_perfetto) diff --git a/deps/v8/DEPS b/deps/v8/DEPS index b27a4e8e8fada7..d3de2c5ddc9eaf 100644 --- a/deps/v8/DEPS +++ b/deps/v8/DEPS @@ -9,7 +9,6 @@ gclient_gn_args = [ # TODO(https://crbug.com/1137662, https://crbug.com/1080854) # Remove when migration is complete. 'checkout_fuchsia_for_arm64_host', - 'checkout_google_benchmark', ] vars = { @@ -44,13 +43,11 @@ vars = { 'download_jsfunfuzz': False, 'check_v8_header_includes': False, - 'checkout_google_benchmark' : False, - # GN CIPD package version. - 'gn_version': 'git_revision:dba01723a441c358d843a575cb7720d54ddcdf92', + 'gn_version': 'git_revision:39a87c0b36310bdf06b692c098f199a0d97fc810', # luci-go CIPD package version. - 'luci_go': 'git_revision:d6d24b11ecded4d89f3dfd1b2e5a0072a3d4ab15', + 'luci_go': 'git_revision:22d464e2f8f3bd2bd33f69fe819326d63f881008', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling android_sdk_build-tools_version @@ -88,15 +85,15 @@ vars = { deps = { 'build': - Var('chromium_url') + '/chromium/src/build.git' + '@' + '77edba11e25386aa719d4f08c3ce2d8c4f868c15', + Var('chromium_url') + '/chromium/src/build.git' + '@' + '4036cf1b17581f5668b487a25e252d56e0321a7f', 'third_party/depot_tools': - Var('chromium_url') + '/chromium/tools/depot_tools.git' + '@' + '98a52e2e312dd10d7fcf281e322039a6b706b86b', + Var('chromium_url') + '/chromium/tools/depot_tools.git' + '@' + '6b0a611c2c692684f94c0c3629f793feebd16b39', 'third_party/icu': - Var('chromium_url') + '/chromium/deps/icu.git' + '@' + '81d656878ec611cb0b42d52c82e9dae93920d9ba', + Var('chromium_url') + '/chromium/deps/icu.git' + '@' + 'f022e298b4f4a782486bb6d5ce6589c998b51fe2', 'third_party/instrumented_libraries': - Var('chromium_url') + '/chromium/src/third_party/instrumented_libraries.git' + '@' + '084aee04777db574038af9e9d33ca5caed577462', + Var('chromium_url') + '/chromium/src/third_party/instrumented_libraries.git' + '@' + '4ae2535e8e894c3cd81d46aacdaf151b5df30709', 'buildtools': - Var('chromium_url') + '/chromium/src/buildtools.git' + '@' + '5dbd89c9d9c0b0ff47cefdc2bc421b8c9a1c5a21', + Var('chromium_url') + '/chromium/src/buildtools.git' + '@' + '20b1d0fc13ebaa263a1248f08814f523a86e6bed', 'buildtools/clang_format/script': Var('chromium_url') + '/external/github.com/llvm/llvm-project/clang/tools/clang-format.git' + '@' + '99803d74e35962f63a775f29477882afd4d57d94', 'buildtools/linux64': { @@ -122,9 +119,9 @@ deps = { 'buildtools/third_party/libc++/trunk': Var('chromium_url') + '/external/github.com/llvm/llvm-project/libcxx.git' + '@' + '8fa87946779682841e21e2da977eccfb6cb3bded', 'buildtools/third_party/libc++abi/trunk': - Var('chromium_url') + '/external/github.com/llvm/llvm-project/libcxxabi.git' + '@' + 'd0f33885a2ffa7d5af74af6065b60eb48e3c70f5', + Var('chromium_url') + '/external/github.com/llvm/llvm-project/libcxxabi.git' + '@' + '767de317f97343db64af048e3d198ab8b10fee5d', 'buildtools/third_party/libunwind/trunk': - Var('chromium_url') + '/external/github.com/llvm/llvm-project/libunwind.git' + '@' + '08f35c8514a74817103121def05351186830d4b7', + Var('chromium_url') + '/external/github.com/llvm/llvm-project/libunwind.git' + '@' + '7846d256355e40273f7cc192c8f5893e8665a1f9', 'buildtools/win': { 'packages': [ { @@ -136,7 +133,7 @@ deps = { 'condition': 'host_os == "win"', }, 'base/trace_event/common': - Var('chromium_url') + '/chromium/src/base/trace_event/common.git' + '@' + 'cab90cbdaaf4444d67aef6ce3cef09fc5fdeb560', + Var('chromium_url') + '/chromium/src/base/trace_event/common.git' + '@' + 'd5bb24e5d9802c8c917fcaa4375d5239a586c168', 'third_party/android_ndk': { 'url': Var('chromium_url') + '/android_ndk.git' + '@' + '401019bf85744311b26c88ced255cd53401af8b7', 'condition': 'checkout_android', @@ -184,7 +181,7 @@ deps = { 'dep_type': 'cipd', }, 'third_party/catapult': { - 'url': Var('chromium_url') + '/catapult.git' + '@' + '41a5e5e465ad93d6e08224613d3544334a6278bc', + 'url': Var('chromium_url') + '/catapult.git' + '@' + 'c1e1d559b46476584ec0eb1d83bd7f43fa5a1b36', 'condition': 'checkout_android', }, 'third_party/colorama/src': { @@ -196,10 +193,9 @@ deps = { 'condition': 'checkout_fuchsia', }, 'third_party/googletest/src': - Var('chromium_url') + '/external/github.com/google/googletest.git' + '@' + '07f4869221012b16b7f9ee685d94856e1fc9f361', + Var('chromium_url') + '/external/github.com/google/googletest.git' + '@' + '23ef29555ef4789f555f1ba8c51b4c52975f0907', 'third_party/google_benchmark/src': { - 'url': Var('chromium_url') + '/external/github.com/google/benchmark.git' + '@' + '7f27afe83b82f3a98baf58ef595814b9d42a5b2b', - 'condition': 'checkout_google_benchmark', + 'url': Var('chromium_url') + '/external/github.com/google/benchmark.git' + '@' + '7d0d9061d83b663ce05d9de5da3d5865a3845b79', }, 'third_party/jinja2': Var('chromium_url') + '/chromium/src/third_party/jinja2.git' + '@' + '11b6b3e5971d760bd2d310f77643f55a818a6d25', @@ -212,7 +208,7 @@ deps = { 'test/mozilla/data': Var('chromium_url') + '/v8/deps/third_party/mozilla-tests.git' + '@' + 'f6c578a10ea707b1a8ab0b88943fe5115ce2b9be', 'test/test262/data': - Var('chromium_url') + '/external/github.com/tc39/test262.git' + '@' + '31126581e7290f9233c29cefd93f66c6ac78f1c9', + Var('chromium_url') + '/external/github.com/tc39/test262.git' + '@' + '6d353a4436747e2de8820efac27ae5ef7e601b60', 'test/test262/harness': Var('chromium_url') + '/external/github.com/test262-utils/test262-harness-py.git' + '@' + '278bcfaed0dcaa13936831fb1769d15e7c1e3b2b', 'third_party/qemu-linux-x64': { @@ -239,7 +235,7 @@ deps = { 'packages': [ { 'package': 'fuchsia/third_party/aemu/linux-amd64', - 'version': 'SeLS6a0f6IL-PCOUKbMTN5LYgjjJbDSnb3DGf5q9pwsC' + 'version': '-Sz2gSN_5yVSHDlitjxUlmZpHuz-F2kFDW6TnmggCZoC' }, ], 'condition': 'host_os == "linux" and checkout_fuchsia', @@ -256,7 +252,7 @@ deps = { 'dep_type': 'cipd', }, 'tools/clang': - Var('chromium_url') + '/chromium/src/tools/clang.git' + '@' + 'a387faa2a6741f565e45d78804a49a0e55de5909', + Var('chromium_url') + '/chromium/src/tools/clang.git' + '@' + 'a38f01b956e091d5e698d2af484c81cd4e9a2a2d', 'tools/luci-go': { 'packages': [ { @@ -290,7 +286,7 @@ deps = { 'third_party/protobuf': Var('chromium_url') + '/external/github.com/google/protobuf'+ '@' + '6a59a2ad1f61d9696092f79b6d74368b4d7970a3', 'third_party/zlib': - Var('chromium_url') + '/chromium/src/third_party/zlib.git'+ '@' + '09490503d0f201b81e03f5ca0ab8ba8ee76d4a8e', + Var('chromium_url') + '/chromium/src/third_party/zlib.git'+ '@' + '5b8d433953beb2a75a755ba321a3076b95f7cdb9', 'third_party/jsoncpp/source': Var('chromium_url') + '/external/github.com/open-source-parsers/jsoncpp.git'+ '@' + '9059f5cad030ba11d37818847443a53918c327b1', 'third_party/ittapi': { diff --git a/deps/v8/OWNERS b/deps/v8/OWNERS index 2a478dbdc5c689..2ad1949b515935 100644 --- a/deps/v8/OWNERS +++ b/deps/v8/OWNERS @@ -21,7 +21,7 @@ per-file PRESUBMIT.py=file:INFRA_OWNERS per-file codereview.settings=file:INFRA_OWNERS per-file AUTHORS=file:COMMON_OWNERS -per-file WATCHLIST=file:COMMON_OWNERS +per-file WATCHLISTS=file:COMMON_OWNERS per-file *-mips*=file:MIPS_OWNERS per-file *-mips64*=file:MIPS_OWNERS diff --git a/deps/v8/PRESUBMIT.py b/deps/v8/PRESUBMIT.py index 2ee14d545ee66e..61963c62f62009 100644 --- a/deps/v8/PRESUBMIT.py +++ b/deps/v8/PRESUBMIT.py @@ -279,7 +279,7 @@ def PathToGuardMacro(path): for line in f.NewContents(): for i in range(len(guard_patterns)): if guard_patterns[i].match(line): - found_patterns[i] = True + found_patterns[i] = True if skip_check_pattern.match(line): file_omitted = True break @@ -485,7 +485,9 @@ def FilterFile(affected_file): files_to_check=(r'src[\\\/].*', r'test[\\\/].*'), # Skip api.cc since we cannot easily add the 'noexcept' annotation to # public methods. - files_to_skip=(r'src[\\\/]api[\\\/]api\.cc',)) + # Skip src/bigint/ because it's meant to be V8-independent. + files_to_skip=(r'src[\\\/]api[\\\/]api\.cc', + r'src[\\\/]bigint[\\\/].*')) # matches any class name. class_name = r'\b([A-Z][A-Za-z0-9_:]*)(?:::\1)?' diff --git a/deps/v8/RISCV_OWNERS b/deps/v8/RISCV_OWNERS index f3240b500b196f..8f8e15a40a0cd3 100644 --- a/deps/v8/RISCV_OWNERS +++ b/deps/v8/RISCV_OWNERS @@ -1,3 +1,3 @@ brice.dobry@futurewei.com -lazyparser@gmail.com peng.w@rioslab.org +qiuji@iscas.ac.cn diff --git a/deps/v8/WATCHLISTS b/deps/v8/WATCHLISTS index fa95f144cb73cb..c54f15ad797078 100644 --- a/deps/v8/WATCHLISTS +++ b/deps/v8/WATCHLISTS @@ -51,6 +51,9 @@ '|test/cctest/interpreter/' \ '|test/unittests/interpreter/', }, + 'baseline': { + 'filepath': 'src/baseline/' + }, 'feature_shipping_status': { 'filepath': 'src/flags/flag-definitions.h', }, @@ -91,6 +94,9 @@ 'filepath': 'src/base/ieee754\.(cc|h)' \ '|src/base/overflowing-math.h' \ '|LICENSE.fdlibm', + }, + 'regexp': { + 'filepath': 'src/.*regexp', } }, @@ -110,6 +116,10 @@ 'interpreter': [ 'rmcilroy@chromium.org', ], + 'baseline': [ + 'leszeks+watch@chromium.org', + 'verwaest+watch@chromium.org', + ], 'feature_shipping_status': [ 'hablich@chromium.org', ], @@ -142,5 +152,9 @@ 'rtoy+watch@chromium.org', 'hongchan+watch@chromium.org' ], + 'regexp': [ + 'jgruber+watch@chromium.org', + 'pthier+watch@chromium.org' + ], }, } 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 dcbb09bb663b0c..dff2f9b2773c68 100644 --- a/deps/v8/base/trace_event/common/trace_event_common.h +++ b/deps/v8/base/trace_event/common/trace_event_common.h @@ -256,10 +256,8 @@ namespace perfetto { namespace legacy { template <> -bool BASE_EXPORT ConvertThreadId(const ::base::PlatformThreadId& thread, - uint64_t* track_uuid_out, - int32_t* pid_override_out, - int32_t* tid_override_out); +perfetto::ThreadTrack BASE_EXPORT +ConvertThreadId(const ::base::PlatformThreadId& thread); } // namespace legacy diff --git a/deps/v8/gni/v8.gni b/deps/v8/gni/v8.gni index 9325baf996e666..8741e86c087069 100644 --- a/deps/v8/gni/v8.gni +++ b/deps/v8/gni/v8.gni @@ -75,13 +75,16 @@ declare_args() { # executed as standard JavaScript instead. v8_enable_webassembly = "" + # Enable runtime call stats. + v8_enable_runtime_call_stats = true + # Add fuzzilli fuzzer support. v8_fuzzilli = false # Scan the call stack conservatively during garbage collection. v8_enable_conservative_stack_scanning = false - v8_enable_google_benchmark = checkout_google_benchmark + v8_enable_google_benchmark = false cppgc_is_standalone = false } diff --git a/deps/v8/include/cppgc/allocation.h b/deps/v8/include/cppgc/allocation.h index f4f0e72bd512ae..7a803cf2cc43b3 100644 --- a/deps/v8/include/cppgc/allocation.h +++ b/deps/v8/include/cppgc/allocation.h @@ -8,6 +8,7 @@ #include #include +#include #include "cppgc/custom-space.h" #include "cppgc/garbage-collected.h" @@ -103,6 +104,10 @@ class MakeGarbageCollectedTraitBase * \returns the memory to construct an object of type T on. */ V8_INLINE static void* Allocate(AllocationHandle& handle, size_t size) { + static_assert( + std::is_base_of::value, + "U of GarbageCollected must be a base of T. Check " + "GarbageCollected base class inheritance."); return SpacePolicy< typename internal::GCInfoFolding< T, typename T::ParentMostGarbageCollectedType>::ResultType, diff --git a/deps/v8/include/cppgc/cross-thread-persistent.h b/deps/v8/include/cppgc/cross-thread-persistent.h index 9cfcd23fdf8e3b..fe61e9acbc3815 100644 --- a/deps/v8/include/cppgc/cross-thread-persistent.h +++ b/deps/v8/include/cppgc/cross-thread-persistent.h @@ -28,19 +28,19 @@ class BasicCrossThreadPersistent final : public PersistentBase, ~BasicCrossThreadPersistent() { Clear(); } - BasicCrossThreadPersistent( // NOLINT + BasicCrossThreadPersistent( const SourceLocation& loc = SourceLocation::Current()) : LocationPolicy(loc) {} - BasicCrossThreadPersistent( // NOLINT + BasicCrossThreadPersistent( std::nullptr_t, const SourceLocation& loc = SourceLocation::Current()) : LocationPolicy(loc) {} - BasicCrossThreadPersistent( // NOLINT + BasicCrossThreadPersistent( SentinelPointer s, const SourceLocation& loc = SourceLocation::Current()) : PersistentBase(s), LocationPolicy(loc) {} - BasicCrossThreadPersistent( // NOLINT + BasicCrossThreadPersistent( T* raw, const SourceLocation& loc = SourceLocation::Current()) : PersistentBase(raw), LocationPolicy(loc) { if (!IsValid(raw)) return; @@ -58,7 +58,7 @@ class BasicCrossThreadPersistent final : public PersistentBase, friend class BasicCrossThreadPersistent; }; - BasicCrossThreadPersistent( // NOLINT + BasicCrossThreadPersistent( UnsafeCtorTag, T* raw, const SourceLocation& loc = SourceLocation::Current()) : PersistentBase(raw), LocationPolicy(loc) { @@ -68,14 +68,14 @@ class BasicCrossThreadPersistent final : public PersistentBase, this->CheckPointer(raw); } - BasicCrossThreadPersistent( // NOLINT + BasicCrossThreadPersistent( T& raw, const SourceLocation& loc = SourceLocation::Current()) : BasicCrossThreadPersistent(&raw, loc) {} template ::value>> - BasicCrossThreadPersistent( // NOLINT + BasicCrossThreadPersistent( internal::BasicMember member, @@ -94,7 +94,7 @@ class BasicCrossThreadPersistent final : public PersistentBase, template ::value>> - BasicCrossThreadPersistent( // NOLINT + BasicCrossThreadPersistent( const BasicCrossThreadPersistent& other, @@ -139,7 +139,7 @@ class BasicCrossThreadPersistent final : public PersistentBase, GetNode()->UpdateOwner(this); other.SetValue(nullptr); other.SetNode(nullptr); - this->CheckPointer(GetValue()); + this->CheckPointer(Get()); return *this; } @@ -236,7 +236,7 @@ class BasicCrossThreadPersistent final : public PersistentBase, * * \returns the object. */ - operator T*() const { return Get(); } // NOLINT + operator T*() const { return Get(); } /** * Dereferences the stored object. diff --git a/deps/v8/include/cppgc/explicit-management.h b/deps/v8/include/cppgc/explicit-management.h index 8fb321c08ca5e4..cdb6af48586e02 100644 --- a/deps/v8/include/cppgc/explicit-management.h +++ b/deps/v8/include/cppgc/explicit-management.h @@ -12,9 +12,12 @@ #include "cppgc/type-traits.h" namespace cppgc { + +class HeapHandle; + namespace internal { -V8_EXPORT void FreeUnreferencedObject(void*); +V8_EXPORT void FreeUnreferencedObject(HeapHandle&, void*); V8_EXPORT bool Resize(void*, size_t); } // namespace internal @@ -30,15 +33,19 @@ namespace subtle { * to `object` after calling `FreeUnreferencedObject()`. In case such a * reference exists, it's use results in a use-after-free. * + * To aid in using the API, `FreeUnreferencedObject()` may be called from + * destructors on objects that would be reclaimed in the same garbage collection + * cycle. + * + * \param heap_handle The corresponding heap. * \param object Reference to an object that is of type `GarbageCollected` and * should be immediately reclaimed. */ template -void FreeUnreferencedObject(T* object) { +void FreeUnreferencedObject(HeapHandle& heap_handle, T& object) { static_assert(IsGarbageCollectedTypeV, "Object must be of type GarbageCollected."); - if (!object) return; - internal::FreeUnreferencedObject(object); + internal::FreeUnreferencedObject(heap_handle, &object); } /** @@ -53,6 +60,8 @@ void FreeUnreferencedObject(T* object) { * object down, the reclaimed area is not used anymore. Any subsequent use * results in a use-after-free. * + * The `object` must be live when calling `Resize()`. + * * \param object Reference to an object that is of type `GarbageCollected` and * should be resized. * \param additional_bytes Bytes in addition to sizeof(T) that the object should diff --git a/deps/v8/include/cppgc/heap-statistics.h b/deps/v8/include/cppgc/heap-statistics.h index cf8d6633cc2751..2fe6e1ae58abbb 100644 --- a/deps/v8/include/cppgc/heap-statistics.h +++ b/deps/v8/include/cppgc/heap-statistics.h @@ -57,7 +57,7 @@ struct HeapStatistics final { }; /** - * Stastistics of the freelist (used only in non-large object spaces). For + * Statistics of the freelist (used only in non-large object spaces). For * each bucket in the freelist the statistics record the bucket size, the * number of freelist entries in the bucket, and the overall allocated memory * consumed by these freelist entries. @@ -67,7 +67,7 @@ struct HeapStatistics final { std::vector bucket_size; /** number of freelist entries per bucket. */ std::vector free_count; - /** memory size concumed by freelist entries per size. */ + /** memory size consumed by freelist entries per size. */ std::vector free_size; }; diff --git a/deps/v8/include/cppgc/internal/compiler-specific.h b/deps/v8/include/cppgc/internal/compiler-specific.h index c580894b35d0fe..595b6398cb720a 100644 --- a/deps/v8/include/cppgc/internal/compiler-specific.h +++ b/deps/v8/include/cppgc/internal/compiler-specific.h @@ -21,13 +21,13 @@ namespace cppgc { // [[no_unique_address]] comes in C++20 but supported in clang with -std >= // c++11. -#if CPPGC_HAS_CPP_ATTRIBUTE(no_unique_address) // NOLINTNEXTLINE +#if CPPGC_HAS_CPP_ATTRIBUTE(no_unique_address) #define CPPGC_NO_UNIQUE_ADDRESS [[no_unique_address]] #else #define CPPGC_NO_UNIQUE_ADDRESS #endif -#if CPPGC_HAS_ATTRIBUTE(unused) // NOLINTNEXTLINE +#if CPPGC_HAS_ATTRIBUTE(unused) #define CPPGC_UNUSED __attribute__((unused)) #else #define CPPGC_UNUSED diff --git a/deps/v8/include/cppgc/internal/pointer-policies.h b/deps/v8/include/cppgc/internal/pointer-policies.h index ceb002f02d555f..e09b86199f46b3 100644 --- a/deps/v8/include/cppgc/internal/pointer-policies.h +++ b/deps/v8/include/cppgc/internal/pointer-policies.h @@ -9,12 +9,15 @@ #include #include "cppgc/internal/write-barrier.h" +#include "cppgc/sentinel-pointer.h" #include "cppgc/source-location.h" +#include "cppgc/type-traits.h" #include "v8config.h" // NOLINT(build/include_directory) namespace cppgc { namespace internal { +class HeapBase; class PersistentRegion; class CrossThreadPersistentRegion; @@ -50,11 +53,31 @@ struct NoWriteBarrierPolicy { class V8_EXPORT EnabledCheckingPolicy { protected: - EnabledCheckingPolicy(); - void CheckPointer(const void* ptr); + template + void CheckPointer(const T* ptr) { + if (!ptr || (kSentinelPointer == ptr)) return; + + CheckPointersImplTrampoline::Call(this, ptr); + } private: - void* impl_; + void CheckPointerImpl(const void* ptr, bool points_to_payload); + + template > + struct CheckPointersImplTrampoline { + static void Call(EnabledCheckingPolicy* policy, const T* ptr) { + policy->CheckPointerImpl(ptr, false); + } + }; + + template + struct CheckPointersImplTrampoline { + static void Call(EnabledCheckingPolicy* policy, const T* ptr) { + policy->CheckPointerImpl(ptr, IsGarbageCollectedTypeV); + } + }; + + const HeapBase* heap_ = nullptr; }; class DisabledCheckingPolicy { @@ -63,9 +86,11 @@ class DisabledCheckingPolicy { }; #if V8_ENABLE_CHECKS -using DefaultCheckingPolicy = EnabledCheckingPolicy; +using DefaultMemberCheckingPolicy = EnabledCheckingPolicy; +using DefaultPersistentCheckingPolicy = EnabledCheckingPolicy; #else -using DefaultCheckingPolicy = DisabledCheckingPolicy; +using DefaultMemberCheckingPolicy = DisabledCheckingPolicy; +using DefaultPersistentCheckingPolicy = DisabledCheckingPolicy; #endif class KeepLocationPolicy { @@ -133,10 +158,10 @@ template + typename CheckingPolicy = DefaultPersistentCheckingPolicy> class BasicPersistent; template + typename CheckingPolicy = DefaultMemberCheckingPolicy> class BasicMember; } // namespace internal diff --git a/deps/v8/include/cppgc/member.h b/deps/v8/include/cppgc/member.h index 7b76bc4f7556fa..16aed060226ea3 100644 --- a/deps/v8/include/cppgc/member.h +++ b/deps/v8/include/cppgc/member.h @@ -24,8 +24,11 @@ namespace internal { // BasicMember on casting to the right type as needed. class MemberBase { protected: + struct AtomicInitializerTag {}; + MemberBase() = default; explicit MemberBase(const void* value) : raw_(value) {} + MemberBase(const void* value, AtomicInitializerTag) { SetRawAtomic(value); } const void** GetRawSlot() const { return &raw_; } const void* GetRaw() const { return raw_; } @@ -61,6 +64,20 @@ class BasicMember final : private MemberBase, private CheckingPolicy { this->CheckPointer(Get()); } BasicMember(T& raw) : BasicMember(&raw) {} // NOLINT + // Atomic ctor. Using the AtomicInitializerTag forces BasicMember to + // initialize using atomic assignments. This is required for preventing + // data races with concurrent marking. + using AtomicInitializerTag = MemberBase::AtomicInitializerTag; + BasicMember(std::nullptr_t, AtomicInitializerTag atomic) + : MemberBase(nullptr, atomic) {} + BasicMember(SentinelPointer s, AtomicInitializerTag atomic) + : MemberBase(s, atomic) {} + BasicMember(T* raw, AtomicInitializerTag atomic) : MemberBase(raw, atomic) { + InitializingWriteBarrier(); + this->CheckPointer(Get()); + } + BasicMember(T& raw, AtomicInitializerTag atomic) + : BasicMember(&raw, atomic) {} // Copy ctor. BasicMember(const BasicMember& other) : BasicMember(other.Get()) {} // Allow heterogeneous construction. @@ -79,9 +96,8 @@ class BasicMember final : private MemberBase, private CheckingPolicy { template ::value>> - BasicMember( // NOLINT - BasicMember&& other) noexcept + BasicMember(BasicMember&& other) noexcept : BasicMember(other.Get()) { other.Clear(); } @@ -90,10 +106,9 @@ class BasicMember final : private MemberBase, private CheckingPolicy { typename PersistentLocationPolicy, typename PersistentCheckingPolicy, typename = std::enable_if_t::value>> - BasicMember( // NOLINT - const BasicPersistent& - p) + BasicMember(const BasicPersistent& p) : BasicMember(p.Get()) {} // Copy assignment. @@ -161,7 +176,7 @@ class BasicMember final : private MemberBase, private CheckingPolicy { } explicit operator bool() const { return Get(); } - operator T*() const { return Get(); } // NOLINT + operator T*() const { return Get(); } T* operator->() const { return Get(); } T& operator*() const { return *Get(); } diff --git a/deps/v8/include/cppgc/persistent.h b/deps/v8/include/cppgc/persistent.h index d7aac723c0d24d..22cda7c6e8fcb7 100644 --- a/deps/v8/include/cppgc/persistent.h +++ b/deps/v8/include/cppgc/persistent.h @@ -95,7 +95,7 @@ class BasicPersistent final : public PersistentBase, template ::value>> - BasicPersistent( // NOLINT + BasicPersistent( const BasicPersistent& other, const SourceLocation& loc = SourceLocation::Current()) @@ -118,7 +118,7 @@ class BasicPersistent final : public PersistentBase, template ::value>> - BasicPersistent(internal::BasicMember member, const SourceLocation& loc = SourceLocation::Current()) @@ -181,7 +181,7 @@ class BasicPersistent final : public PersistentBase, } explicit operator bool() const { return Get(); } - operator T*() const { return Get(); } // NOLINT + operator T*() const { return Get(); } T* operator->() const { return Get(); } T& operator*() const { return *Get(); } diff --git a/deps/v8/include/cppgc/sentinel-pointer.h b/deps/v8/include/cppgc/sentinel-pointer.h index f7915834e5ac2c..b049d1a2b34632 100644 --- a/deps/v8/include/cppgc/sentinel-pointer.h +++ b/deps/v8/include/cppgc/sentinel-pointer.h @@ -14,7 +14,7 @@ namespace internal { // sentinel is defined by the embedder. struct SentinelPointer { template - operator T*() const { // NOLINT + operator T*() const { static constexpr intptr_t kSentinelValue = 1; return reinterpret_cast(kSentinelValue); } diff --git a/deps/v8/include/cppgc/type-traits.h b/deps/v8/include/cppgc/type-traits.h index 2b50a2164b2267..56cd55d61e2a5a 100644 --- a/deps/v8/include/cppgc/type-traits.h +++ b/deps/v8/include/cppgc/type-traits.h @@ -7,6 +7,7 @@ // This file should stay with minimal dependencies to allow embedder to check // against Oilpan types without including any other parts. +#include #include namespace cppgc { @@ -164,6 +165,18 @@ struct IsUntracedMemberType : std::false_type {}; template struct IsUntracedMemberType : std::true_type {}; +template +struct IsComplete { + private: + template + static std::true_type IsSizeOfKnown(U*); + static std::false_type IsSizeOfKnown(...); + + public: + static constexpr bool value = + decltype(IsSizeOfKnown(std::declval()))::value; +}; + } // namespace internal /** @@ -223,6 +236,12 @@ constexpr bool IsWeakMemberTypeV = internal::IsWeakMemberType::value; template constexpr bool IsWeakV = internal::IsWeak::value; +/** + * Value is true for types that are complete, and false otherwise. + */ +template +constexpr bool IsCompleteV = internal::IsComplete::value; + } // namespace cppgc #endif // INCLUDE_CPPGC_TYPE_TRAITS_H_ diff --git a/deps/v8/include/js_protocol.pdl b/deps/v8/include/js_protocol.pdl index 666952f27b97f6..9c0483ae7059c2 100644 --- a/deps/v8/include/js_protocol.pdl +++ b/deps/v8/include/js_protocol.pdl @@ -267,7 +267,7 @@ domain Debugger BreakpointId breakpointId # Restarts particular call frame from the beginning. - command restartFrame + deprecated command restartFrame parameters # Call frame identifier to evaluate on. CallFrameId callFrameId @@ -707,6 +707,8 @@ experimental domain HeapProfiler # when the tracking is stopped. optional boolean reportProgress optional boolean treatGlobalObjectsAsRoots + # If true, numerical values are included in the snapshot + optional boolean captureNumericValue command takeHeapSnapshot parameters @@ -714,6 +716,8 @@ experimental domain HeapProfiler optional boolean reportProgress # If true, a raw snapshot without artifical roots will be generated optional boolean treatGlobalObjectsAsRoots + # If true, numerical values are included in the snapshot + optional boolean captureNumericValue event addHeapSnapshotChunk parameters @@ -1563,7 +1567,10 @@ domain Runtime # execution context. If omitted and `executionContextName` is not set, # the binding is exposed to all execution contexts of the target. # This parameter is mutually exclusive with `executionContextName`. - optional ExecutionContextId executionContextId + # Deprecated in favor of `executionContextName` due to an unclear use case + # and bugs in implementation (crbug.com/1169639). `executionContextId` will be + # removed in the future. + deprecated optional ExecutionContextId executionContextId # If specified, the binding is exposed to the executionContext with # matching name, even for contexts created after the binding is added. # See also `ExecutionContext.name` and `worldName` parameter to diff --git a/deps/v8/include/v8-cppgc.h b/deps/v8/include/v8-cppgc.h index fba35f71c9ae07..745fb04347ee4c 100644 --- a/deps/v8/include/v8-cppgc.h +++ b/deps/v8/include/v8-cppgc.h @@ -28,6 +28,8 @@ namespace internal { class CppHeap; } // namespace internal +class CustomSpaceStatisticsReceiver; + /** * Describes how V8 wrapper objects maintain references to garbage-collected C++ * objects. @@ -119,6 +121,16 @@ class V8_EXPORT CppHeap { cppgc::HeapStatistics CollectStatistics( cppgc::HeapStatistics::DetailLevel detail_level); + /** + * Collects statistics for the given spaces and reports them to the receiver. + * + * \param custom_spaces a collection of custom space indicies. + * \param receiver an object that gets the results. + */ + void CollectCustomSpaceStatisticsAtLastGC( + std::vector custom_spaces, + std::unique_ptr receiver); + /** * Enables a detached mode that allows testing garbage collection using * `cppgc::testing` APIs. Once used, the heap cannot be attached to an @@ -277,6 +289,26 @@ class V8_EXPORT JSHeapConsistency final { const TracedReferenceBase& ref); }; +/** + * Provided as input to `CppHeap::CollectCustomSpaceStatisticsAtLastGC()`. + * + * Its method is invoked with the results of the statistic collection. + */ +class CustomSpaceStatisticsReceiver { + public: + virtual ~CustomSpaceStatisticsReceiver() = default; + /** + * Reports the size of a space at the last GC. It is called for each space + * that was requested in `CollectCustomSpaceStatisticsAtLastGC()`. + * + * \param space_index The index of the space. + * \param bytes The total size of live objects in the space at the last GC. + * It is zero if there was no GC yet. + */ + virtual void AllocatedBytes(cppgc::CustomSpaceIndex space_index, + size_t bytes) = 0; +}; + } // namespace v8 namespace cppgc { diff --git a/deps/v8/include/v8-fast-api-calls.h b/deps/v8/include/v8-fast-api-calls.h index f8b5acb093456e..cdf67decf6741c 100644 --- a/deps/v8/include/v8-fast-api-calls.h +++ b/deps/v8/include/v8-fast-api-calls.h @@ -70,8 +70,7 @@ * return GetInternalField(wrapper); * } - * static void FastMethod(v8::ApiObject receiver_obj, int param) { - * v8::Object* v8_object = reinterpret_cast(&api_object); + * static void FastMethod(v8::Local receiver_obj, int param) { * CustomEmbedderType* receiver = static_cast( * receiver_obj->GetAlignedPointerFromInternalField( * kV8EmbedderWrapperObjectIndex)); @@ -190,10 +189,13 @@ #include #include +#include "v8.h" // NOLINT(build/include_directory) #include "v8config.h" // NOLINT(build/include_directory) namespace v8 { +class Isolate; + class CTypeInfo { public: enum class Type : uint8_t { @@ -206,6 +208,8 @@ class CTypeInfo { kFloat32, kFloat64, kV8Value, + kApiObject, // This will be deprecated once all users have + // migrated from v8::ApiObject to v8::Local. }; // kCallbackOptionsType is not part of the Type enum @@ -310,7 +314,7 @@ class V8_EXPORT CFunction { }; }; -struct ApiObject { +struct V8_DEPRECATE_SOON("Use v8::Local instead.") ApiObject { uintptr_t address; }; @@ -321,6 +325,14 @@ struct ApiObject { * \endcode */ struct FastApiCallbackOptions { + /** + * Creates a new instance of FastApiCallbackOptions for testing purpose. The + * returned instance may be filled with mock data. + */ + static FastApiCallbackOptions CreateForTesting(Isolate* isolate) { + return {false, {0}}; + } + /** * If the callback wants to signal an error condition or to perform an * allocation, it must set options.fallback to true and do an early return @@ -336,8 +348,12 @@ struct FastApiCallbackOptions { /** * The `data` passed to the FunctionTemplate constructor, or `undefined`. + * `data_ptr` allows for default constructing FastApiCallbackOptions. */ - const ApiObject data; + union { + uintptr_t data_ptr; + v8::Value data; + }; }; namespace internal { @@ -398,16 +414,22 @@ struct TypeInfoHelper { static constexpr CTypeInfo::Type Type() { return CTypeInfo::Type::Enum; } \ }; -#define BASIC_C_TYPES(V) \ - V(void, kVoid) \ - V(bool, kBool) \ - V(int32_t, kInt32) \ - V(uint32_t, kUint32) \ - V(int64_t, kInt64) \ - V(uint64_t, kUint64) \ - V(float, kFloat32) \ - V(double, kFloat64) \ - V(ApiObject, kV8Value) +#define BASIC_C_TYPES(V) \ + V(void, kVoid) \ + V(bool, kBool) \ + V(int32_t, kInt32) \ + V(uint32_t, kUint32) \ + V(int64_t, kInt64) \ + V(uint64_t, kUint64) \ + V(float, kFloat32) \ + V(double, kFloat64) \ + V(ApiObject, kApiObject) \ + V(v8::Local, kV8Value) \ + V(v8::Local, kV8Value) + +// ApiObject was a temporary solution to wrap the pointer to the v8::Value. +// Please use v8::Local in new code for the arguments and +// v8::Local for the receiver, as ApiObject will be deprecated. BASIC_C_TYPES(SPECIALIZE_GET_TYPE_INFO_HELPER_FOR) diff --git a/deps/v8/include/v8-inspector.h b/deps/v8/include/v8-inspector.h index a55518e45930e1..852b39d7252295 100644 --- a/deps/v8/include/v8-inspector.h +++ b/deps/v8/include/v8-inspector.h @@ -105,8 +105,9 @@ class V8_EXPORT V8StackTrace { virtual StringView topSourceURL() const = 0; virtual int topLineNumber() const = 0; virtual int topColumnNumber() const = 0; - virtual StringView topScriptId() const = 0; - virtual int topScriptIdAsInteger() const = 0; + virtual int topScriptId() const = 0; + V8_DEPRECATE_SOON("Use V8::StackTrace::topScriptId() instead.") + int topScriptIdAsInteger() const { return topScriptId(); } virtual StringView topFunctionName() const = 0; virtual ~V8StackTrace() = default; @@ -130,6 +131,10 @@ class V8_EXPORT V8InspectorSession { virtual v8::Local get(v8::Local) = 0; virtual ~Inspectable() = default; }; + class V8_EXPORT CommandLineAPIScope { + public: + virtual ~CommandLineAPIScope() = default; + }; virtual void addInspectedObject(std::unique_ptr) = 0; // Dispatching protocol messages. @@ -139,6 +144,9 @@ class V8_EXPORT V8InspectorSession { virtual std::vector> supportedDomains() = 0; + virtual std::unique_ptr + initializeCommandLineAPIScope(int executionContextId) = 0; + // Debugger actions. virtual void schedulePauseOnNextStatement(StringView breakReason, StringView breakDetails) = 0; diff --git a/deps/v8/include/v8-internal.h b/deps/v8/include/v8-internal.h index eb18f76504d6fa..f289149d8d06e2 100644 --- a/deps/v8/include/v8-internal.h +++ b/deps/v8/include/v8-internal.h @@ -33,6 +33,7 @@ const int kApiSystemPointerSize = sizeof(void*); const int kApiDoubleSize = sizeof(double); const int kApiInt32Size = sizeof(int32_t); const int kApiInt64Size = sizeof(int64_t); +const int kApiSizetSize = sizeof(size_t); // Tag information for HeapObject. const int kHeapObjectTag = 1; @@ -40,6 +41,13 @@ const int kWeakHeapObjectTag = 3; const int kHeapObjectTagSize = 2; const intptr_t kHeapObjectTagMask = (1 << kHeapObjectTagSize) - 1; +// Tag information for fowarding pointers stored in object headers. +// 0b00 at the lowest 2 bits in the header indicates that the map word is a +// forwarding pointer. +const int kForwardingTag = 0; +const int kForwardingTagSize = 2; +const intptr_t kForwardingTagMask = (1 << kForwardingTagSize) - 1; + // Tag information for Smi. const int kSmiTag = 0; const int kSmiTagSize = 1; @@ -120,23 +128,28 @@ constexpr bool HeapSandboxIsEnabled() { using ExternalPointer_t = Address; -// If the heap sandbox is enabled, these tag values will be XORed with the +// If the heap sandbox is enabled, these tag values will be ORed with the // external pointers in the external pointer table to prevent use of pointers of -// the wrong type. -enum ExternalPointerTag : Address { - kExternalPointerNullTag = static_cast
(0ULL), - kArrayBufferBackingStoreTag = static_cast
(1ULL << 48), - kTypedArrayExternalPointerTag = static_cast
(2ULL << 48), - kDataViewDataPointerTag = static_cast
(3ULL << 48), - kExternalStringResourceTag = static_cast
(4ULL << 48), - kExternalStringResourceDataTag = static_cast
(5ULL << 48), - kForeignForeignAddressTag = static_cast
(6ULL << 48), - kNativeContextMicrotaskQueueTag = static_cast
(7ULL << 48), - // TODO(v8:10391, saelo): Currently has to be zero so that raw zero values are - // also nullptr - kEmbedderDataSlotPayloadTag = static_cast
(0ULL << 48), +// the wrong type. When a pointer is loaded, it is ANDed with the inverse of the +// expected type's tag. The tags are constructed in a way that guarantees that a +// failed type check will result in one or more of the top bits of the pointer +// to be set, rendering the pointer inacessible. This construction allows +// performing the type check and removing GC marking bits from the pointer at +// the same time. +enum ExternalPointerTag : uint64_t { + kExternalPointerNullTag = 0x0000000000000000, + kArrayBufferBackingStoreTag = 0x00ff000000000000, // 0b000000011111111 + kTypedArrayExternalPointerTag = 0x017f000000000000, // 0b000000101111111 + kDataViewDataPointerTag = 0x01bf000000000000, // 0b000000110111111 + kExternalStringResourceTag = 0x01df000000000000, // 0b000000111011111 + kExternalStringResourceDataTag = 0x01ef000000000000, // 0b000000111101111 + kForeignForeignAddressTag = 0x01f7000000000000, // 0b000000111110111 + kNativeContextMicrotaskQueueTag = 0x01fb000000000000, // 0b000000111111011 + kEmbedderDataSlotPayloadTag = 0x01fd000000000000, // 0b000000111111101 }; +constexpr uint64_t kExternalPointerTagMask = 0xffff000000000000; + #ifdef V8_31BIT_SMIS_ON_64BIT_ARCH using PlatformSmiTagging = SmiTagging; #else @@ -177,6 +190,14 @@ V8_EXPORT bool ShouldThrowOnError(v8::internal::Isolate* isolate); * depend on functions and constants defined here. */ class Internals { +#ifdef V8_MAP_PACKING + V8_INLINE static constexpr internal::Address UnpackMapWord( + internal::Address mapword) { + // TODO(wenyuzhao): Clear header metadata. + return mapword ^ kMapWordXorMask; + } +#endif + public: // These values match non-compiler-dependent values defined within // the implementation of v8. @@ -209,8 +230,12 @@ class Internals { kIsolateFastCCallCallerFpOffset + kApiSystemPointerSize; static const int kIsolateFastApiCallTargetOffset = kIsolateFastCCallCallerPcOffset + kApiSystemPointerSize; - static const int kIsolateStackGuardOffset = + static const int kIsolateCageBaseOffset = kIsolateFastApiCallTargetOffset + kApiSystemPointerSize; + static const int kIsolateLongTaskStatsCounterOffset = + kIsolateCageBaseOffset + kApiSystemPointerSize; + static const int kIsolateStackGuardOffset = + kIsolateLongTaskStatsCounterOffset + kApiSizetSize; static const int kIsolateRootsOffset = kIsolateStackGuardOffset + 7 * kApiSystemPointerSize; @@ -253,6 +278,17 @@ class Internals { // incremental GC once the external memory reaches this limit. static constexpr int kExternalAllocationSoftLimit = 64 * 1024 * 1024; +#ifdef V8_MAP_PACKING + static const uintptr_t kMapWordMetadataMask = 0xffffULL << 48; + // The lowest two bits of mapwords are always `0b10` + static const uintptr_t kMapWordSignature = 0b10; + // XORing a (non-compressed) map with this mask ensures that the two + // low-order bits are 0b10. The 0 at the end makes this look like a Smi, + // although real Smis have all lower 32 bits unset. We only rely on these + // values passing as Smis in very few places. + static const int kMapWordXorMask = 0b11; +#endif + V8_EXPORT static void CheckInitializedImpl(v8::Isolate* isolate); V8_INLINE static void CheckInitialized(v8::Isolate* isolate) { #ifdef V8_ENABLE_CHECKS @@ -279,6 +315,9 @@ class Internals { V8_INLINE static int GetInstanceType(const internal::Address obj) { typedef internal::Address A; A map = ReadTaggedPointerField(obj, kHeapObjectMapOffset); +#ifdef V8_MAP_PACKING + map = UnpackMapWord(map); +#endif return ReadRawField(map, kMapInstanceTypeOffset); } @@ -329,6 +368,12 @@ class Internals { return *reinterpret_cast(addr); } + V8_INLINE static void IncrementLongTasksStatsCounter(v8::Isolate* isolate) { + internal::Address addr = reinterpret_cast(isolate) + + kIsolateLongTaskStatsCounterOffset; + ++(*reinterpret_cast(addr)); + } + V8_INLINE static internal::Address* GetRoot(v8::Isolate* isolate, int index) { internal::Address addr = reinterpret_cast(isolate) + kIsolateRootsOffset + diff --git a/deps/v8/include/v8-metrics.h b/deps/v8/include/v8-metrics.h index 0217f40d63a629..2404cc0a4c30d4 100644 --- a/deps/v8/include/v8-metrics.h +++ b/deps/v8/include/v8-metrics.h @@ -5,7 +5,8 @@ #ifndef V8_METRICS_H_ #define V8_METRICS_H_ -#include "v8.h" // NOLINT(build/include_directory) +#include "v8-internal.h" // NOLINT(build/include_directory) +#include "v8.h" // NOLINT(build/include_directory) namespace v8 { namespace metrics { @@ -183,6 +184,32 @@ class V8_EXPORT Recorder { static ContextId GetContextId(Local context); }; +/** + * Experimental API intended for the LongTasks UKM (crbug.com/1173527). + * The Reset() method should be called at the start of a potential + * long task. The Get() method returns durations of V8 work that + * happened during the task. + * + * This API is experimental and may be removed/changed in the future. + */ +struct V8_EXPORT LongTaskStats { + /** + * Resets durations of V8 work for the new task. + */ + V8_INLINE static void Reset(Isolate* isolate) { + v8::internal::Internals::IncrementLongTasksStatsCounter(isolate); + } + + /** + * Returns durations of V8 work that happened since the last Reset(). + */ + static LongTaskStats Get(Isolate* isolate); + + int64_t gc_full_atomic_wall_clock_duration_us = 0; + int64_t gc_full_incremental_wall_clock_duration_us = 0; + int64_t gc_young_wall_clock_duration_us = 0; +}; + } // namespace metrics } // namespace v8 diff --git a/deps/v8/include/v8-platform.h b/deps/v8/include/v8-platform.h index 4c94d7fd392c0c..fc9a357feb66cb 100644 --- a/deps/v8/include/v8-platform.h +++ b/deps/v8/include/v8-platform.h @@ -181,9 +181,8 @@ class JobDelegate { /** * Returns true if the current task is called from the thread currently * running JobHandle::Join(). - * TODO(etiennep): Make pure virtual once custom embedders implement it. */ - virtual bool IsJoiningThread() const { return false; } + virtual bool IsJoiningThread() const = 0; }; /** @@ -220,19 +219,14 @@ class JobHandle { * Forces all existing workers to yield ASAP but doesn’t wait for them. * Warning, this is dangerous if the Job's callback is bound to or has access * to state which may be deleted after this call. - * TODO(etiennep): Cleanup once implemented by all embedders. */ - virtual void CancelAndDetach() { Cancel(); } + virtual void CancelAndDetach() = 0; /** * Returns true if there's any work pending or any worker running. */ virtual bool IsActive() = 0; - // TODO(etiennep): Clean up once all overrides are removed. - V8_DEPRECATED("Use !IsActive() instead.") - virtual bool IsCompleted() { return !IsActive(); } - /** * Returns true if associated with a Job and other methods may be called. * Returns false after Join() or Cancel() was called. This may return true @@ -240,10 +234,6 @@ class JobHandle { */ virtual bool IsValid() = 0; - // TODO(etiennep): Clean up once all overrides are removed. - V8_DEPRECATED("Use IsValid() instead.") - virtual bool IsRunning() { return IsValid(); } - /** * Returns true if job priority can be changed. */ @@ -272,10 +262,6 @@ class JobTask { * it must not call back any JobHandle methods. */ virtual size_t GetMaxConcurrency(size_t worker_count) const = 0; - - // TODO(1114823): Clean up once all overrides are removed. - V8_DEPRECATED("Use the version that takes |worker_count|.") - virtual size_t GetMaxConcurrency() const { return 0; } }; /** diff --git a/deps/v8/include/v8-profiler.h b/deps/v8/include/v8-profiler.h index 85d3f8a4821ab1..9a40cfcf307e1d 100644 --- a/deps/v8/include/v8-profiler.h +++ b/deps/v8/include/v8-profiler.h @@ -289,8 +289,8 @@ class V8_EXPORT CpuProfilingOptions { * interval, set via SetSamplingInterval(). If * zero, the sampling interval will be equal to * the profiler's sampling interval. - * \param filter_context Deprecated option to filter by context, currently a - * no-op. + * \param filter_context If specified, profiles will only contain frames + * using this context. Other frames will be elided. */ CpuProfilingOptions( CpuProfilingMode mode = kLeafNodeLineNumbers, @@ -304,9 +304,13 @@ class V8_EXPORT CpuProfilingOptions { private: friend class internal::CpuProfile; + bool has_filter_context() const { return !filter_context_.IsEmpty(); } + void* raw_filter_context() const; + CpuProfilingMode mode_; unsigned max_samples_; int sampling_interval_us_; + CopyablePersistentTraits::CopyablePersistent filter_context_; }; /** @@ -492,7 +496,7 @@ class V8_EXPORT HeapGraphNode { /** * An interface for exporting data from V8, using "push" model. */ -class V8_EXPORT OutputStream { // NOLINT +class V8_EXPORT OutputStream { public: enum WriteResult { kContinue = 0, @@ -519,7 +523,6 @@ class V8_EXPORT OutputStream { // NOLINT } }; - /** * HeapSnapshots record the state of the JS heap at some moment. */ @@ -586,7 +589,7 @@ class V8_EXPORT HeapSnapshot { * An interface for reporting progress and controlling long-running * activities. */ -class V8_EXPORT ActivityControl { // NOLINT +class V8_EXPORT ActivityControl { public: enum ControlOption { kContinue = 0, @@ -600,7 +603,6 @@ class V8_EXPORT ActivityControl { // NOLINT virtual ControlOption ReportProgressValue(int done, int total) = 0; }; - /** * AllocationProfile is a sampled profile of allocations done by the program. * This is structured as a call-graph. @@ -900,7 +902,8 @@ class V8_EXPORT HeapProfiler { const HeapSnapshot* TakeHeapSnapshot( ActivityControl* control = nullptr, ObjectNameResolver* global_object_name_resolver = nullptr, - bool treat_global_objects_as_roots = true); + bool treat_global_objects_as_roots = true, + bool capture_numeric_value = false); /** * Starts tracking of heap objects population statistics. After calling diff --git a/deps/v8/include/v8-util.h b/deps/v8/include/v8-util.h index 89ec4f6a789c03..8e4d66153d1f22 100644 --- a/deps/v8/include/v8-util.h +++ b/deps/v8/include/v8-util.h @@ -43,7 +43,7 @@ class StdMapTraits { static bool Empty(Impl* impl) { return impl->empty(); } static size_t Size(Impl* impl) { return impl->size(); } - static void Swap(Impl& a, Impl& b) { std::swap(a, b); } // NOLINT + static void Swap(Impl& a, Impl& b) { std::swap(a, b); } static Iterator Begin(Impl* impl) { return impl->begin(); } static Iterator End(Impl* impl) { return impl->end(); } static K Key(Iterator it) { return it->first; } diff --git a/deps/v8/include/v8-version.h b/deps/v8/include/v8-version.h index 4bdb66b2bf6847..1cf4d7e28448ce 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 9 -#define V8_MINOR_VERSION 1 -#define V8_BUILD_NUMBER 269 -#define V8_PATCH_LEVEL 38 +#define V8_MINOR_VERSION 2 +#define V8_BUILD_NUMBER 230 +#define V8_PATCH_LEVEL 21 // Use 1 for candidates and 0 otherwise. // (Boolean macro values are not supported by all preprocessors.) diff --git a/deps/v8/include/v8.h b/deps/v8/include/v8.h index 840dd2c2258b4f..c4720ca6954da2 100644 --- a/deps/v8/include/v8.h +++ b/deps/v8/include/v8.h @@ -596,7 +596,7 @@ template class PersistentBase { */ V8_INLINE uint16_t WrapperClassId() const; - PersistentBase(const PersistentBase& other) = delete; // NOLINT + PersistentBase(const PersistentBase& other) = delete; void operator=(const PersistentBase&) = delete; private: @@ -708,7 +708,7 @@ template class Persistent : public PersistentBase { return *this; } template - V8_INLINE Persistent& operator=(const Persistent& that) { // NOLINT + V8_INLINE Persistent& operator=(const Persistent& that) { Copy(that); return *this; } @@ -723,7 +723,7 @@ template class Persistent : public PersistentBase { // TODO(dcarney): this is pretty useless, fix or remove template - V8_INLINE static Persistent& Cast(const Persistent& that) { // NOLINT + V8_INLINE static Persistent& Cast(const Persistent& that) { #ifdef V8_ENABLE_CHECKS // If we're going to perform the type check then we have to check // that the handle isn't empty before doing the checked cast. @@ -734,7 +734,7 @@ template class Persistent : public PersistentBase { // TODO(dcarney): this is pretty useless, fix or remove template - V8_INLINE Persistent& As() const { // NOLINT + V8_INLINE Persistent& As() const { return Persistent::Cast(*this); } @@ -803,7 +803,7 @@ class Global : public PersistentBase { /** * Pass allows returning uniques from functions, etc. */ - Global Pass() { return static_cast(*this); } // NOLINT + Global Pass() { return static_cast(*this); } /* * For compatibility with Chromium's base::Bind (base::Passed). @@ -905,8 +905,8 @@ class TracedReferenceBase { * The exact semantics are: * - Tracing garbage collections use |v8::EmbedderHeapTracer| or cppgc. * - Non-tracing garbage collections refer to - * |v8::EmbedderHeapTracer::IsRootForNonTracingGC()| whether the handle should - * be treated as root or not. + * |v8::EmbedderRootsHandler::IsRoot()| whether the handle should + * be treated as root or not. * * Note that the base class cannot be instantiated itself. Choose from * - TracedGlobal @@ -1427,9 +1427,7 @@ class ScriptOriginOptions { */ class ScriptOrigin { public: -#if defined(_MSC_VER) && _MSC_VER >= 1910 /* Disable on VS2015 */ V8_DEPRECATE_SOON("Use constructor with primitive C++ types") -#endif V8_INLINE explicit ScriptOrigin( Local resource_name, Local resource_line_offset, Local resource_column_offset, @@ -1440,9 +1438,7 @@ class ScriptOrigin { Local is_wasm = Local(), Local is_module = Local(), Local host_defined_options = Local()); -#if defined(_MSC_VER) && _MSC_VER >= 1910 /* Disable on VS2015 */ V8_DEPRECATE_SOON("Use constructor that takes an isolate") -#endif V8_INLINE explicit ScriptOrigin( Local resource_name, int resource_line_offset = 0, int resource_column_offset = 0, @@ -1495,7 +1491,7 @@ class V8_EXPORT UnboundScript { */ Local