From a7cbf19a82c75e9a65e90fb8ba4947e2fc52ef39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Tue, 8 Jun 2021 14:04:59 +0200 Subject: [PATCH 01/20] deps: update V8 to 9.1.269.36 PR-URL: https://github.com/nodejs/node/pull/38273 Reviewed-By: Jiawen Geng Reviewed-By: Colin Ihrig Reviewed-By: Antoine du Hamel Reviewed-By: Michael Dawson Reviewed-By: Mary Marchini --- deps/v8/AUTHORS | 4 +- deps/v8/BUILD.gn | 2736 +++++++++-------- deps/v8/COMMON_OWNERS | 6 +- deps/v8/DEPS | 48 +- deps/v8/ENG_REVIEW_OWNERS | 1 - .../trace_event/common/trace_event_common.h | 6 +- deps/v8/gni/snapshot_toolchain.gni | 4 + deps/v8/gni/v8.cmx | 44 + deps/v8/include/OWNERS | 14 +- deps/v8/include/cppgc/allocation.h | 53 +- .../include/cppgc/cross-thread-persistent.h | 67 +- deps/v8/include/cppgc/explicit-management.h | 73 + deps/v8/include/cppgc/garbage-collected.h | 3 +- deps/v8/include/cppgc/heap-state.h | 11 + deps/v8/include/cppgc/internal/gc-info.h | 56 +- .../include/cppgc/internal/persistent-node.h | 40 + .../include/cppgc/internal/pointer-policies.h | 7 +- deps/v8/include/cppgc/testing.h | 49 + deps/v8/include/cppgc/visitor.h | 79 +- deps/v8/include/v8-cppgc.h | 15 + deps/v8/include/v8-fast-api-calls.h | 346 ++- deps/v8/include/v8-internal.h | 18 +- deps/v8/include/v8-platform.h | 19 +- deps/v8/include/v8-version.h | 6 +- deps/v8/include/v8.h | 334 +- deps/v8/infra/mb/mb_config.pyl | 1 + deps/v8/infra/testing/builders.pyl | 93 +- deps/v8/src/DEPS | 7 +- deps/v8/src/api/api-inl.h | 1 + deps/v8/src/api/api-natives.cc | 6 +- deps/v8/src/api/api.cc | 882 +++--- deps/v8/src/api/api.h | 2 +- deps/v8/src/asmjs/OWNERS | 1 - deps/v8/src/asmjs/asm-js.cc | 2 + deps/v8/src/ast/OWNERS | 3 - deps/v8/src/ast/ast.cc | 36 +- deps/v8/src/ast/ast.h | 111 +- deps/v8/src/ast/scopes.cc | 13 +- deps/v8/src/ast/scopes.h | 8 + deps/v8/src/base/cpu.cc | 64 +- deps/v8/src/base/cpu.h | 43 +- deps/v8/src/base/immediate-crash.h | 162 + deps/v8/src/base/logging.cc | 9 - deps/v8/src/base/logging.h | 95 +- deps/v8/src/base/macros.h | 15 +- deps/v8/src/base/overflowing-math.h | 7 - deps/v8/src/base/platform/OWNERS | 1 + deps/v8/src/base/platform/platform-fuchsia.cc | 2 +- deps/v8/src/base/platform/platform-posix.cc | 2 +- deps/v8/src/base/platform/platform-win32.cc | 2 +- deps/v8/src/base/template-utils.h | 8 +- deps/v8/src/base/vlq.h | 85 + deps/v8/src/baseline/OWNERS | 1 + .../baseline/arm/baseline-assembler-arm-inl.h | 483 +++ .../baseline/arm/baseline-compiler-arm-inl.h | 94 + .../arm64/baseline-assembler-arm64-inl.h | 52 +- .../arm64/baseline-compiler-arm64-inl.h | 7 +- deps/v8/src/baseline/baseline-assembler-inl.h | 9 +- deps/v8/src/baseline/baseline-assembler.h | 14 +- deps/v8/src/baseline/baseline-compiler.cc | 463 +-- deps/v8/src/baseline/baseline-compiler.h | 39 +- deps/v8/src/baseline/baseline.cc | 19 +- deps/v8/src/baseline/baseline.h | 4 +- .../src/baseline/bytecode-offset-iterator.cc | 65 + .../src/baseline/bytecode-offset-iterator.h | 98 + .../ia32/baseline-assembler-ia32-inl.h | 445 +++ .../ia32/baseline-compiler-ia32-inl.h | 93 + .../baseline/x64/baseline-assembler-x64-inl.h | 33 +- .../baseline/x64/baseline-compiler-x64-inl.h | 5 +- deps/v8/src/bigint/DEPS | 13 + deps/v8/src/bigint/OWNERS | 2 + deps/v8/src/bigint/bigint.h | 131 + deps/v8/src/bigint/vector-arithmetic.cc | 22 + deps/v8/src/builtins/accessors.cc | 9 +- deps/v8/src/builtins/arm/builtins-arm.cc | 463 ++- deps/v8/src/builtins/arm64/builtins-arm64.cc | 313 +- deps/v8/src/builtins/array-join.tq | 10 +- deps/v8/src/builtins/base.tq | 79 +- deps/v8/src/builtins/builtins-array-gen.cc | 3 - deps/v8/src/builtins/builtins-array.cc | 24 +- .../builtins/builtins-async-function-gen.cc | 4 +- deps/v8/src/builtins/builtins-async-gen.cc | 64 +- deps/v8/src/builtins/builtins-async-gen.h | 6 - .../builtins/builtins-async-generator-gen.cc | 4 +- deps/v8/src/builtins/builtins-callsite.cc | 2 + .../src/builtins/builtins-collections-gen.cc | 7 +- .../src/builtins/builtins-constructor-gen.cc | 24 +- deps/v8/src/builtins/builtins-definitions.h | 23 +- deps/v8/src/builtins/builtins-function.cc | 9 - .../v8/src/builtins/builtins-generator-gen.cc | 109 + deps/v8/src/builtins/builtins-internal-gen.cc | 108 +- deps/v8/src/builtins/builtins-intl.cc | 24 +- deps/v8/src/builtins/builtins-iterator-gen.cc | 10 +- deps/v8/src/builtins/builtins-iterator-gen.h | 2 - deps/v8/src/builtins/builtins-lazy-gen.cc | 14 +- .../builtins/builtins-microtask-queue-gen.cc | 62 +- deps/v8/src/builtins/builtins-object-gen.cc | 45 +- deps/v8/src/builtins/builtins-proxy-gen.cc | 4 +- deps/v8/src/builtins/builtins-proxy-gen.h | 1 - deps/v8/src/builtins/builtins-regexp-gen.cc | 31 +- deps/v8/src/builtins/builtins-string-gen.cc | 2 - .../src/builtins/builtins-typed-array-gen.cc | 72 +- deps/v8/src/builtins/builtins.cc | 10 +- deps/v8/src/builtins/builtins.h | 7 +- deps/v8/src/builtins/cast.tq | 6 - deps/v8/src/builtins/constructor.tq | 5 +- deps/v8/src/builtins/convert.tq | 24 +- deps/v8/src/builtins/ia32/builtins-ia32.cc | 452 ++- deps/v8/src/builtins/iterator.tq | 1 + deps/v8/src/builtins/mips/builtins-mips.cc | 34 +- .../v8/src/builtins/mips64/builtins-mips64.cc | 34 +- deps/v8/src/builtins/object.tq | 6 +- deps/v8/src/builtins/ppc/builtins-ppc.cc | 35 +- .../builtins/promise-abstract-operations.tq | 15 +- .../builtins/promise-all-element-closure.tq | 2 +- deps/v8/src/builtins/promise-all.tq | 3 +- deps/v8/src/builtins/promise-constructor.tq | 7 +- deps/v8/src/builtins/promise-jobs.tq | 3 +- deps/v8/src/builtins/promise-misc.tq | 121 +- deps/v8/src/builtins/promise-resolve.tq | 16 +- .../src/builtins/riscv64/builtins-riscv64.cc | 4 +- deps/v8/src/builtins/s390/builtins-s390.cc | 35 +- deps/v8/src/builtins/torque-internal.tq | 9 + deps/v8/src/builtins/wasm.tq | 47 +- deps/v8/src/builtins/x64/builtins-x64.cc | 688 +++-- deps/v8/src/codegen/OWNERS | 4 +- deps/v8/src/codegen/aligned-slot-allocator.cc | 125 + deps/v8/src/codegen/aligned-slot-allocator.h | 71 + deps/v8/src/codegen/arm/assembler-arm-inl.h | 2 - deps/v8/src/codegen/arm/assembler-arm.cc | 17 +- deps/v8/src/codegen/arm/assembler-arm.h | 15 + .../codegen/arm/interface-descriptors-arm.cc | 24 +- .../v8/src/codegen/arm/macro-assembler-arm.cc | 88 +- deps/v8/src/codegen/arm/macro-assembler-arm.h | 21 +- deps/v8/src/codegen/arm/register-arm.h | 7 +- .../src/codegen/arm64/assembler-arm64-inl.h | 2 - deps/v8/src/codegen/arm64/assembler-arm64.cc | 145 +- deps/v8/src/codegen/arm64/assembler-arm64.h | 16 +- deps/v8/src/codegen/arm64/constants-arm64.h | 25 - .../codegen/arm64/macro-assembler-arm64-inl.h | 5 +- .../codegen/arm64/macro-assembler-arm64.cc | 121 +- .../src/codegen/arm64/macro-assembler-arm64.h | 22 +- deps/v8/src/codegen/arm64/register-arm64.h | 31 +- deps/v8/src/codegen/assembler.cc | 6 + deps/v8/src/codegen/assembler.h | 5 + deps/v8/src/codegen/code-factory.cc | 7 + deps/v8/src/codegen/code-factory.h | 1 + deps/v8/src/codegen/code-reference.cc | 18 + deps/v8/src/codegen/code-stub-assembler.cc | 1841 ++++++++--- deps/v8/src/codegen/code-stub-assembler.h | 274 +- deps/v8/src/codegen/compilation-cache.cc | 16 +- deps/v8/src/codegen/compilation-cache.h | 9 +- deps/v8/src/codegen/compiler.cc | 122 +- deps/v8/src/codegen/cpu-features.h | 5 +- deps/v8/src/codegen/external-reference.cc | 162 +- deps/v8/src/codegen/external-reference.h | 103 +- deps/v8/src/codegen/handler-table.cc | 5 + deps/v8/src/codegen/handler-table.h | 2 + deps/v8/src/codegen/ia32/assembler-ia32-inl.h | 6 - deps/v8/src/codegen/ia32/assembler-ia32.cc | 32 +- deps/v8/src/codegen/ia32/assembler-ia32.h | 6 + .../ia32/interface-descriptors-ia32.cc | 16 +- .../src/codegen/ia32/macro-assembler-ia32.cc | 637 +--- .../src/codegen/ia32/macro-assembler-ia32.h | 238 +- deps/v8/src/codegen/ia32/register-ia32.h | 7 +- deps/v8/src/codegen/interface-descriptors.cc | 31 +- deps/v8/src/codegen/interface-descriptors.h | 47 +- deps/v8/src/codegen/machine-type.h | 24 +- deps/v8/src/codegen/mips/assembler-mips-inl.h | 2 - deps/v8/src/codegen/mips/assembler-mips.cc | 2 + .../src/codegen/mips/macro-assembler-mips.cc | 10 +- .../src/codegen/mips/macro-assembler-mips.h | 11 +- deps/v8/src/codegen/mips/register-mips.h | 7 +- .../src/codegen/mips64/assembler-mips64-inl.h | 2 - .../v8/src/codegen/mips64/assembler-mips64.cc | 2 + .../codegen/mips64/macro-assembler-mips64.cc | 10 +- .../codegen/mips64/macro-assembler-mips64.h | 12 +- deps/v8/src/codegen/mips64/register-mips64.h | 7 +- .../src/codegen/optimized-compilation-info.cc | 7 + .../src/codegen/optimized-compilation-info.h | 6 + deps/v8/src/codegen/ppc/assembler-ppc-inl.h | 2 - deps/v8/src/codegen/ppc/assembler-ppc.cc | 46 +- deps/v8/src/codegen/ppc/assembler-ppc.h | 15 +- deps/v8/src/codegen/ppc/constants-ppc.h | 201 +- .../v8/src/codegen/ppc/macro-assembler-ppc.cc | 10 +- deps/v8/src/codegen/ppc/macro-assembler-ppc.h | 10 +- deps/v8/src/codegen/ppc/register-ppc.h | 30 +- deps/v8/src/codegen/register-arch.h | 14 + deps/v8/src/codegen/register.cc | 16 - deps/v8/src/codegen/register.h | 3 - deps/v8/src/codegen/reloc-info.cc | 7 +- deps/v8/src/codegen/reloc-info.h | 4 + .../codegen/riscv64/assembler-riscv64-inl.h | 2 - .../src/codegen/riscv64/assembler-riscv64.cc | 2 + .../riscv64/interface-descriptors-riscv64.cc | 12 + .../riscv64/macro-assembler-riscv64.cc | 5 +- .../codegen/riscv64/macro-assembler-riscv64.h | 15 +- .../v8/src/codegen/riscv64/register-riscv64.h | 6 + deps/v8/src/codegen/s390/assembler-s390-inl.h | 4 - deps/v8/src/codegen/s390/assembler-s390.cc | 4 + .../src/codegen/s390/macro-assembler-s390.cc | 224 +- .../src/codegen/s390/macro-assembler-s390.h | 26 +- deps/v8/src/codegen/s390/register-s390.h | 7 +- deps/v8/src/codegen/safepoint-table.cc | 31 +- deps/v8/src/codegen/safepoint-table.h | 43 +- .../macro-assembler-shared-ia32-x64.cc | 403 +++ .../macro-assembler-shared-ia32-x64.h | 189 ++ deps/v8/src/codegen/signature.h | 54 + deps/v8/src/codegen/tnode.h | 31 +- deps/v8/src/codegen/x64/assembler-x64-inl.h | 8 +- deps/v8/src/codegen/x64/assembler-x64.cc | 60 +- deps/v8/src/codegen/x64/assembler-x64.h | 2 +- .../v8/src/codegen/x64/macro-assembler-x64.cc | 456 +-- deps/v8/src/codegen/x64/macro-assembler-x64.h | 187 +- deps/v8/src/codegen/x64/register-x64.h | 47 +- deps/v8/src/common/external-pointer-inl.h | 12 +- deps/v8/src/common/external-pointer.h | 4 +- deps/v8/src/common/globals.h | 37 +- deps/v8/src/common/message-template.h | 1 - deps/v8/src/common/ptr-compr-inl.h | 64 +- deps/v8/src/common/ptr-compr.h | 4 +- deps/v8/src/compiler-dispatcher/OWNERS | 1 - .../optimizing-compile-dispatcher.cc | 94 +- .../optimizing-compile-dispatcher.h | 14 +- deps/v8/src/compiler/OWNERS | 11 +- deps/v8/src/compiler/access-info.cc | 369 ++- deps/v8/src/compiler/access-info.h | 127 +- .../backend/arm/code-generator-arm.cc | 222 +- .../backend/arm/instruction-codes-arm.h | 13 +- .../backend/arm/instruction-scheduler-arm.cc | 13 +- .../backend/arm/instruction-selector-arm.cc | 40 +- .../backend/arm64/code-generator-arm64.cc | 198 +- .../backend/arm64/instruction-codes-arm64.h | 18 +- .../arm64/instruction-scheduler-arm64.cc | 18 +- .../arm64/instruction-selector-arm64.cc | 192 +- .../v8/src/compiler/backend/code-generator.cc | 74 +- deps/v8/src/compiler/backend/code-generator.h | 3 + .../backend/ia32/code-generator-ia32.cc | 440 +-- .../backend/ia32/instruction-codes-ia32.h | 21 +- .../ia32/instruction-scheduler-ia32.cc | 21 +- .../backend/ia32/instruction-selector-ia32.cc | 147 +- .../src/compiler/backend/instruction-codes.h | 7 +- .../compiler/backend/instruction-scheduler.cc | 4 + .../compiler/backend/instruction-selector.cc | 208 +- .../compiler/backend/instruction-selector.h | 66 +- deps/v8/src/compiler/backend/instruction.cc | 29 +- deps/v8/src/compiler/backend/instruction.h | 118 +- .../v8/src/compiler/backend/jump-threading.cc | 15 +- .../backend/mid-tier-register-allocator.cc | 521 ++-- .../backend/mid-tier-register-allocator.h | 1 - .../backend/mips/code-generator-mips.cc | 149 +- .../backend/mips/instruction-codes-mips.h | 12 +- .../mips/instruction-scheduler-mips.cc | 18 +- .../backend/mips/instruction-selector-mips.cc | 20 +- .../backend/mips64/code-generator-mips64.cc | 149 +- .../backend/mips64/instruction-codes-mips64.h | 12 +- .../mips64/instruction-scheduler-mips64.cc | 16 +- .../mips64/instruction-selector-mips64.cc | 23 +- .../backend/ppc/code-generator-ppc.cc | 399 ++- .../backend/ppc/instruction-codes-ppc.h | 41 +- .../backend/ppc/instruction-scheduler-ppc.cc | 37 +- .../backend/ppc/instruction-selector-ppc.cc | 134 +- .../backend/register-allocator-verifier.cc | 20 +- .../compiler/backend/register-allocator.cc | 63 +- .../src/compiler/backend/register-allocator.h | 5 + .../backend/riscv64/code-generator-riscv64.cc | 33 +- .../riscv64/instruction-codes-riscv64.h | 15 +- .../riscv64/instruction-scheduler-riscv64.cc | 15 +- .../riscv64/instruction-selector-riscv64.cc | 33 +- .../backend/s390/code-generator-s390.cc | 512 +-- .../backend/s390/instruction-codes-s390.h | 16 +- .../s390/instruction-scheduler-s390.cc | 18 +- .../backend/s390/instruction-selector-s390.cc | 34 +- .../backend/x64/code-generator-x64.cc | 481 ++- .../backend/x64/instruction-codes-x64.h | 18 +- .../backend/x64/instruction-scheduler-x64.cc | 18 +- .../backend/x64/instruction-selector-x64.cc | 226 +- deps/v8/src/compiler/branch-elimination.cc | 62 +- deps/v8/src/compiler/branch-elimination.h | 2 + deps/v8/src/compiler/bytecode-analysis.cc | 58 +- deps/v8/src/compiler/code-assembler.cc | 46 +- deps/v8/src/compiler/code-assembler.h | 215 +- .../src/compiler/common-operator-reducer.cc | 27 + .../v8/src/compiler/common-operator-reducer.h | 1 + deps/v8/src/compiler/common-operator.cc | 2 + deps/v8/src/compiler/common-operator.h | 2 + .../src/compiler/compilation-dependencies.cc | 138 +- .../src/compiler/compilation-dependencies.h | 14 + deps/v8/src/compiler/csa-load-elimination.cc | 119 +- deps/v8/src/compiler/csa-load-elimination.h | 3 + .../src/compiler/effect-control-linearizer.cc | 31 +- deps/v8/src/compiler/frame-states.cc | 20 +- deps/v8/src/compiler/frame-states.h | 11 + deps/v8/src/compiler/frame.cc | 31 +- deps/v8/src/compiler/frame.h | 99 +- deps/v8/src/compiler/graph-visualizer.cc | 11 +- deps/v8/src/compiler/heap-refs.h | 61 +- deps/v8/src/compiler/int64-lowering.cc | 235 +- deps/v8/src/compiler/int64-lowering.h | 11 +- deps/v8/src/compiler/js-call-reducer.cc | 25 +- deps/v8/src/compiler/js-generic-lowering.cc | 4 +- deps/v8/src/compiler/js-heap-broker.cc | 464 ++- deps/v8/src/compiler/js-heap-broker.h | 10 +- deps/v8/src/compiler/js-inlining-heuristic.cc | 21 +- deps/v8/src/compiler/js-inlining.cc | 24 +- deps/v8/src/compiler/js-inlining.h | 4 + .../js-native-context-specialization.cc | 76 +- .../js-native-context-specialization.h | 1 - deps/v8/src/compiler/js-operator.cc | 4 + deps/v8/src/compiler/js-operator.h | 13 +- deps/v8/src/compiler/linkage.cc | 87 +- deps/v8/src/compiler/linkage.h | 44 +- deps/v8/src/compiler/loop-analysis.cc | 80 +- deps/v8/src/compiler/loop-analysis.h | 40 +- deps/v8/src/compiler/loop-peeling.cc | 6 +- deps/v8/src/compiler/loop-peeling.h | 1 + deps/v8/src/compiler/loop-unrolling.cc | 220 ++ deps/v8/src/compiler/loop-unrolling.h | 44 + .../v8/src/compiler/machine-graph-verifier.cc | 24 + .../src/compiler/machine-operator-reducer.cc | 30 + deps/v8/src/compiler/machine-operator.cc | 74 +- deps/v8/src/compiler/machine-operator.h | 32 +- deps/v8/src/compiler/memory-lowering.cc | 18 +- deps/v8/src/compiler/memory-optimizer.cc | 5 + deps/v8/src/compiler/node-matchers.h | 4 + deps/v8/src/compiler/node-properties.cc | 30 + deps/v8/src/compiler/node-properties.h | 4 + deps/v8/src/compiler/node.cc | 7 +- deps/v8/src/compiler/node.h | 8 +- deps/v8/src/compiler/opcodes.h | 25 +- deps/v8/src/compiler/operator-properties.cc | 2 + deps/v8/src/compiler/pipeline.cc | 590 ++-- deps/v8/src/compiler/pipeline.h | 3 +- .../src/compiler/property-access-builder.cc | 43 +- .../v8/src/compiler/property-access-builder.h | 10 +- deps/v8/src/compiler/raw-machine-assembler.cc | 2 +- deps/v8/src/compiler/raw-machine-assembler.h | 23 + deps/v8/src/compiler/schedule.cc | 2 +- .../serializer-for-background-compilation.cc | 61 +- deps/v8/src/compiler/simd-scalar-lowering.cc | 67 +- deps/v8/src/compiler/simd-scalar-lowering.h | 4 + deps/v8/src/compiler/simplified-lowering.cc | 7 + deps/v8/src/compiler/typer.cc | 2 + deps/v8/src/compiler/types.cc | 4 + deps/v8/src/compiler/verifier.cc | 5 + deps/v8/src/compiler/wasm-compiler.cc | 1691 +++++----- deps/v8/src/compiler/wasm-compiler.h | 185 +- deps/v8/src/d8/OWNERS | 3 +- deps/v8/src/d8/d8-test.cc | 230 ++ deps/v8/src/d8/d8.cc | 253 +- deps/v8/src/d8/d8.h | 11 +- deps/v8/src/debug/OWNERS | 4 +- deps/v8/src/debug/debug-evaluate.cc | 47 +- deps/v8/src/debug/debug-frames.cc | 7 +- deps/v8/src/debug/debug-frames.h | 2 + deps/v8/src/debug/debug-interface.cc | 62 +- deps/v8/src/debug/debug-interface.h | 26 +- deps/v8/src/debug/debug-scopes.cc | 5 +- .../src/debug/debug-stack-trace-iterator.cc | 16 +- deps/v8/src/debug/debug-wasm-objects-inl.h | 1 + deps/v8/src/debug/debug-wasm-objects.cc | 343 ++- deps/v8/src/debug/debug-wasm-objects.h | 16 +- deps/v8/src/debug/debug.cc | 353 ++- deps/v8/src/debug/debug.h | 16 +- deps/v8/src/debug/liveedit.cc | 7 + .../wasm/gdb-server/wasm-module-debug.cc | 2 +- deps/v8/src/deoptimizer/OWNERS | 1 - .../deoptimizer/deoptimizer-cfi-builtins.cc | 4 + deps/v8/src/deoptimizer/deoptimizer.cc | 145 +- deps/v8/src/deoptimizer/deoptimizer.h | 10 +- deps/v8/src/deoptimizer/frame-description.h | 4 +- deps/v8/src/deoptimizer/translated-state.cc | 45 +- deps/v8/src/deoptimizer/translated-state.h | 21 +- deps/v8/src/deoptimizer/translation-array.cc | 44 +- deps/v8/src/deoptimizer/translation-array.h | 9 +- deps/v8/src/deoptimizer/translation-opcode.h | 4 +- deps/v8/src/diagnostics/arm64/disasm-arm64.cc | 15 +- deps/v8/src/diagnostics/disassembler.cc | 16 +- deps/v8/src/diagnostics/objects-debug.cc | 72 +- deps/v8/src/diagnostics/objects-printer.cc | 130 +- deps/v8/src/diagnostics/perf-jit.cc | 14 +- deps/v8/src/diagnostics/perf-jit.h | 4 + deps/v8/src/diagnostics/ppc/disasm-ppc.cc | 31 +- .../src/diagnostics/system-jit-metadata-win.h | 243 ++ deps/v8/src/diagnostics/system-jit-win.cc | 108 + deps/v8/src/diagnostics/system-jit-win.h | 20 + .../src/diagnostics/unwinding-info-win64.cc | 31 - deps/v8/src/execution/OWNERS | 4 +- .../src/execution/arm/frame-constants-arm.h | 20 +- deps/v8/src/execution/arm/simulator-arm.cc | 18 +- .../execution/arm64/frame-constants-arm64.h | 23 +- .../v8/src/execution/arm64/simulator-arm64.cc | 14 +- deps/v8/src/execution/execution.cc | 8 +- deps/v8/src/execution/execution.h | 2 + deps/v8/src/execution/frame-constants.h | 2 + deps/v8/src/execution/frames-inl.h | 15 +- deps/v8/src/execution/frames.cc | 323 +- deps/v8/src/execution/frames.h | 35 +- deps/v8/src/execution/futex-emulation.cc | 173 +- .../src/execution/ia32/frame-constants-ia32.h | 12 +- deps/v8/src/execution/isolate-inl.h | 1 + deps/v8/src/execution/isolate-utils-inl.h | 32 +- deps/v8/src/execution/isolate-utils.h | 11 +- deps/v8/src/execution/isolate.cc | 201 +- deps/v8/src/execution/isolate.h | 121 +- deps/v8/src/execution/local-isolate.cc | 6 +- deps/v8/src/execution/local-isolate.h | 11 +- deps/v8/src/execution/messages.cc | 4 - .../src/execution/ppc/frame-constants-ppc.h | 10 +- deps/v8/src/execution/ppc/simulator-ppc.cc | 1203 +++++++- deps/v8/src/execution/ppc/simulator-ppc.h | 107 +- .../src/execution/s390/frame-constants-s390.h | 10 +- deps/v8/src/execution/s390/simulator-s390.cc | 2 +- deps/v8/src/execution/s390/simulator-s390.h | 8 +- deps/v8/src/execution/stack-guard.cc | 35 +- deps/v8/src/execution/stack-guard.h | 5 + .../src/execution/x64/frame-constants-x64.h | 10 +- .../v8/src/extensions/statistics-extension.cc | 19 +- deps/v8/src/flags/flag-definitions.h | 178 +- deps/v8/src/flags/flags.cc | 3 + deps/v8/src/flags/flags.h | 1 - deps/v8/src/handles/global-handles.cc | 4 +- .../heap/base/asm/arm64/push_registers_asm.cc | 16 +- deps/v8/src/heap/basic-memory-chunk.cc | 9 +- deps/v8/src/heap/basic-memory-chunk.h | 15 +- deps/v8/src/heap/collection-barrier.cc | 76 +- deps/v8/src/heap/collection-barrier.h | 68 +- deps/v8/src/heap/concurrent-allocator.cc | 50 +- deps/v8/src/heap/concurrent-marking.cc | 21 +- deps/v8/src/heap/cppgc-js/cpp-heap.cc | 101 +- deps/v8/src/heap/cppgc-js/cpp-heap.h | 11 + deps/v8/src/heap/cppgc-js/cpp-snapshot.cc | 13 +- .../cppgc-js/unified-heap-marking-state.h | 12 +- deps/v8/src/heap/cppgc/compactor.cc | 12 +- deps/v8/src/heap/cppgc/compactor.h | 2 +- deps/v8/src/heap/cppgc/explicit-management.cc | 152 + deps/v8/src/heap/cppgc/free-list.cc | 2 +- deps/v8/src/heap/cppgc/free-list.h | 4 +- deps/v8/src/heap/cppgc/gc-info-table.cc | 11 +- deps/v8/src/heap/cppgc/gc-info-table.h | 2 +- deps/v8/src/heap/cppgc/gc-info.cc | 14 +- deps/v8/src/heap/cppgc/globals.h | 7 +- deps/v8/src/heap/cppgc/heap-base.cc | 16 +- deps/v8/src/heap/cppgc/heap-base.h | 33 +- deps/v8/src/heap/cppgc/heap-object-header.cc | 14 +- deps/v8/src/heap/cppgc/heap-object-header.h | 42 +- deps/v8/src/heap/cppgc/heap-page.h | 1 + deps/v8/src/heap/cppgc/heap-state.cc | 16 +- deps/v8/src/heap/cppgc/heap.cc | 23 +- deps/v8/src/heap/cppgc/heap.h | 3 + deps/v8/src/heap/cppgc/marker.cc | 7 +- deps/v8/src/heap/cppgc/marking-state.h | 4 +- deps/v8/src/heap/cppgc/marking-verifier.cc | 2 +- deps/v8/src/heap/cppgc/object-allocator.cc | 2 + deps/v8/src/heap/cppgc/object-allocator.h | 6 +- deps/v8/src/heap/cppgc/object-poisoner.h | 40 + deps/v8/src/heap/cppgc/object-size-trait.cc | 6 +- deps/v8/src/heap/cppgc/persistent-node.cc | 21 + deps/v8/src/heap/cppgc/pointer-policies.cc | 8 +- deps/v8/src/heap/cppgc/stats-collector.cc | 30 +- deps/v8/src/heap/cppgc/stats-collector.h | 9 + deps/v8/src/heap/cppgc/sweeper.cc | 60 +- deps/v8/src/heap/cppgc/sweeper.h | 7 +- deps/v8/src/heap/cppgc/testing.cc | 35 +- deps/v8/src/heap/cppgc/trace-trait.cc | 5 +- deps/v8/src/heap/embedder-tracing.cc | 13 +- deps/v8/src/heap/embedder-tracing.h | 2 + deps/v8/src/heap/factory-base.cc | 322 +- deps/v8/src/heap/factory-base.h | 4 + deps/v8/src/heap/factory-inl.h | 4 +- deps/v8/src/heap/factory.cc | 1577 +++++----- deps/v8/src/heap/factory.h | 48 +- deps/v8/src/heap/gc-idle-time-handler.cc | 18 - deps/v8/src/heap/gc-idle-time-handler.h | 12 - deps/v8/src/heap/gc-tracer.cc | 24 +- deps/v8/src/heap/gc-tracer.h | 9 - deps/v8/src/heap/heap-write-barrier.cc | 5 + deps/v8/src/heap/heap-write-barrier.h | 2 + deps/v8/src/heap/heap.cc | 191 +- deps/v8/src/heap/heap.h | 15 +- deps/v8/src/heap/item-parallel-job.cc | 116 - deps/v8/src/heap/item-parallel-job.h | 146 - deps/v8/src/heap/large-spaces.cc | 2 +- deps/v8/src/heap/local-heap-inl.h | 4 + deps/v8/src/heap/local-heap.cc | 138 +- deps/v8/src/heap/local-heap.h | 98 +- deps/v8/src/heap/mark-compact.cc | 105 +- deps/v8/src/heap/marking-barrier-inl.h | 1 + deps/v8/src/heap/marking-barrier.cc | 10 + deps/v8/src/heap/marking-barrier.h | 2 + deps/v8/src/heap/memory-allocator.cc | 6 +- deps/v8/src/heap/memory-chunk.cc | 7 +- deps/v8/src/heap/memory-measurement.cc | 5 +- deps/v8/src/heap/object-stats.cc | 4 +- deps/v8/src/heap/objects-visiting-inl.h | 3 + deps/v8/src/heap/objects-visiting.h | 84 +- deps/v8/src/heap/paged-spaces.cc | 24 +- deps/v8/src/heap/paged-spaces.h | 8 +- deps/v8/src/heap/read-only-heap-inl.h | 6 +- deps/v8/src/heap/read-only-heap.cc | 6 +- deps/v8/src/heap/read-only-heap.h | 4 +- deps/v8/src/heap/read-only-spaces.cc | 4 +- deps/v8/src/heap/read-only-spaces.h | 9 +- deps/v8/src/heap/safepoint.cc | 120 +- deps/v8/src/heap/safepoint.h | 25 +- deps/v8/src/heap/scavenger.cc | 2 +- deps/v8/src/heap/setup-heap-internal.cc | 16 +- deps/v8/src/heap/weak-object-worklists.cc | 24 +- deps/v8/src/ic/OWNERS | 3 +- deps/v8/src/ic/accessor-assembler.cc | 86 +- deps/v8/src/ic/accessor-assembler.h | 4 +- deps/v8/src/ic/call-optimization.cc | 14 +- deps/v8/src/ic/handler-configuration-inl.h | 4 - deps/v8/src/ic/handler-configuration.cc | 9 +- deps/v8/src/ic/ic.cc | 55 +- deps/v8/src/ic/keyed-store-generic.cc | 24 +- deps/v8/src/init/OWNERS | 3 - deps/v8/src/init/bootstrapper.cc | 169 +- deps/v8/src/init/heap-symbols.h | 2 + deps/v8/src/init/isolate-allocator.cc | 10 +- deps/v8/src/init/v8.cc | 28 +- deps/v8/src/inspector/OWNERS | 7 +- .../src/inspector/v8-debugger-agent-impl.cc | 44 +- deps/v8/src/inspector/v8-debugger-script.cc | 28 +- deps/v8/src/inspector/v8-debugger-script.h | 13 +- deps/v8/src/inspector/v8-debugger.cc | 4 + deps/v8/src/inspector/value-mirror.cc | 16 +- .../interpreter/bytecode-array-accessor.cc | 367 --- .../src/interpreter/bytecode-array-accessor.h | 187 -- .../src/interpreter/bytecode-array-builder.h | 19 +- .../interpreter/bytecode-array-iterator.cc | 355 ++- .../src/interpreter/bytecode-array-iterator.h | 167 +- .../bytecode-array-random-iterator.cc | 2 +- .../bytecode-array-random-iterator.h | 4 +- deps/v8/src/interpreter/bytecode-generator.cc | 64 +- deps/v8/src/interpreter/bytecode-generator.h | 4 +- deps/v8/src/interpreter/bytecode-register.h | 2 +- .../src/interpreter/interpreter-assembler.cc | 28 + .../src/interpreter/interpreter-assembler.h | 3 + .../src/interpreter/interpreter-generator.cc | 6 +- deps/v8/src/interpreter/interpreter.cc | 5 +- deps/v8/src/json/json-parser.cc | 26 +- deps/v8/src/json/json-parser.h | 7 +- deps/v8/src/json/json-stringifier.cc | 4 +- deps/v8/src/libplatform/tracing/OWNERS | 2 +- .../src/libplatform/tracing/recorder-win.cc | 23 +- deps/v8/src/libplatform/tracing/recorder.h | 13 +- deps/v8/src/libsampler/OWNERS | 3 +- deps/v8/src/logging/code-events.h | 46 +- deps/v8/src/logging/counters-definitions.h | 2 - deps/v8/src/logging/counters.h | 15 +- deps/v8/src/logging/log-utils.h | 3 +- deps/v8/src/logging/log.cc | 88 +- deps/v8/src/logging/log.h | 16 +- deps/v8/src/numbers/OWNERS | 1 - deps/v8/src/objects/backing-store.cc | 102 +- deps/v8/src/objects/backing-store.h | 23 +- deps/v8/src/objects/bigint.cc | 47 +- deps/v8/src/objects/code-inl.h | 202 +- deps/v8/src/objects/code.cc | 72 +- deps/v8/src/objects/code.h | 91 +- .../src/objects/compilation-cache-table-inl.h | 24 +- .../v8/src/objects/compilation-cache-table.cc | 53 +- deps/v8/src/objects/compilation-cache-table.h | 9 +- deps/v8/src/objects/compressed-slots-inl.h | 36 +- deps/v8/src/objects/compressed-slots.h | 16 +- deps/v8/src/objects/contexts-inl.h | 24 +- deps/v8/src/objects/contexts.cc | 48 - deps/v8/src/objects/contexts.h | 22 +- deps/v8/src/objects/contexts.tq | 5 - deps/v8/src/objects/descriptor-array-inl.h | 42 +- deps/v8/src/objects/descriptor-array.h | 11 +- deps/v8/src/objects/dictionary-inl.h | 45 +- deps/v8/src/objects/dictionary.h | 20 +- deps/v8/src/objects/elements.cc | 34 +- deps/v8/src/objects/embedder-data-slot-inl.h | 16 +- deps/v8/src/objects/embedder-data-slot.h | 5 +- deps/v8/src/objects/feedback-vector-inl.h | 5 +- deps/v8/src/objects/feedback-vector.h | 2 +- deps/v8/src/objects/field-index-inl.h | 8 +- deps/v8/src/objects/field-index.h | 2 +- deps/v8/src/objects/fixed-array-inl.h | 48 +- deps/v8/src/objects/fixed-array.h | 27 +- deps/v8/src/objects/foreign-inl.h | 2 +- deps/v8/src/objects/hash-table-inl.h | 20 +- deps/v8/src/objects/hash-table.h | 19 +- deps/v8/src/objects/heap-object.h | 8 +- deps/v8/src/objects/intl-objects.cc | 83 +- deps/v8/src/objects/intl-objects.h | 8 + deps/v8/src/objects/js-array-buffer-inl.h | 11 +- deps/v8/src/objects/js-array-buffer.h | 2 +- deps/v8/src/objects/js-array-inl.h | 6 +- deps/v8/src/objects/js-array.h | 14 +- deps/v8/src/objects/js-collator.cc | 19 +- deps/v8/src/objects/js-date-time-format.cc | 86 +- deps/v8/src/objects/js-date-time-format.h | 2 +- deps/v8/src/objects/js-display-names.cc | 19 +- deps/v8/src/objects/js-function-inl.h | 61 +- deps/v8/src/objects/js-function.cc | 32 +- deps/v8/src/objects/js-function.h | 10 +- deps/v8/src/objects/js-list-format.cc | 25 +- deps/v8/src/objects/js-number-format.cc | 20 +- deps/v8/src/objects/js-objects-inl.h | 161 +- deps/v8/src/objects/js-objects.cc | 263 +- deps/v8/src/objects/js-objects.h | 28 +- deps/v8/src/objects/js-objects.tq | 11 +- deps/v8/src/objects/js-plural-rules.cc | 26 +- deps/v8/src/objects/js-regexp.cc | 14 +- .../v8/src/objects/js-relative-time-format.cc | 30 +- deps/v8/src/objects/js-segmenter.cc | 19 +- deps/v8/src/objects/keys.cc | 43 +- deps/v8/src/objects/literal-objects-inl.h | 16 +- deps/v8/src/objects/literal-objects.cc | 49 +- deps/v8/src/objects/literal-objects.h | 4 +- deps/v8/src/objects/lookup-inl.h | 11 +- deps/v8/src/objects/lookup.cc | 191 +- deps/v8/src/objects/lookup.h | 16 +- deps/v8/src/objects/map-inl.h | 115 +- deps/v8/src/objects/map-updater.cc | 88 +- deps/v8/src/objects/map-updater.h | 40 +- deps/v8/src/objects/map.cc | 182 +- deps/v8/src/objects/map.h | 106 +- deps/v8/src/objects/maybe-object-inl.h | 5 +- deps/v8/src/objects/maybe-object.h | 2 +- deps/v8/src/objects/name-inl.h | 10 +- deps/v8/src/objects/object-list-macros.h | 22 +- deps/v8/src/objects/object-macros-undef.h | 18 +- deps/v8/src/objects/object-macros.h | 148 +- .../objects/objects-body-descriptors-inl.h | 182 +- deps/v8/src/objects/objects-definitions.h | 115 +- deps/v8/src/objects/objects-inl.h | 223 +- deps/v8/src/objects/objects.cc | 195 +- deps/v8/src/objects/objects.h | 11 +- deps/v8/src/objects/oddball-inl.h | 2 +- deps/v8/src/objects/ordered-hash-table.cc | 46 +- deps/v8/src/objects/ordered-hash-table.h | 6 - deps/v8/src/objects/property-array-inl.h | 8 +- deps/v8/src/objects/property-array.h | 2 +- deps/v8/src/objects/property-descriptor.cc | 2 +- deps/v8/src/objects/property-details.h | 11 + deps/v8/src/objects/property.cc | 4 +- deps/v8/src/objects/regexp-match-info.h | 6 +- deps/v8/src/objects/scope-info-inl.h | 44 +- deps/v8/src/objects/scope-info.cc | 146 +- deps/v8/src/objects/scope-info.h | 70 +- deps/v8/src/objects/scope-info.tq | 49 +- deps/v8/src/objects/script-inl.h | 45 +- deps/v8/src/objects/script.h | 24 +- .../v8/src/objects/shared-function-info-inl.h | 79 +- deps/v8/src/objects/shared-function-info.cc | 49 +- deps/v8/src/objects/shared-function-info.h | 31 +- deps/v8/src/objects/slots-inl.h | 13 +- deps/v8/src/objects/slots.h | 12 +- deps/v8/src/objects/stack-frame-info-inl.h | 6 +- deps/v8/src/objects/stack-frame-info.cc | 156 +- deps/v8/src/objects/stack-frame-info.h | 9 +- deps/v8/src/objects/string-inl.h | 243 +- deps/v8/src/objects/string-table.cc | 35 +- deps/v8/src/objects/string-table.h | 4 +- deps/v8/src/objects/string.cc | 21 +- deps/v8/src/objects/string.h | 112 +- .../v8/src/objects/swiss-hash-table-helpers.h | 44 +- .../src/objects/swiss-hash-table-helpers.tq | 174 ++ .../src/objects/swiss-name-dictionary-inl.h | 107 +- deps/v8/src/objects/swiss-name-dictionary.cc | 289 +- deps/v8/src/objects/swiss-name-dictionary.h | 66 +- deps/v8/src/objects/swiss-name-dictionary.tq | 306 +- deps/v8/src/objects/tagged-field-inl.h | 14 +- deps/v8/src/objects/tagged-field.h | 9 +- deps/v8/src/objects/templates-inl.h | 27 +- deps/v8/src/objects/templates.h | 14 + deps/v8/src/objects/templates.tq | 3 +- deps/v8/src/objects/transitions-inl.h | 2 +- deps/v8/src/objects/transitions.cc | 53 +- deps/v8/src/objects/transitions.h | 15 + deps/v8/src/objects/value-serializer.cc | 42 +- deps/v8/src/objects/value-serializer.h | 9 + deps/v8/src/objects/visitors.h | 2 +- deps/v8/src/parsing/OWNERS | 2 - deps/v8/src/parsing/parse-info.cc | 5 +- deps/v8/src/parsing/parse-info.h | 9 +- deps/v8/src/parsing/parser-base.h | 24 +- deps/v8/src/parsing/parser.cc | 44 +- deps/v8/src/parsing/parser.h | 4 +- deps/v8/src/parsing/preparser.h | 12 +- .../src/parsing/scanner-character-streams.cc | 101 + deps/v8/src/profiler/OWNERS | 5 +- deps/v8/src/profiler/cpu-profiler-inl.h | 11 +- deps/v8/src/profiler/cpu-profiler.cc | 19 +- deps/v8/src/profiler/cpu-profiler.h | 8 +- deps/v8/src/profiler/heap-profiler.cc | 1 + .../src/profiler/heap-snapshot-generator.cc | 33 +- deps/v8/src/profiler/profile-generator.cc | 49 +- deps/v8/src/profiler/profile-generator.h | 20 +- deps/v8/src/profiler/profiler-listener.cc | 54 +- deps/v8/src/profiler/profiler-listener.h | 15 +- deps/v8/src/profiler/weak-code-registry.cc | 62 + deps/v8/src/profiler/weak-code-registry.h | 46 + deps/v8/src/protobuf/OWNERS | 2 +- deps/v8/src/regexp/OWNERS | 2 +- .../arm64/regexp-macro-assembler-arm64.cc | 13 +- deps/v8/src/regexp/regexp-dotprinter.cc | 6 - .../regexp/regexp-macro-assembler-tracer.cc | 7 +- deps/v8/src/regexp/regexp-macro-assembler.h | 34 +- deps/v8/src/regexp/regexp-stack.cc | 5 +- deps/v8/src/regexp/regexp-stack.h | 3 + deps/v8/src/regexp/regexp-utils.cc | 4 +- deps/v8/src/regexp/regexp.cc | 3 + deps/v8/src/roots/OWNERS | 1 - deps/v8/src/roots/roots.h | 2 +- deps/v8/src/runtime/runtime-classes.cc | 17 +- deps/v8/src/runtime/runtime-compiler.cc | 4 +- deps/v8/src/runtime/runtime-debug.cc | 57 +- deps/v8/src/runtime/runtime-internal.cc | 24 +- deps/v8/src/runtime/runtime-literals.cc | 9 +- deps/v8/src/runtime/runtime-object.cc | 255 +- deps/v8/src/runtime/runtime-promise.cc | 8 +- deps/v8/src/runtime/runtime-regexp.cc | 102 +- deps/v8/src/runtime/runtime-test-wasm.cc | 488 +++ deps/v8/src/runtime/runtime-test.cc | 475 +-- deps/v8/src/runtime/runtime-trace.cc | 12 +- deps/v8/src/runtime/runtime-wasm.cc | 75 +- deps/v8/src/runtime/runtime.cc | 6 + deps/v8/src/runtime/runtime.h | 298 +- deps/v8/src/snapshot/code-serializer.cc | 24 +- deps/v8/src/snapshot/context-deserializer.cc | 1 + deps/v8/src/snapshot/context-serializer.cc | 3 + deps/v8/src/snapshot/deserializer.cc | 2 +- .../v8/src/snapshot/embedded/embedded-data.cc | 71 +- deps/v8/src/snapshot/embedded/embedded-data.h | 39 +- .../embedded/embedded-file-writer-interface.h | 56 + .../snapshot/embedded/embedded-file-writer.cc | 6 +- .../snapshot/embedded/embedded-file-writer.h | 32 +- deps/v8/src/snapshot/object-deserializer.cc | 1 + deps/v8/src/snapshot/serializer.cc | 7 +- deps/v8/src/snapshot/serializer.h | 15 +- deps/v8/src/snapshot/snapshot.cc | 5 + deps/v8/src/strings/OWNERS | 1 - deps/v8/src/strings/string-stream.cc | 2 +- deps/v8/src/third_party/siphash/OWNERS | 1 - deps/v8/src/third_party/utf8-decoder/OWNERS | 1 - deps/v8/src/torque/ast.h | 11 +- deps/v8/src/torque/cc-generator.cc | 55 +- .../torque/class-debug-reader-generator.cc | 25 +- deps/v8/src/torque/constants.h | 1 + deps/v8/src/torque/csa-generator.cc | 9 +- deps/v8/src/torque/declaration-visitor.cc | 2 +- deps/v8/src/torque/global-context.cc | 1 + deps/v8/src/torque/global-context.h | 3 + deps/v8/src/torque/implementation-visitor.cc | 162 +- deps/v8/src/torque/implementation-visitor.h | 19 +- deps/v8/src/torque/instructions.cc | 106 + deps/v8/src/torque/instructions.h | 141 + deps/v8/src/torque/torque-code-generator.cc | 9 +- deps/v8/src/torque/torque-code-generator.h | 6 + deps/v8/src/torque/torque-compiler.cc | 3 + deps/v8/src/torque/torque-compiler.h | 3 + deps/v8/src/torque/torque-parser.cc | 22 +- deps/v8/src/torque/torque.cc | 2 + deps/v8/src/torque/type-oracle.h | 8 + deps/v8/src/torque/type-visitor.cc | 5 +- deps/v8/src/torque/types.cc | 56 +- deps/v8/src/torque/types.h | 16 +- deps/v8/src/torque/utils.cc | 39 +- deps/v8/src/torque/utils.h | 2 + deps/v8/src/tracing/OWNERS | 3 +- deps/v8/src/tracing/trace-categories.h | 2 - deps/v8/src/trap-handler/OWNERS | 2 +- deps/v8/src/utils/utils.h | 7 + deps/v8/src/wasm/OWNERS | 3 - .../wasm/baseline/arm/liftoff-assembler-arm.h | 103 +- .../baseline/arm64/liftoff-assembler-arm64.h | 65 +- .../baseline/ia32/liftoff-assembler-ia32.h | 180 +- .../wasm/baseline/liftoff-assembler-defs.h | 10 +- .../v8/src/wasm/baseline/liftoff-assembler.cc | 135 +- deps/v8/src/wasm/baseline/liftoff-assembler.h | 119 +- deps/v8/src/wasm/baseline/liftoff-compiler.cc | 1681 ++++++---- .../baseline/mips/liftoff-assembler-mips.h | 54 +- .../mips64/liftoff-assembler-mips64.h | 42 +- .../wasm/baseline/ppc/liftoff-assembler-ppc.h | 30 +- .../riscv64/liftoff-assembler-riscv64.h | 326 +- .../baseline/s390/liftoff-assembler-s390.h | 1210 ++++++-- .../wasm/baseline/x64/liftoff-assembler-x64.h | 212 +- deps/v8/src/wasm/c-api.cc | 9 +- deps/v8/src/wasm/c-api.h | 4 + deps/v8/src/wasm/code-space-access.h | 4 + deps/v8/src/wasm/compilation-environment.h | 12 +- deps/v8/src/wasm/decoder.h | 4 + deps/v8/src/wasm/function-body-decoder-impl.h | 1301 +++++--- deps/v8/src/wasm/function-body-decoder.cc | 42 +- deps/v8/src/wasm/function-body-decoder.h | 4 + deps/v8/src/wasm/function-compiler.cc | 21 +- deps/v8/src/wasm/function-compiler.h | 4 + deps/v8/src/wasm/graph-builder-interface.cc | 455 +-- deps/v8/src/wasm/graph-builder-interface.h | 6 + deps/v8/src/wasm/jump-table-assembler.h | 4 + deps/v8/src/wasm/leb-helper.h | 4 + deps/v8/src/wasm/local-decl-encoder.h | 4 + deps/v8/src/wasm/memory-tracing.h | 4 + deps/v8/src/wasm/module-compiler.cc | 13 +- deps/v8/src/wasm/module-compiler.h | 4 + deps/v8/src/wasm/module-decoder.cc | 115 +- deps/v8/src/wasm/module-decoder.h | 85 +- deps/v8/src/wasm/module-instantiate.cc | 62 +- deps/v8/src/wasm/module-instantiate.h | 4 + deps/v8/src/wasm/object-access.h | 4 + deps/v8/src/wasm/signature-map.h | 4 + deps/v8/src/wasm/simd-shuffle.cc | 8 + deps/v8/src/wasm/simd-shuffle.h | 12 + deps/v8/src/wasm/streaming-decoder.h | 4 + deps/v8/src/wasm/struct-types.h | 5 + deps/v8/src/wasm/value-type.h | 41 +- deps/v8/src/wasm/wasm-arguments.h | 4 + deps/v8/src/wasm/wasm-code-manager.cc | 235 +- deps/v8/src/wasm/wasm-code-manager.h | 27 +- deps/v8/src/wasm/wasm-constants.h | 20 +- deps/v8/src/wasm/wasm-debug.cc | 202 +- deps/v8/src/wasm/wasm-debug.h | 21 +- deps/v8/src/wasm/wasm-engine.cc | 9 +- deps/v8/src/wasm/wasm-engine.h | 4 + deps/v8/src/wasm/wasm-external-refs.h | 4 + deps/v8/src/wasm/wasm-feature-flags.h | 47 +- deps/v8/src/wasm/wasm-features.cc | 10 +- deps/v8/src/wasm/wasm-features.h | 9 + deps/v8/src/wasm/wasm-import-wrapper-cache.h | 4 + deps/v8/src/wasm/wasm-js.cc | 98 +- deps/v8/src/wasm/wasm-js.h | 11 +- deps/v8/src/wasm/wasm-limits.h | 4 + deps/v8/src/wasm/wasm-linkage.h | 118 +- deps/v8/src/wasm/wasm-module-builder.cc | 28 +- deps/v8/src/wasm/wasm-module-builder.h | 7 + deps/v8/src/wasm/wasm-module-sourcemap.h | 4 + deps/v8/src/wasm/wasm-module.h | 9 +- deps/v8/src/wasm/wasm-objects-inl.h | 29 +- deps/v8/src/wasm/wasm-objects.cc | 145 +- deps/v8/src/wasm/wasm-objects.h | 8 + deps/v8/src/wasm/wasm-opcodes-inl.h | 32 +- deps/v8/src/wasm/wasm-opcodes.cc | 10 +- deps/v8/src/wasm/wasm-opcodes.h | 157 +- deps/v8/src/wasm/wasm-result.h | 4 + deps/v8/src/wasm/wasm-serialization.cc | 1 + deps/v8/src/wasm/wasm-serialization.h | 4 + deps/v8/src/wasm/wasm-subtyping.cc | 8 +- deps/v8/src/wasm/wasm-subtyping.h | 4 + deps/v8/src/wasm/wasm-tier.h | 4 + deps/v8/src/wasm/wasm-value.h | 75 +- deps/v8/src/web-snapshot/OWNERS | 4 + deps/v8/src/web-snapshot/web-snapshot.cc | 845 +++++ deps/v8/src/web-snapshot/web-snapshot.h | 181 ++ deps/v8/src/zone/OWNERS | 1 - deps/v8/test/BUILD.gn | 46 +- deps/v8/test/cctest/BUILD.gn | 112 +- deps/v8/test/cctest/OWNERS | 2 +- deps/v8/test/cctest/cctest.cc | 2 + deps/v8/test/cctest/cctest.h | 13 + deps/v8/test/cctest/cctest.status | 12 +- .../cctest/compiler/node-observer-tester.h | 1 - .../cctest/compiler/test-code-generator.cc | 27 +- .../test-concurrent-shared-function-info.cc | 5 +- .../cctest/compiler/test-jump-threading.cc | 182 +- deps/v8/test/cctest/compiler/test-linkage.cc | 6 +- .../test-run-calls-to-external-references.cc | 7 +- .../test/cctest/compiler/test-run-machops.cc | 111 + .../cctest/compiler/test-run-retpoline.cc | 33 +- .../cctest/compiler/test-run-tail-calls.cc | 31 +- .../cctest/compiler/test-sloppy-equality.cc | 1 + deps/v8/test/cctest/heap/test-alloc.cc | 2 +- deps/v8/test/cctest/heap/test-compaction.cc | 8 +- .../cctest/heap/test-concurrent-allocation.cc | 109 +- deps/v8/test/cctest/heap/test-heap.cc | 16 +- .../v8/test/cctest/heap/test-write-barrier.cc | 1 + .../AsyncGenerators.golden | 16 +- .../bytecode_expectations/AsyncModules.golden | 16 +- .../bytecode_expectations/ForAwaitOf.golden | 12 +- .../bytecode_expectations/ForOf.golden | 4 +- .../bytecode_expectations/ForOfLoop.golden | 10 +- .../bytecode_expectations/Generators.golden | 16 +- .../bytecode_expectations/Modules.golden | 22 +- .../bytecode_expectations/NewAndSpread.golden | 30 +- .../StandardForLoop.golden | 10 +- .../interpreter/test-bytecode-generator.cc | 1 - .../cctest/interpreter/test-interpreter.cc | 6 +- deps/v8/test/cctest/test-accessors.cc | 38 +- deps/v8/test/cctest/test-api-array-buffer.cc | 190 +- deps/v8/test/cctest/test-api-interceptors.cc | 129 +- deps/v8/test/cctest/test-api-stack-traces.cc | 282 +- deps/v8/test/cctest/test-api-typed-array.cc | 4 +- deps/v8/test/cctest/test-api.cc | 290 +- deps/v8/test/cctest/test-assembler-arm64.cc | 57 - deps/v8/test/cctest/test-code-pages.cc | 27 +- .../test/cctest/test-code-stub-assembler.cc | 184 +- deps/v8/test/cctest/test-compiler.cc | 7 +- deps/v8/test/cctest/test-cpu-profiler.cc | 76 +- deps/v8/test/cctest/test-debug-helper.cc | 25 +- deps/v8/test/cctest/test-debug.cc | 76 +- deps/v8/test/cctest/test-descriptor-array.cc | 14 +- deps/v8/test/cctest/test-disasm-arm64.cc | 18 - .../test/cctest/test-field-type-tracking.cc | 206 +- deps/v8/test/cctest/test-flags.cc | 2 + .../test/cctest/test-func-name-inference.cc | 3 +- deps/v8/test/cctest/test-hashcode.cc | 12 +- deps/v8/test/cctest/test-heap-profiler.cc | 8 +- deps/v8/test/cctest/test-icache.cc | 7 +- deps/v8/test/cctest/test-js-to-wasm.cc | 40 +- deps/v8/test/cctest/test-js-weak-refs.cc | 19 + deps/v8/test/cctest/test-log.cc | 140 +- .../test/cctest/test-macro-assembler-x64.cc | 10 +- deps/v8/test/cctest/test-object.cc | 95 +- deps/v8/test/cctest/test-parsing.cc | 13 +- .../test/cctest/test-poison-disasm-arm64.cc | 4 +- deps/v8/test/cctest/test-profile-generator.cc | 61 +- deps/v8/test/cctest/test-serialize.cc | 36 +- deps/v8/test/cctest/test-strings.cc | 78 + .../cctest/test-swiss-name-dictionary-csa.cc | 466 +++ .../test-swiss-name-dictionary-infra.cc | 139 + .../cctest/test-swiss-name-dictionary-infra.h | 321 ++ .../test-swiss-name-dictionary-shared-tests.h | 942 ++++++ .../test/cctest/test-swiss-name-dictionary.cc | 150 + deps/v8/test/cctest/test-typedarrays.cc | 24 - deps/v8/test/cctest/test-verifiers.cc | 4 +- deps/v8/test/cctest/test-web-snapshots.cc | 131 + .../cctest/{ => wasm}/test-backing-store.cc | 5 +- deps/v8/test/cctest/wasm/test-gc.cc | 167 +- deps/v8/test/cctest/wasm/test-grow-memory.cc | 2 +- .../cctest/wasm/test-liftoff-inspection.cc | 82 +- deps/v8/test/cctest/wasm/test-run-wasm-64.cc | 2 +- .../cctest/wasm/test-run-wasm-exceptions.cc | 177 +- .../cctest/wasm/test-run-wasm-interpreter.cc | 8 +- .../cctest/wasm/test-run-wasm-memory64.cc | 20 + .../test/cctest/wasm/test-run-wasm-module.cc | 12 +- .../cctest/wasm/test-run-wasm-relaxed-simd.cc | 239 ++ .../test-run-wasm-simd-scalar-lowering.cc | 6 +- .../v8/test/cctest/wasm/test-run-wasm-simd.cc | 1477 ++------- deps/v8/test/cctest/wasm/test-run-wasm.cc | 55 +- .../cctest/wasm/test-streaming-compilation.cc | 2 +- .../test/cctest/wasm/test-wasm-breakpoints.cc | 4 +- deps/v8/test/cctest/wasm/test-wasm-metrics.cc | 1 + .../cctest/wasm/test-wasm-serialization.cc | 4 +- deps/v8/test/cctest/wasm/test-wasm-stack.cc | 19 +- deps/v8/test/cctest/wasm/wasm-run-utils.cc | 19 +- deps/v8/test/cctest/wasm/wasm-run-utils.h | 20 +- deps/v8/test/cctest/wasm/wasm-simd-utils.cc | 752 +++++ deps/v8/test/cctest/wasm/wasm-simd-utils.h | 177 ++ deps/v8/test/common/wasm/test-signatures.h | 4 +- deps/v8/test/common/wasm/wasm-interpreter.cc | 194 +- deps/v8/test/common/wasm/wasm-macro-gen.h | 2 +- .../v8/test/common/wasm/wasm-module-runner.cc | 7 +- .../debug/debug-break-class-fields.js | 100 +- .../es6/debug-step-into-class-extends.js | 2 +- deps/v8/test/debugger/debugger.status | 6 + .../debugger/regress/regress-crbug-1199681.js | 52 + .../wasm/gdb-server/test_files/test_memory.js | 4 +- deps/v8/test/fuzzer/BUILD.gn | 17 +- deps/v8/test/fuzzer/fuzzer-support.cc | 2 + deps/v8/test/fuzzer/fuzzer.status | 6 +- deps/v8/test/fuzzer/inspector-fuzzer.cc | 4 - deps/v8/test/fuzzer/wasm-async.cc | 14 +- deps/v8/test/fuzzer/wasm-compile.cc | 167 +- deps/v8/test/fuzzer/wasm-fuzzer-common.cc | 25 +- deps/v8/test/fuzzer/wasm-fuzzer-common.h | 2 +- deps/v8/test/fuzzer/wasm.cc | 14 +- deps/v8/test/fuzzer/wasm/regress-1191853.wasm | Bin 0 -> 25 bytes deps/v8/test/inspector/BUILD.gn | 1 - .../break-locations-await-expected.txt | 4 +- .../break-locations-var-init-expected.txt | 2 +- ...possible-breakpoints-after-gc-expected.txt | 7 + .../get-possible-breakpoints-after-gc.js | 60 + ...t-possible-breakpoints-master-expected.txt | 6 +- .../debugger/regress-1190290-expected.txt | 10 + .../inspector/debugger/regress-1190290.js | 42 + .../debugger/regression-1185540-expected.txt | 2 + .../inspector/debugger/regression-1185540.js | 34 + ...et-breakpoint-before-enabling-expected.txt | 14 +- .../set-breakpoint-before-enabling.js | 9 +- ...s-on-first-breakable-location-expected.txt | 4 +- .../debugger/set-breakpoint-expected.txt | 8 +- ...eakpoint-in-class-initializer-expected.txt | 66 + .../set-breakpoint-in-class-initializer.js | 75 + ...et-breakpoint-inline-function-expected.txt | 11 + .../set-breakpoint-inline-function.js | 31 + .../test/inspector/debugger/set-breakpoint.js | 16 +- .../debugger/wasm-gc-breakpoints-expected.txt | 31 + .../inspector/debugger/wasm-gc-breakpoints.js | 214 ++ .../wasm-gc-in-debug-break-expected.txt | 10 + .../debugger/wasm-gc-in-debug-break.js | 50 + ...sm-get-breakable-locations-byte-offsets.js | 4 +- .../debugger/wasm-inspect-many-registers.js | 9 +- ...sm-instrumentation-breakpoint-expected.txt | 34 + .../wasm-instrumentation-breakpoint.js | 59 +- .../debugger/wasm-scope-info-expected.txt | 37 +- .../test/inspector/debugger/wasm-scripts.js | 2 +- ...oint-breaks-on-first-breakable-location.js | 4 +- .../debugger/wasm-set-breakpoint-expected.txt | 53 +- .../inspector/debugger/wasm-set-breakpoint.js | 4 +- .../v8/test/inspector/debugger/wasm-source.js | 2 +- .../inspector/debugger/wasm-stack-check.js | 13 +- deps/v8/test/inspector/debugger/wasm-stack.js | 2 +- .../wasm-step-from-non-breakable-position.js | 2 +- .../wasm-stepping-no-opcode-merging.js | 11 +- .../debugger/wasm-stepping-with-skiplist.js | 4 +- .../debugger/wasm-stepping-with-source-map.js | 13 +- .../test/inspector/debugger/wasm-stepping.js | 4 +- deps/v8/test/inspector/inspector-test.cc | 5 +- deps/v8/test/inspector/inspector.status | 4 + deps/v8/test/inspector/isolate-data.cc | 9 +- deps/v8/test/inspector/isolate-data.h | 3 +- .../regress-crbug-1183664-expected.txt | 19 + .../regress/regress-crbug-1183664.js | 39 + .../regress-crbug-1199919-expected.txt | 9 + .../regress/regress-crbug-1199919.js | 44 + .../runtime/get-properties-expected.txt | 3 + .../test/inspector/runtime/get-properties.js | 4 + deps/v8/test/inspector/task-runner.cc | 2 +- deps/v8/test/inspector/wasm-inspector-test.js | 8 +- .../intl/displaynames/getoptionsobject.js | 20 + deps/v8/test/intl/intl.status | 5 - .../test/intl/list-format/getoptionsobject.js | 20 + deps/v8/test/intl/regress-11595.js | 23 + .../test/intl/segmenter/getoptionsobject.js | 20 + deps/v8/test/js-perf-test/OWNERS | 2 +- deps/v8/test/message/fail/await-non-async.out | 4 +- .../message/fail/wasm-exception-rethrow.js | 2 +- .../fail/weak-refs-finalizationregistry1.js | 2 + .../fail/weak-refs-finalizationregistry1.out | 4 +- .../fail/weak-refs-finalizationregistry2.js | 2 + .../fail/weak-refs-finalizationregistry2.out | 4 +- .../test/message/fail/weak-refs-register1.js | 2 + .../test/message/fail/weak-refs-register1.out | 4 +- .../test/message/fail/weak-refs-register2.js | 2 + .../test/message/fail/weak-refs-register2.out | 4 +- .../test/message/fail/weak-refs-unregister.js | 2 + .../message/fail/weak-refs-unregister.out | 4 +- deps/v8/test/message/message.status | 9 +- .../weakref-finalizationregistry-error.js | 2 +- .../mjsunit/array-bounds-check-removal.js | 6 +- deps/v8/test/mjsunit/array-sort.js | 16 + deps/v8/test/mjsunit/array-store-and-grow.js | 12 +- deps/v8/test/mjsunit/baseline/cross-realm.js | 55 +- .../mjsunit/baseline/test-baseline-module.mjs | 2 +- .../v8/test/mjsunit/baseline/test-baseline.js | 32 +- .../baseline/verify-bytecode-offsets.js | 37 + .../concurrent-invalidate-transition-map.js | 9 +- .../test/mjsunit/compiler/fast-api-calls.js | 148 + .../compiler/load-elimination-const-field.js | 18 +- .../monomorphic-named-load-with-no-map.js | 2 +- .../compiler/promise-resolve-stable-maps.js | 14 + .../test/mjsunit/compiler/regress-1215514.js | 7 + .../mjsunit/compiler/serializer-accessors.js | 7 +- .../compiler/serializer-dead-after-jump.js | 7 +- .../compiler/serializer-dead-after-return.js | 7 +- .../serializer-transition-propagation.js | 7 +- deps/v8/test/mjsunit/const-dict-tracking.js | 472 ++- .../v8/test/mjsunit/const-field-tracking-2.js | 3 +- deps/v8/test/mjsunit/const-field-tracking.js | 3 +- deps/v8/test/mjsunit/constant-folding-2.js | 2 +- .../mjsunit/ensure-growing-store-learns.js | 6 +- ...collections-constructor-custom-iterator.js | 2 +- ...nstructor-with-modified-array-prototype.js | 2 +- ...ions-constructor-with-modified-protoype.js | 2 +- .../mjsunit/es6/super-ic-opt-no-turboprop.js | 7 +- deps/v8/test/mjsunit/es6/super-ic-opt.js | 22 +- deps/v8/test/mjsunit/field-type-tracking.js | 7 +- .../harmony/import-from-evaluation-errored.js | 4 +- .../mjsunit/harmony/modules-import-15.mjs | 19 - .../test/mjsunit/harmony/weakrefs/basics.js | 2 + .../weakrefs/cleanup-from-different-realm.js | 2 +- .../weakrefs/cleanup-is-not-a-microtask.js | 2 +- .../weakrefs/cleanup-on-detached-realm.js | 2 +- .../cleanup-proxy-from-different-realm.js | 2 +- .../test/mjsunit/harmony/weakrefs/cleanup.js | 2 +- .../harmony/weakrefs/cleanupsome-optional.js | 2 +- .../weakrefs/clearkeptobjects-on-quit.js | 2 + .../finalizationregistry-and-weakref.js | 2 +- ...nalizationregistry-independent-lifetime.js | 2 +- ...nalizationregistry-keeps-holdings-alive.js | 2 +- ...ry-scheduled-for-cleanup-multiple-times.js | 2 +- .../multiple-dirty-finalization-groups.js | 2 +- .../weakrefs/reentrant-gc-from-cleanup.js | 2 +- .../mjsunit/harmony/weakrefs/two-weakrefs.js | 2 +- .../harmony/weakrefs/undefined-holdings.js | 2 +- .../weakrefs/unregister-after-cleanup.js | 2 +- .../weakrefs/unregister-before-cleanup.js | 2 +- .../weakrefs/unregister-called-twice.js | 2 +- .../weakrefs/unregister-inside-cleanup.js | 2 +- .../weakrefs/unregister-inside-cleanup2.js | 2 +- .../weakrefs/unregister-inside-cleanup3.js | 2 +- .../harmony/weakrefs/unregister-many.js | 2 +- ...register-when-cleanup-already-scheduled.js | 2 +- .../harmony/weakrefs/weak-cell-basics.js | 2 +- .../weakrefs/weakref-creation-keeps-alive.js | 2 +- .../weakrefs/weakref-deref-keeps-alive.js | 2 +- deps/v8/test/mjsunit/mjsunit.js | 10 +- deps/v8/test/mjsunit/mjsunit.status | 73 +- deps/v8/test/mjsunit/promise-hooks.js | 275 -- .../mjsunit/proto-accessor-not-accessible.js | 43 + .../regress/{ => asm}/regress-673297.js | 0 .../regress/{ => asm}/regress-743622.js | 0 .../test/mjsunit/regress/regress-1067270.js | 2 +- .../test/mjsunit/regress/regress-1146880.js | 26 + deps/v8/test/mjsunit/regress/regress-11491.js | 19 + deps/v8/test/mjsunit/regress/regress-11519.js | 25 + .../test/mjsunit/regress/regress-1181240.js | 46 + .../test/mjsunit/regress/regress-1185072.js | 26 + .../test/mjsunit/regress/regress-1187170.js | 24 + .../test/mjsunit/regress/regress-1193903.js | 12 + .../v8/test/mjsunit/regress/regress-673241.js | 13 - deps/v8/test/mjsunit/regress/regress-7115.js | 10 +- .../v8/test/mjsunit/regress/regress-923723.js | 2 +- .../v8/test/mjsunit/regress/regress-992389.js | 2 +- .../regress/regress-chromium-1194026.js | 69 + .../regress/regress-crbug-1161847-2.js | 10 + .../regress/regress-crbug-1161847-3.js | 20 + .../mjsunit/regress/regress-crbug-1191886.js | 9 + .../mjsunit/regress/regress-crbug-1195331.js | 4 +- .../test/mjsunit/regress/regress-v8-9534.js | 2 +- ...dition-change-during-branch-elimination.js | 49 + .../mjsunit/regress/wasm/regress-1027410.js | 2 +- .../mjsunit/regress/wasm/regress-1034394.js | 2 +- .../mjsunit/regress/wasm/regress-1074586.js | 16 +- .../mjsunit/regress/wasm/regress-1075953.js | 2 +- .../mjsunit/regress/wasm/regress-10831.js | 2 +- .../mjsunit/regress/wasm/regress-10898.js | 2 +- .../mjsunit/regress/wasm/regress-1101304.js | 4 +- .../mjsunit/regress/wasm/regress-1145135.js | 4 +- .../mjsunit/regress/wasm/regress-1146861.js | 4 +- .../mjsunit/regress/wasm/regress-1153442.js | 4 +- .../mjsunit/regress/wasm/regress-1161654.js | 2 +- .../mjsunit/regress/wasm/regress-1179182.js | 2 +- .../mjsunit/regress/wasm/regress-1184964.js | 11 + .../mjsunit/regress/wasm/regress-1185464.js | 38 + .../mjsunit/regress/wasm/regress-1187831.js | 30 + .../mjsunit/regress/wasm/regress-1188825.js | 28 + .../mjsunit/regress/wasm/regress-1188975.js | 21 + .../mjsunit/regress/wasm/regress-1189454.js | 218 ++ .../mjsunit/regress/wasm/regress-1197393.js | 35 + .../mjsunit/regress/wasm/regress-1201340.js | 13 + .../test/mjsunit/regress/wasm/regress-5800.js | 4 +- .../test/mjsunit/regress/wasm/regress-7353.js | 2 +- .../test/mjsunit/regress/wasm/regress-7366.js | 2 +- .../mjsunit/regress/wasm/regress-782280.js | 2 +- .../mjsunit/regress/wasm/regress-791810.js | 4 +- .../mjsunit/regress/wasm/regress-793551.js | 2 +- .../mjsunit/regress/wasm/regress-842501.js | 2 +- .../test/mjsunit/regress/wasm/regress-8533.js | 2 +- .../mjsunit/regress/wasm/regress-854050.js | 4 +- .../mjsunit/regress/wasm/regress-905815.js | 2 +- .../mjsunit/regress/wasm/regress-913804.js | 4 +- .../mjsunit/regress/wasm/regress-917412.js | 2 +- .../mjsunit/regress/wasm/regress-917588b.js | 4 +- .../mjsunit/regress/wasm/regress-919533.js | 2 +- .../mjsunit/regress/wasm/regress-922933.js | 12 +- .../mjsunit/regress/wasm/regress-924843.js | 4 +- .../mjsunit/regress/wasm/regress-968078.js | 4 +- .../test/mjsunit/regress/wasm/regress-9759.js | 2 +- .../test/mjsunit/regress/wasm/regress-9832.js | 2 +- .../regress/wasm/regress-crbug-1168612.js | 32 + .../mjsunit/regress/wasm/regress1192313.js | 30 + .../mjsunit/shared-function-tier-up-turbo.js | 2 +- deps/v8/test/mjsunit/tools/foozzie.js | 9 + deps/v8/test/mjsunit/wasm/atomics-stress.js | 2 +- deps/v8/test/mjsunit/wasm/atomics.js | 4 +- deps/v8/test/mjsunit/wasm/atomics64-stress.js | 2 +- .../mjsunit/wasm/compare-exchange-stress.js | 10 +- .../mjsunit/wasm/compare-exchange64-stress.js | 10 +- ...compilation-hints-streaming-compilation.js | 4 +- .../wasm/compiled-module-serialization.js | 14 +- .../test/mjsunit/wasm/exceptions-rethrow.js | 14 +- .../v8/test/mjsunit/wasm/exceptions-shared.js | 8 +- deps/v8/test/mjsunit/wasm/exceptions-simd.js | 2 +- deps/v8/test/mjsunit/wasm/exceptions.js | 119 +- deps/v8/test/mjsunit/wasm/externref.js | 25 + deps/v8/test/mjsunit/wasm/globals.js | 2 +- .../mjsunit/wasm/grow-memory-in-branch.js | 16 +- .../test/mjsunit/wasm/grow-memory-in-call.js | 16 +- .../test/mjsunit/wasm/grow-memory-in-loop.js | 16 +- deps/v8/test/mjsunit/wasm/loop-rotation.js | 6 +- deps/v8/test/mjsunit/wasm/loop-unrolling.js | 49 +- deps/v8/test/mjsunit/wasm/memory64.js | 25 + deps/v8/test/mjsunit/wasm/module-memory.js | 6 +- .../test/mjsunit/wasm/multiple-code-spaces.js | 2 +- deps/v8/test/mjsunit/wasm/reference-tables.js | 157 +- deps/v8/test/mjsunit/wasm/simd-i64x2-mul.js | 39 + deps/v8/test/mjsunit/wasm/stack.js | 46 +- .../mjsunit/wasm/streaming-error-position.js | 2 +- deps/v8/test/mjsunit/wasm/table-access.js | 1 - deps/v8/test/mjsunit/wasm/trap-location.js | 4 +- .../mjsunit/wasm/unreachable-validation.js | 14 +- .../test/mjsunit/wasm/wasm-gc-js-roundtrip.js | 149 + .../test/mjsunit/wasm/wasm-module-builder.js | 433 ++- deps/v8/test/mkgrokdump/BUILD.gn | 1 - deps/v8/test/test262/test262.status | 17 +- deps/v8/test/test262/testcfg.py | 3 - deps/v8/test/unittests/BUILD.gn | 59 +- .../unittests/api/access-check-unittest.cc | 1 + .../test/unittests/base/logging-unittest.cc | 25 +- deps/v8/test/unittests/base/vlq-unittest.cc | 123 + .../aligned-slot-allocator-unittest.cc | 175 ++ .../codegen/code-stub-assembler-unittest.cc | 1 - .../instruction-selector-arm64-unittest.cc | 266 +- .../backend/instruction-selector-unittest.cc | 2 +- .../backend/instruction-selector-unittest.h | 6 +- .../backend/instruction-sequence-unittest.cc | 2 +- .../compiler/bytecode-analysis-unittest.cc | 4 +- .../compiler/csa-load-elimination-unittest.cc | 155 + .../test/unittests/compiler/frame-unittest.cc | 242 ++ .../instruction-selector-ia32-unittest.cc | 44 + .../compiler/int64-lowering-unittest.cc | 110 +- .../compiler/linkage-tail-call-unittest.cc | 16 +- .../compiler/machine-operator-unittest.cc | 2 + .../unittests/compiler/node-test-utils.cc | 105 +- .../test/unittests/compiler/node-test-utils.h | 11 + .../x64/instruction-selector-x64-unittest.cc | 288 ++ .../execution/microtask-queue-unittest.cc | 1 + .../heap/cppgc/compactor-unittest.cc | 12 - .../heap/cppgc/concurrent-marking-unittest.cc | 11 +- .../heap/cppgc/concurrent-sweeper-unittest.cc | 2 +- .../heap/cppgc/ephemeron-pair-unittest.cc | 73 +- .../cppgc/explicit-management-unittest.cc | 194 ++ .../heap/cppgc/free-list-unittest.cc | 2 +- .../unittests/heap/cppgc/gc-info-unittest.cc | 184 +- .../heap/cppgc/heap-object-header-unittest.cc | 8 + .../heap/cppgc/heap-page-unittest.cc | 8 +- .../unittests/heap/cppgc/marker-unittest.cc | 79 +- .../heap/cppgc/marking-verifier-unittest.cc | 60 +- .../heap/cppgc/persistent-family-unittest.cc | 16 +- .../heap/cppgc/stats-collector-unittest.cc | 8 + .../unittests/heap/cppgc/sweeper-unittest.cc | 4 +- .../unittests/heap/cppgc/testing-unittest.cc | 8 + deps/v8/test/unittests/heap/cppgc/tests.h | 2 +- .../heap/gc-idle-time-handler-unittest.cc | 76 - .../heap/item-parallel-job-unittest.cc | 306 -- .../unittests/heap/local-heap-unittest.cc | 7 +- .../heap/unified-heap-snapshot-unittest.cc | 9 +- .../unittests/heap/unified-heap-unittest.cc | 38 + .../bytecode-array-builder-unittest.cc | 6 +- .../bytecode-array-iterator-unittest.cc | 4 +- .../interpreter-assembler-unittest.cc | 138 +- .../interpreter-assembler-unittest.h | 3 +- .../unittests/numbers/conversions-unittest.cc | 5 +- .../test/unittests/objects/object-unittest.cc | 6 +- .../objects/value-serializer-unittest.cc | 33 +- ...test.cc => wasm-backing-store-unittest.cc} | 3 +- .../wasm/function-body-decoder-unittest.cc | 109 +- .../wasm/liftoff-register-unittests.cc | 41 + .../wasm/module-decoder-memory64-unittest.cc | 1 + .../unittests/wasm/module-decoder-unittest.cc | 77 +- .../unittests/wasm/wasm-compiler-unittest.cc | 44 +- deps/v8/test/wasm-api-tests/BUILD.gn | 6 +- .../test/wasm-api-tests/wasm-api-tests.status | 6 +- deps/v8/test/wasm-js/testcfg.py | 11 - deps/v8/test/wasm-js/tests.tar.gz.sha1 | 2 +- deps/v8/test/wasm-js/wasm-js.status | 15 +- deps/v8/test/wasm-spec-tests/testcfg.py | 12 +- .../v8/test/wasm-spec-tests/tests.tar.gz.sha1 | 2 +- .../wasm-spec-tests/wasm-spec-tests.status | 16 +- deps/v8/third_party/v8/builtins/array-sort.tq | 4 +- deps/v8/third_party/zlib/google/zip_reader.cc | 2 +- deps/v8/tools/arguments.mjs | 6 +- deps/v8/tools/bash-completion.sh | 113 +- deps/v8/tools/callstats.html | 1126 ++++--- .../tools/clusterfuzz/js_fuzzer/exceptions.js | 1 + .../mutators/function_call_mutator.js | 26 +- .../resources/differential_fuzz_v8.js | 2 + .../test/test_mutate_function_calls.js | 16 +- .../mutate_function_call_baseline_expected.js | 16 + .../clusterfuzz/v8_foozzie_harness_adjust.js | 4 + deps/v8/tools/clusterfuzz/v8_fuzz_flags.json | 3 +- deps/v8/tools/debug_helper/BUILD.gn | 1 + .../debug_helper/debug-helper-internal.cc | 2 +- .../debug_helper/get-object-properties.cc | 104 +- deps/v8/tools/dev/gm.py | 100 +- deps/v8/tools/dumpcpp.mjs | 4 +- deps/v8/tools/find-builtin | 24 + deps/v8/tools/gcmole/gcmole.py | 3 +- deps/v8/tools/ic-processor-driver.mjs | 8 +- deps/v8/tools/index.html | 13 +- deps/v8/tools/ninja/ninja_output.py | 44 - deps/v8/tools/profview/profile-utils.js | 6 +- deps/v8/tools/profview/profview.js | 4 + deps/v8/tools/release/auto_roll.py | 3 +- deps/v8/tools/release/git_recipes.py | 7 +- deps/v8/tools/release/test_scripts.py | 4 +- deps/v8/tools/system-analyzer/index.css | 2 +- deps/v8/tools/testrunner/base_runner.py | 9 - .../v8/tools/testrunner/local/junit_output.py | 49 - deps/v8/tools/testrunner/local/variants.py | 47 +- deps/v8/tools/testrunner/testproc/progress.py | 40 - deps/v8/tools/tickprocessor.mjs | 2 +- deps/v8/tools/v8heapconst.py | 418 +-- deps/v8/tools/v8windbg/BUILD.gn | 2 + deps/v8/tools/v8windbg/README.md | 4 + deps/v8/tools/v8windbg/src/cur-isolate.h | 2 +- deps/v8/tools/v8windbg/src/js-stack.cc | 229 ++ deps/v8/tools/v8windbg/src/js-stack.h | 98 + .../tools/v8windbg/src/v8windbg-extension.cc | 4 + deps/v8/tools/v8windbg/test/v8windbg-test.cc | 26 +- deps/v8/tools/vim/ninja-build.vim | 14 +- deps/v8/tools/vim/ninja_output.py | 72 + deps/v8/tools/wasm/update-wasm-spec-tests.sh | 2 +- deps/v8/tools/whitespace.txt | 4 +- 1300 files changed, 52028 insertions(+), 25942 deletions(-) create mode 100644 deps/v8/gni/v8.cmx create mode 100644 deps/v8/include/cppgc/explicit-management.h create mode 100644 deps/v8/src/base/immediate-crash.h create mode 100644 deps/v8/src/base/vlq.h create mode 100644 deps/v8/src/baseline/arm/baseline-assembler-arm-inl.h create mode 100644 deps/v8/src/baseline/arm/baseline-compiler-arm-inl.h create mode 100644 deps/v8/src/baseline/bytecode-offset-iterator.cc create mode 100644 deps/v8/src/baseline/bytecode-offset-iterator.h create mode 100644 deps/v8/src/baseline/ia32/baseline-assembler-ia32-inl.h create mode 100644 deps/v8/src/baseline/ia32/baseline-compiler-ia32-inl.h create mode 100644 deps/v8/src/bigint/DEPS create mode 100644 deps/v8/src/bigint/OWNERS create mode 100644 deps/v8/src/bigint/bigint.h create mode 100644 deps/v8/src/bigint/vector-arithmetic.cc create mode 100644 deps/v8/src/codegen/aligned-slot-allocator.cc create mode 100644 deps/v8/src/codegen/aligned-slot-allocator.h delete mode 100644 deps/v8/src/codegen/register.cc create mode 100644 deps/v8/src/codegen/shared-ia32-x64/macro-assembler-shared-ia32-x64.cc create mode 100644 deps/v8/src/codegen/shared-ia32-x64/macro-assembler-shared-ia32-x64.h create mode 100644 deps/v8/src/compiler/loop-unrolling.cc create mode 100644 deps/v8/src/compiler/loop-unrolling.h create mode 100644 deps/v8/src/d8/d8-test.cc create mode 100644 deps/v8/src/diagnostics/system-jit-metadata-win.h create mode 100644 deps/v8/src/diagnostics/system-jit-win.cc create mode 100644 deps/v8/src/diagnostics/system-jit-win.h create mode 100644 deps/v8/src/heap/cppgc/explicit-management.cc create mode 100644 deps/v8/src/heap/cppgc/object-poisoner.h delete mode 100644 deps/v8/src/heap/item-parallel-job.cc delete mode 100644 deps/v8/src/heap/item-parallel-job.h delete mode 100644 deps/v8/src/interpreter/bytecode-array-accessor.cc delete mode 100644 deps/v8/src/interpreter/bytecode-array-accessor.h create mode 100644 deps/v8/src/objects/swiss-hash-table-helpers.tq create mode 100644 deps/v8/src/profiler/weak-code-registry.cc create mode 100644 deps/v8/src/profiler/weak-code-registry.h create mode 100644 deps/v8/src/runtime/runtime-test-wasm.cc create mode 100644 deps/v8/src/snapshot/embedded/embedded-file-writer-interface.h create mode 100644 deps/v8/src/web-snapshot/OWNERS create mode 100644 deps/v8/src/web-snapshot/web-snapshot.cc create mode 100644 deps/v8/src/web-snapshot/web-snapshot.h create mode 100644 deps/v8/test/cctest/test-swiss-name-dictionary-csa.cc create mode 100644 deps/v8/test/cctest/test-swiss-name-dictionary-infra.cc create mode 100644 deps/v8/test/cctest/test-swiss-name-dictionary-infra.h create mode 100644 deps/v8/test/cctest/test-swiss-name-dictionary-shared-tests.h create mode 100644 deps/v8/test/cctest/test-web-snapshots.cc rename deps/v8/test/cctest/{ => wasm}/test-backing-store.cc (96%) create mode 100644 deps/v8/test/cctest/wasm/test-run-wasm-relaxed-simd.cc create mode 100644 deps/v8/test/cctest/wasm/wasm-simd-utils.cc create mode 100644 deps/v8/test/cctest/wasm/wasm-simd-utils.h create mode 100644 deps/v8/test/debugger/regress/regress-crbug-1199681.js create mode 100644 deps/v8/test/fuzzer/wasm/regress-1191853.wasm create mode 100644 deps/v8/test/inspector/debugger/get-possible-breakpoints-after-gc-expected.txt create mode 100644 deps/v8/test/inspector/debugger/get-possible-breakpoints-after-gc.js create mode 100644 deps/v8/test/inspector/debugger/regress-1190290-expected.txt create mode 100644 deps/v8/test/inspector/debugger/regress-1190290.js create mode 100644 deps/v8/test/inspector/debugger/regression-1185540-expected.txt create mode 100644 deps/v8/test/inspector/debugger/regression-1185540.js create mode 100644 deps/v8/test/inspector/debugger/set-breakpoint-in-class-initializer-expected.txt create mode 100644 deps/v8/test/inspector/debugger/set-breakpoint-in-class-initializer.js create mode 100644 deps/v8/test/inspector/debugger/set-breakpoint-inline-function-expected.txt create mode 100644 deps/v8/test/inspector/debugger/set-breakpoint-inline-function.js create mode 100644 deps/v8/test/inspector/debugger/wasm-gc-breakpoints-expected.txt create mode 100644 deps/v8/test/inspector/debugger/wasm-gc-breakpoints.js create mode 100644 deps/v8/test/inspector/debugger/wasm-gc-in-debug-break-expected.txt create mode 100644 deps/v8/test/inspector/debugger/wasm-gc-in-debug-break.js create mode 100644 deps/v8/test/inspector/regress/regress-crbug-1183664-expected.txt create mode 100644 deps/v8/test/inspector/regress/regress-crbug-1183664.js create mode 100644 deps/v8/test/inspector/regress/regress-crbug-1199919-expected.txt create mode 100644 deps/v8/test/inspector/regress/regress-crbug-1199919.js create mode 100644 deps/v8/test/intl/displaynames/getoptionsobject.js create mode 100644 deps/v8/test/intl/list-format/getoptionsobject.js create mode 100644 deps/v8/test/intl/regress-11595.js create mode 100644 deps/v8/test/intl/segmenter/getoptionsobject.js create mode 100644 deps/v8/test/mjsunit/baseline/verify-bytecode-offsets.js create mode 100644 deps/v8/test/mjsunit/compiler/fast-api-calls.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-1215514.js delete mode 100644 deps/v8/test/mjsunit/promise-hooks.js create mode 100644 deps/v8/test/mjsunit/proto-accessor-not-accessible.js rename deps/v8/test/mjsunit/regress/{ => asm}/regress-673297.js (100%) rename deps/v8/test/mjsunit/regress/{ => asm}/regress-743622.js (100%) create mode 100644 deps/v8/test/mjsunit/regress/regress-1146880.js create mode 100644 deps/v8/test/mjsunit/regress/regress-11491.js create mode 100644 deps/v8/test/mjsunit/regress/regress-11519.js create mode 100644 deps/v8/test/mjsunit/regress/regress-1181240.js create mode 100644 deps/v8/test/mjsunit/regress/regress-1185072.js create mode 100644 deps/v8/test/mjsunit/regress/regress-1187170.js create mode 100644 deps/v8/test/mjsunit/regress/regress-1193903.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-673241.js create mode 100644 deps/v8/test/mjsunit/regress/regress-chromium-1194026.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-1161847-3.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-1191886.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/condition-change-during-branch-elimination.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-1184964.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-1185464.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-1187831.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-1188825.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-1188975.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-1189454.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-1197393.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-1201340.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-crbug-1168612.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress1192313.js create mode 100644 deps/v8/test/mjsunit/wasm/simd-i64x2-mul.js create mode 100644 deps/v8/test/mjsunit/wasm/wasm-gc-js-roundtrip.js create mode 100644 deps/v8/test/unittests/base/vlq-unittest.cc create mode 100644 deps/v8/test/unittests/codegen/aligned-slot-allocator-unittest.cc create mode 100644 deps/v8/test/unittests/compiler/csa-load-elimination-unittest.cc create mode 100644 deps/v8/test/unittests/compiler/frame-unittest.cc create mode 100644 deps/v8/test/unittests/heap/cppgc/explicit-management-unittest.cc delete mode 100644 deps/v8/test/unittests/heap/item-parallel-job-unittest.cc rename deps/v8/test/unittests/objects/{backing-store-unittest.cc => wasm-backing-store-unittest.cc} (99%) create mode 100644 deps/v8/test/unittests/wasm/liftoff-register-unittests.cc create mode 100644 deps/v8/tools/clusterfuzz/js_fuzzer/test_data/mutate_function_call_baseline_expected.js create mode 100755 deps/v8/tools/find-builtin delete mode 100644 deps/v8/tools/ninja/ninja_output.py delete mode 100644 deps/v8/tools/testrunner/local/junit_output.py create mode 100644 deps/v8/tools/v8windbg/src/js-stack.cc create mode 100644 deps/v8/tools/v8windbg/src/js-stack.h create mode 100644 deps/v8/tools/vim/ninja_output.py diff --git a/deps/v8/AUTHORS b/deps/v8/AUTHORS index a27cf5ef0a1074..07644af9d18c8a 100644 --- a/deps/v8/AUTHORS +++ b/deps/v8/AUTHORS @@ -90,6 +90,7 @@ David Manouchehri Deepak Mohan Deon Dior Derek Tu +Dominic Chen Dominic Farolini Douglas Crosher Dusan Milosavljevic @@ -168,6 +169,7 @@ Milton Chiang Mu Tao Myeong-bo Shim Nicolas Antonius Ernst Leopold Maria Kaiser +Niek van der Maas Niklas Hambüchen Noj Vek Oleksandr Chekhovskyi @@ -209,7 +211,6 @@ Seo Sanghyeon Shawn Anastasio Shawn Presser Stefan Penner -Stephen Belanger Sylvestre Ledru Taketoshi Aono Tao Liqiang @@ -237,6 +238,7 @@ Yi Wang Yong Wang Youfeng Hao Yu Yin +Yusif Khudhur Zac Hansen Zeynep Cankara Zhao Jiazhong diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn index a9ab6783fa6b04..d2bfb6129dcf2b 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 = false + v8_enable_system_instrumentation = true # Sets the GUID for the ETW provider v8_etw_guid = "" @@ -108,6 +108,7 @@ declare_args() { # Enable pointer compression (sets -dV8_COMPRESS_POINTERS). v8_enable_pointer_compression = "" + v8_enable_pointer_compression_shared_cage = "" v8_enable_31bit_smis_on_64bit_arch = false # Sets -dOBJECT_PRINT. @@ -168,6 +169,10 @@ declare_args() { # Enables various testing features. v8_enable_test_features = "" + # Enable short builtins call instruction sequences by un-embedding builtins. + # Sets -dV8_SHORT_BUILTIN_CALLS + v8_enable_short_builtin_calls = "" + # With post mortem support enabled, metadata is embedded into libv8 that # describes various parameters of the VM for use by debuggers. See # tools/gen-postmortem-metadata.py for details. @@ -251,6 +256,9 @@ declare_args() { # file generation v8_verify_torque_generation_invariance = false + # Generate comments describing the Torque intermediate representation. + v8_annotate_torque_ir = false + # Disable all snapshot compression. v8_enable_snapshot_compression = true @@ -279,9 +287,9 @@ declare_args() { # Requires use_rtti = true v8_enable_precise_zone_stats = false - # Experimental feature for always keeping prototypes in dict/"slow" mode - # Sets -DV8_DICT_MODE_PROTOTYPES - v8_dict_mode_prototypes = false + # Experimental feature that uses SwissNameDictionary instead of NameDictionary + # as the backing store for all dictionary mode objects. + v8_enable_swiss_name_dictionary = false # If enabled then macro definitions that are used in externally visible # header files are placed in a separate header file v8-gn.h. @@ -324,6 +332,9 @@ if (v8_enable_pointer_compression == "") { 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 +} if (v8_enable_fast_torque == "") { v8_enable_fast_torque = v8_enable_fast_mksnapshot } @@ -333,6 +344,10 @@ if (v8_enable_zone_compression == "") { if (v8_enable_heap_sandbox == "") { v8_enable_heap_sandbox = false } +if (v8_enable_short_builtin_calls == "") { + v8_enable_short_builtin_calls = + v8_current_cpu == "x64" || (!is_android && v8_current_cpu == "arm64") +} if (v8_enable_single_generation == "") { v8_enable_single_generation = v8_disable_write_barriers } @@ -362,6 +377,13 @@ if (v8_multi_arch_build && rebase_path(get_label_info(":d8", "root_out_dir"), root_build_dir) == "clang_x64_pointer_compression") { v8_enable_pointer_compression = !v8_enable_pointer_compression + v8_enable_pointer_compression_shared_cage = v8_enable_pointer_compression +} +if (v8_enable_short_builtin_calls && + (!v8_enable_pointer_compression || v8_control_flow_integrity)) { + # Disable short calls when pointer compression is not enabled. + # Or when CFI is enabled (until the CFI-related issues are fixed). + v8_enable_short_builtin_calls = false } if (v8_enable_shared_ro_heap == "") { v8_enable_shared_ro_heap = !v8_enable_pointer_compression @@ -382,12 +404,20 @@ if (v8_enable_shared_ro_heap && v8_enable_pointer_compression) { "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_use_multi_snapshots || !v8_control_flow_integrity, "Control-flow integrity does not support multisnapshots") assert(!v8_enable_heap_sandbox || v8_enable_pointer_compression, "V8 Heap Sandbox requires pointer compression") +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_unconditional_write_barriers || !v8_disable_write_barriers, "Write barriers can't be both enabled and disabled") @@ -489,11 +519,6 @@ config("cppgc_base_config") { } } -# This config should be applied to code using the libsampler. -config("libsampler_config") { - include_dirs = [ "include" ] -} - # This config is only applied to v8_headers and is the basis for external_config # but without setting the USING_V8_SHARED define, which means v8_headers can be # used inside v8 itself. @@ -532,6 +557,8 @@ config("external_startup_data") { external_v8_defines = [ "V8_ENABLE_CHECKS", "V8_COMPRESS_POINTERS", + "V8_COMPRESS_POINTERS_IN_SHARED_CAGE", + "V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE", "V8_31BIT_SMIS_ON_64BIT_ARCH", "V8_COMPRESS_ZONES", "V8_HEAP_SANDBOX", @@ -549,6 +576,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 || v8_enable_31bit_smis_on_64bit_arch) { enabled_external_v8_defines += [ "V8_31BIT_SMIS_ON_64BIT_ARCH" ] } @@ -757,8 +789,11 @@ config("features") { if (v8_fuzzilli) { defines += [ "V8_FUZZILLI" ] } - if (v8_dict_mode_prototypes) { - defines += [ "V8_DICT_MODE_PROTOTYPES" ] + if (v8_enable_short_builtin_calls) { + defines += [ "V8_SHORT_BUILTIN_CALLS" ] + } + if (v8_enable_swiss_name_dictionary) { + defines += [ "V8_ENABLE_SWISS_NAME_DICTIONARY" ] } if (v8_enable_system_instrumentation) { defines += [ "V8_ENABLE_SYSTEM_INSTRUMENTATION" ] @@ -1363,9 +1398,7 @@ torque_files = [ "src/builtins/typed-array-subarray.tq", "src/builtins/typed-array-values.tq", "src/builtins/typed-array.tq", - "src/builtins/wasm.tq", "src/builtins/weak-ref.tq", - "src/debug/debug-wasm-objects.tq", "src/ic/handler-configuration.tq", "src/objects/allocation-site.tq", "src/objects/api-callbacks.tq", @@ -1418,12 +1451,12 @@ torque_files = [ "src/objects/stack-frame-info.tq", "src/objects/string.tq", "src/objects/struct.tq", + "src/objects/swiss-hash-table-helpers.tq", "src/objects/swiss-name-dictionary.tq", "src/objects/synthetic-module.tq", "src/objects/template-objects.tq", "src/objects/templates.tq", "src/objects/torque-defined-classes.tq", - "src/wasm/wasm-objects.tq", "test/torque/test-torque.tq", "third_party/v8/builtins/array-sort.tq", ] @@ -1446,6 +1479,14 @@ if (v8_enable_i18n_support) { ] } +if (v8_enable_webassembly) { + torque_files += [ + "src/builtins/wasm.tq", + "src/debug/debug-wasm-objects.tq", + "src/wasm/wasm-objects.tq", + ] +} + # Template for running torque # When building with v8_verify_torque_generation_invariance=true we need # to be able to run torque for both 32 and 64 bits in the same build @@ -1524,6 +1565,9 @@ template("run_torque") { "-v8-root", rebase_path(".", root_build_dir), ] + if (v8_annotate_torque_ir) { + args += [ "-annotate-ir" ] + } if (defined(invoker.args)) { args += invoker.args } @@ -1568,23 +1612,34 @@ group("v8_maybe_icu") { } } +v8_header_set("torque_runtime_support") { + visibility = [ ":*" ] + + sources = [ "src/torque/runtime-support.h" ] + + configs = [ ":internal_config" ] +} + v8_source_set("torque_generated_initializers") { visibility = [ ":*" ] # Only targets in this file can depend on this. deps = [ ":generate_bytecode_builtins_list", ":run_torque", + ":v8_base_without_compiler", ":v8_tracing", ] - public_deps = [ ":v8_maybe_icu" ] + public_deps = [ + ":torque_runtime_support", + ":v8_maybe_icu", + ] sources = [ "$target_gen_dir/torque-generated/csa-types.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", - "src/torque/runtime-support.h", ] foreach(file, torque_files) { filetq = string_replace(file, ".tq", "-tq") @@ -1603,6 +1658,8 @@ v8_source_set("torque_generated_definitions") { deps = [ ":generate_bytecode_builtins_list", ":run_torque", + ":v8_internal_headers", + ":v8_libbase", ":v8_tracing", ] @@ -1914,6 +1971,8 @@ v8_source_set("v8_initializers") { "test/cctest:*", ] + allow_circular_includes_from = [ ":torque_generated_initializers" ] + deps = [ ":torque_generated_initializers", ":v8_base_without_compiler", @@ -1968,8 +2027,6 @@ v8_source_set("v8_initializers") { "src/builtins/builtins-typed-array-gen.cc", "src/builtins/builtins-typed-array-gen.h", "src/builtins/builtins-utils-gen.h", - "src/builtins/builtins-wasm-gen.cc", - "src/builtins/builtins-wasm-gen.h", "src/builtins/growable-fixed-array-gen.cc", "src/builtins/growable-fixed-array-gen.h", "src/builtins/profile-data-reader.cc", @@ -1995,6 +2052,13 @@ v8_source_set("v8_initializers") { "src/interpreter/interpreter-intrinsics-generator.h", ] + if (v8_enable_webassembly) { + sources += [ + "src/builtins/builtins-wasm-gen.cc", + "src/builtins/builtins-wasm-gen.h", + ] + } + if (v8_current_cpu == "x86") { sources += [ ### gcmole(arch:ia32) ### @@ -2126,7 +2190,10 @@ v8_header_set("v8_headers") { public_deps = [ ":v8_config_headers" ] - deps = [ ":v8_version" ] + deps = [ + ":cppgc_headers", + ":v8_version", + ] } if (v8_generate_external_defines_header) { @@ -2155,12 +2222,6 @@ if (v8_generate_external_defines_header) { } } -v8_header_set("v8_wrappers") { - configs = [ ":internal_config" ] - - sources = [ "src/base/platform/wrappers.h" ] -} - # This is split out to share basic headers with Torque and everything else:( v8_header_set("v8_shared_internal_headers") { visibility = [ @@ -2171,7 +2232,11 @@ v8_header_set("v8_shared_internal_headers") { ] configs = [ ":internal_config" ] - sources = [ "src/common/globals.h" ] + sources = [ + "src/common/globals.h", + "src/wasm/wasm-constants.h", + "src/wasm/wasm-limits.h", + ] deps = [ ":v8_headers", @@ -2179,333 +2244,26 @@ v8_header_set("v8_shared_internal_headers") { ] } -v8_compiler_sources = [ - ### gcmole(all) ### - "src/builtins/profile-data-reader.h", - "src/compiler/access-builder.cc", - "src/compiler/access-builder.h", - "src/compiler/access-info.cc", - "src/compiler/access-info.h", - "src/compiler/add-type-assertions-reducer.cc", - "src/compiler/add-type-assertions-reducer.h", - "src/compiler/all-nodes.cc", - "src/compiler/all-nodes.h", - "src/compiler/allocation-builder-inl.h", - "src/compiler/allocation-builder.h", - "src/compiler/backend/code-generator-impl.h", - "src/compiler/backend/code-generator.cc", - "src/compiler/backend/code-generator.h", - "src/compiler/backend/frame-elider.cc", - "src/compiler/backend/frame-elider.h", - "src/compiler/backend/gap-resolver.cc", - "src/compiler/backend/gap-resolver.h", - "src/compiler/backend/instruction-codes.h", - "src/compiler/backend/instruction-scheduler.cc", - "src/compiler/backend/instruction-scheduler.h", - "src/compiler/backend/instruction-selector-impl.h", - "src/compiler/backend/instruction-selector.cc", - "src/compiler/backend/instruction-selector.h", - "src/compiler/backend/instruction.cc", - "src/compiler/backend/instruction.h", - "src/compiler/backend/jump-threading.cc", - "src/compiler/backend/jump-threading.h", - "src/compiler/backend/mid-tier-register-allocator.cc", - "src/compiler/backend/mid-tier-register-allocator.h", - "src/compiler/backend/move-optimizer.cc", - "src/compiler/backend/move-optimizer.h", - "src/compiler/backend/register-allocation.h", - "src/compiler/backend/register-allocator-verifier.cc", - "src/compiler/backend/register-allocator-verifier.h", - "src/compiler/backend/register-allocator.cc", - "src/compiler/backend/register-allocator.h", - "src/compiler/backend/spill-placer.cc", - "src/compiler/backend/spill-placer.h", - "src/compiler/backend/unwinding-info-writer.h", - "src/compiler/basic-block-instrumentor.cc", - "src/compiler/basic-block-instrumentor.h", - "src/compiler/branch-elimination.cc", - "src/compiler/branch-elimination.h", - "src/compiler/bytecode-analysis.cc", - "src/compiler/bytecode-analysis.h", - "src/compiler/bytecode-graph-builder.cc", - "src/compiler/bytecode-graph-builder.h", - "src/compiler/bytecode-liveness-map.cc", - "src/compiler/bytecode-liveness-map.h", - "src/compiler/c-linkage.cc", - "src/compiler/checkpoint-elimination.cc", - "src/compiler/checkpoint-elimination.h", - "src/compiler/code-assembler.cc", - "src/compiler/code-assembler.h", - "src/compiler/common-node-cache.cc", - "src/compiler/common-node-cache.h", - "src/compiler/common-operator-reducer.cc", - "src/compiler/common-operator-reducer.h", - "src/compiler/common-operator.cc", - "src/compiler/common-operator.h", - "src/compiler/compilation-dependencies.cc", - "src/compiler/compilation-dependencies.h", - "src/compiler/compiler-source-position-table.cc", - "src/compiler/compiler-source-position-table.h", - "src/compiler/constant-folding-reducer.cc", - "src/compiler/constant-folding-reducer.h", - "src/compiler/control-equivalence.cc", - "src/compiler/control-equivalence.h", - "src/compiler/control-flow-optimizer.cc", - "src/compiler/control-flow-optimizer.h", - "src/compiler/csa-load-elimination.cc", - "src/compiler/csa-load-elimination.h", - "src/compiler/dead-code-elimination.cc", - "src/compiler/dead-code-elimination.h", - "src/compiler/decompression-optimizer.cc", - "src/compiler/decompression-optimizer.h", - "src/compiler/diamond.h", - "src/compiler/effect-control-linearizer.cc", - "src/compiler/effect-control-linearizer.h", - "src/compiler/escape-analysis-reducer.cc", - "src/compiler/escape-analysis-reducer.h", - "src/compiler/escape-analysis.cc", - "src/compiler/escape-analysis.h", - "src/compiler/feedback-source.cc", - "src/compiler/feedback-source.h", - "src/compiler/frame-states.cc", - "src/compiler/frame-states.h", - "src/compiler/frame.cc", - "src/compiler/frame.h", - "src/compiler/functional-list.h", - "src/compiler/globals.h", - "src/compiler/graph-assembler.cc", - "src/compiler/graph-assembler.h", - "src/compiler/graph-reducer.cc", - "src/compiler/graph-reducer.h", - "src/compiler/graph-trimmer.cc", - "src/compiler/graph-trimmer.h", - "src/compiler/graph-visualizer.cc", - "src/compiler/graph-visualizer.h", - "src/compiler/graph-zone-traits.h", - "src/compiler/graph.cc", - "src/compiler/graph.h", - "src/compiler/int64-lowering.cc", - "src/compiler/int64-lowering.h", - "src/compiler/js-call-reducer.cc", - "src/compiler/js-call-reducer.h", - "src/compiler/js-context-specialization.cc", - "src/compiler/js-context-specialization.h", - "src/compiler/js-create-lowering.cc", - "src/compiler/js-create-lowering.h", - "src/compiler/js-generic-lowering.cc", - "src/compiler/js-generic-lowering.h", - "src/compiler/js-graph.cc", - "src/compiler/js-graph.h", - "src/compiler/js-heap-broker.cc", - "src/compiler/js-heap-broker.h", - "src/compiler/js-heap-copy-reducer.cc", - "src/compiler/js-heap-copy-reducer.h", - "src/compiler/js-inlining-heuristic.cc", - "src/compiler/js-inlining-heuristic.h", - "src/compiler/js-inlining.cc", - "src/compiler/js-inlining.h", - "src/compiler/js-intrinsic-lowering.cc", - "src/compiler/js-intrinsic-lowering.h", - "src/compiler/js-native-context-specialization.cc", - "src/compiler/js-native-context-specialization.h", - "src/compiler/js-operator.cc", - "src/compiler/js-operator.h", - "src/compiler/js-type-hint-lowering.cc", - "src/compiler/js-type-hint-lowering.h", - "src/compiler/js-typed-lowering.cc", - "src/compiler/js-typed-lowering.h", - "src/compiler/linkage.cc", - "src/compiler/linkage.h", - "src/compiler/load-elimination.cc", - "src/compiler/load-elimination.h", - "src/compiler/loop-analysis.cc", - "src/compiler/loop-analysis.h", - "src/compiler/loop-peeling.cc", - "src/compiler/loop-peeling.h", - "src/compiler/loop-variable-optimizer.cc", - "src/compiler/loop-variable-optimizer.h", - "src/compiler/machine-graph-verifier.cc", - "src/compiler/machine-graph-verifier.h", - "src/compiler/machine-graph.cc", - "src/compiler/machine-graph.h", - "src/compiler/machine-operator-reducer.cc", - "src/compiler/machine-operator-reducer.h", - "src/compiler/machine-operator.cc", - "src/compiler/machine-operator.h", - "src/compiler/map-inference.cc", - "src/compiler/map-inference.h", - "src/compiler/memory-lowering.cc", - "src/compiler/memory-lowering.h", - "src/compiler/memory-optimizer.cc", - "src/compiler/memory-optimizer.h", - "src/compiler/node-aux-data.h", - "src/compiler/node-cache.h", - "src/compiler/node-marker.cc", - "src/compiler/node-marker.h", - "src/compiler/node-matchers.cc", - "src/compiler/node-matchers.h", - "src/compiler/node-observer.cc", - "src/compiler/node-observer.h", - "src/compiler/node-origin-table.cc", - "src/compiler/node-origin-table.h", - "src/compiler/node-properties.cc", - "src/compiler/node-properties.h", - "src/compiler/node.cc", - "src/compiler/node.h", - "src/compiler/opcodes.cc", - "src/compiler/opcodes.h", - "src/compiler/operation-typer.cc", - "src/compiler/operation-typer.h", - "src/compiler/operator-properties.cc", - "src/compiler/operator-properties.h", - "src/compiler/operator.cc", - "src/compiler/operator.h", - "src/compiler/osr.cc", - "src/compiler/osr.h", - "src/compiler/per-isolate-compiler-cache.h", - "src/compiler/persistent-map.h", - "src/compiler/pipeline-statistics.cc", - "src/compiler/pipeline-statistics.h", - "src/compiler/pipeline.cc", - "src/compiler/pipeline.h", - "src/compiler/property-access-builder.cc", - "src/compiler/property-access-builder.h", - "src/compiler/raw-machine-assembler.cc", - "src/compiler/raw-machine-assembler.h", - "src/compiler/redundancy-elimination.cc", - "src/compiler/redundancy-elimination.h", - "src/compiler/refs-map.cc", - "src/compiler/refs-map.h", - "src/compiler/representation-change.cc", - "src/compiler/representation-change.h", - "src/compiler/schedule.cc", - "src/compiler/schedule.h", - "src/compiler/scheduled-machine-lowering.cc", - "src/compiler/scheduled-machine-lowering.h", - "src/compiler/scheduler.cc", - "src/compiler/scheduler.h", - "src/compiler/select-lowering.cc", - "src/compiler/select-lowering.h", - "src/compiler/serializer-for-background-compilation.cc", - "src/compiler/serializer-for-background-compilation.h", - "src/compiler/serializer-hints.h", - "src/compiler/simd-scalar-lowering.cc", - "src/compiler/simd-scalar-lowering.h", - "src/compiler/simplified-lowering.cc", - "src/compiler/simplified-lowering.h", - "src/compiler/simplified-operator-reducer.cc", - "src/compiler/simplified-operator-reducer.h", - "src/compiler/simplified-operator.cc", - "src/compiler/simplified-operator.h", - "src/compiler/state-values-utils.cc", - "src/compiler/state-values-utils.h", - "src/compiler/store-store-elimination.cc", - "src/compiler/store-store-elimination.h", - "src/compiler/type-cache.cc", - "src/compiler/type-cache.h", - "src/compiler/type-narrowing-reducer.cc", - "src/compiler/type-narrowing-reducer.h", - "src/compiler/typed-optimization.cc", - "src/compiler/typed-optimization.h", - "src/compiler/typer.cc", - "src/compiler/typer.h", - "src/compiler/types.cc", - "src/compiler/types.h", - "src/compiler/value-numbering-reducer.cc", - "src/compiler/value-numbering-reducer.h", - "src/compiler/verifier.cc", - "src/compiler/verifier.h", - "src/compiler/wasm-compiler.cc", - "src/compiler/wasm-compiler.h", - "src/compiler/write-barrier-kind.h", - "src/compiler/zone-stats.cc", - "src/compiler/zone-stats.h", -] - -# The src/compiler files with optimizations. -v8_source_set("v8_compiler_opt") { - visibility = [ ":*" ] # Only targets in this file can depend on this. - - sources = v8_compiler_sources +v8_header_set("v8_flags") { + visibility = [ ":*" ] - public_deps = [ - ":generate_bytecode_builtins_list", - ":run_torque", - ":v8_maybe_icu", - ":v8_tracing", - ] + configs = [ ":internal_config" ] - deps = [ - ":v8_base_without_compiler", - ":v8_libbase", - ":v8_shared_internal_headers", + sources = [ + "src/flags/flag-definitions.h", + "src/flags/flags.h", ] - if (is_debug && !v8_optimized_debug && v8_enable_fast_mksnapshot) { - # The :no_optimize config is added to v8_add_configs in v8.gni. - remove_configs = [ "//build/config/compiler:no_optimize" ] - configs = [ ":always_optimize" ] - } else { - # Without this else branch, gn fails to generate build files for non-debug - # builds (because we try to remove a config that is not present). - # So we include it, even if this config is not used outside of debug builds. - configs = [ ":internal_config" ] - } + deps = [ ":v8_shared_internal_headers" ] } -# The src/compiler files with default optimization behavior. -v8_source_set("v8_compiler") { - visibility = [ ":*" ] # Only targets in this file can depend on this. - - sources = v8_compiler_sources - - public_deps = [ - ":generate_bytecode_builtins_list", - ":run_torque", - ":v8_maybe_icu", - ":v8_tracing", - ] - - deps = [ - ":v8_base_without_compiler", - ":v8_libbase", - ":v8_shared_internal_headers", - ] - +v8_header_set("v8_internal_headers") { configs = [ ":internal_config" ] -} - -group("v8_compiler_for_mksnapshot") { - if (is_debug && !v8_optimized_debug && v8_enable_fast_mksnapshot) { - deps = [ ":v8_compiler_opt" ] - } else { - deps = [ ":v8_compiler" ] - } -} - -# Any target using trace events must directly or indirectly depend on -# v8_tracing. -group("v8_tracing") { - if (v8_use_perfetto) { - if (build_with_chromium) { - public_deps = [ "//third_party/perfetto:libperfetto" ] - } else { - public_deps = [ ":v8_libperfetto" ] - } - } -} - -v8_source_set("v8_base_without_compiler") { - visibility = [ ":*" ] # Only targets in this file can depend on this. - - # Split static libraries on windows into two. - split_count = 2 sources = [ - "//base/trace_event/common/trace_event_common.h", - ### gcmole(all) ### "$target_gen_dir/builtins-generated/bytecodes-builtins-list.h", + "//base/trace_event/common/trace_event_common.h", "include/cppgc/common.h", "include/v8-inspector-protocol.h", "include/v8-inspector.h", @@ -2513,147 +2271,77 @@ v8_source_set("v8_base_without_compiler") { "include/v8-unwinder-state.h", "include/v8-wasm-trap-handler-posix.h", "src/api/api-arguments-inl.h", - "src/api/api-arguments.cc", "src/api/api-arguments.h", "src/api/api-inl.h", "src/api/api-macros.h", - "src/api/api-natives.cc", "src/api/api-natives.h", - "src/api/api.cc", "src/api/api.h", - "src/ast/ast-function-literal-id-reindexer.cc", "src/ast/ast-function-literal-id-reindexer.h", "src/ast/ast-source-ranges.h", "src/ast/ast-traversal-visitor.h", - "src/ast/ast-value-factory.cc", "src/ast/ast-value-factory.h", - "src/ast/ast.cc", "src/ast/ast.h", - "src/ast/modules.cc", "src/ast/modules.h", - "src/ast/prettyprinter.cc", "src/ast/prettyprinter.h", - "src/ast/scopes.cc", "src/ast/scopes.h", - "src/ast/source-range-ast-visitor.cc", "src/ast/source-range-ast-visitor.h", - "src/ast/variables.cc", "src/ast/variables.h", "src/baseline/baseline-assembler-inl.h", "src/baseline/baseline-assembler.h", - "src/baseline/baseline-compiler.cc", "src/baseline/baseline-compiler.h", - "src/baseline/baseline.cc", "src/baseline/baseline.h", - "src/builtins/accessors.cc", + "src/baseline/bytecode-offset-iterator.h", "src/builtins/accessors.h", - "src/builtins/builtins-api.cc", - "src/builtins/builtins-array.cc", - "src/builtins/builtins-arraybuffer.cc", - "src/builtins/builtins-async-module.cc", - "src/builtins/builtins-bigint.cc", - "src/builtins/builtins-callsite.cc", - "src/builtins/builtins-collections.cc", - "src/builtins/builtins-console.cc", "src/builtins/builtins-constructor.h", - "src/builtins/builtins-dataview.cc", - "src/builtins/builtins-date.cc", "src/builtins/builtins-definitions.h", "src/builtins/builtins-descriptors.h", - "src/builtins/builtins-error.cc", - "src/builtins/builtins-function.cc", - "src/builtins/builtins-global.cc", - "src/builtins/builtins-internal.cc", - "src/builtins/builtins-intl.cc", - "src/builtins/builtins-json.cc", - "src/builtins/builtins-number.cc", - "src/builtins/builtins-object.cc", "src/builtins/builtins-promise.h", - "src/builtins/builtins-reflect.cc", - "src/builtins/builtins-regexp.cc", - "src/builtins/builtins-sharedarraybuffer.cc", - "src/builtins/builtins-string.cc", - "src/builtins/builtins-symbol.cc", - "src/builtins/builtins-trace.cc", - "src/builtins/builtins-typed-array.cc", "src/builtins/builtins-utils-inl.h", "src/builtins/builtins-utils.h", - "src/builtins/builtins-weak-refs.cc", - "src/builtins/builtins.cc", "src/builtins/builtins.h", - "src/builtins/constants-table-builder.cc", "src/builtins/constants-table-builder.h", "src/builtins/profile-data-reader.h", + "src/codegen/aligned-slot-allocator.h", "src/codegen/assembler-arch.h", "src/codegen/assembler-inl.h", - "src/codegen/assembler.cc", "src/codegen/assembler.h", - "src/codegen/bailout-reason.cc", "src/codegen/bailout-reason.h", "src/codegen/callable.h", - "src/codegen/code-comments.cc", "src/codegen/code-comments.h", - "src/codegen/code-desc.cc", "src/codegen/code-desc.h", - "src/codegen/code-factory.cc", "src/codegen/code-factory.h", - "src/codegen/code-reference.cc", "src/codegen/code-reference.h", - "src/codegen/compilation-cache.cc", "src/codegen/compilation-cache.h", - "src/codegen/compiler.cc", "src/codegen/compiler.h", - "src/codegen/constant-pool.cc", "src/codegen/constant-pool.h", "src/codegen/constants-arch.h", "src/codegen/cpu-features.h", - "src/codegen/external-reference-encoder.cc", "src/codegen/external-reference-encoder.h", - "src/codegen/external-reference-table.cc", "src/codegen/external-reference-table.h", - "src/codegen/external-reference.cc", "src/codegen/external-reference.h", - "src/codegen/flush-instruction-cache.cc", "src/codegen/flush-instruction-cache.h", - "src/codegen/handler-table.cc", "src/codegen/handler-table.h", - "src/codegen/interface-descriptors.cc", "src/codegen/interface-descriptors.h", "src/codegen/label.h", - "src/codegen/machine-type.cc", "src/codegen/machine-type.h", "src/codegen/macro-assembler-inl.h", "src/codegen/macro-assembler.h", - "src/codegen/optimized-compilation-info.cc", "src/codegen/optimized-compilation-info.h", - "src/codegen/pending-optimization-table.cc", "src/codegen/pending-optimization-table.h", "src/codegen/register-arch.h", - "src/codegen/register-configuration.cc", "src/codegen/register-configuration.h", - "src/codegen/register.cc", "src/codegen/register.h", "src/codegen/reglist.h", - "src/codegen/reloc-info.cc", "src/codegen/reloc-info.h", - "src/codegen/safepoint-table.cc", "src/codegen/safepoint-table.h", "src/codegen/signature.h", - "src/codegen/source-position-table.cc", "src/codegen/source-position-table.h", - "src/codegen/source-position.cc", "src/codegen/source-position.h", - "src/codegen/string-constants.cc", "src/codegen/string-constants.h", - "src/codegen/tick-counter.cc", "src/codegen/tick-counter.h", - "src/codegen/tnode.cc", "src/codegen/tnode.h", - "src/codegen/turbo-assembler.cc", "src/codegen/turbo-assembler.h", - "src/codegen/unoptimized-compilation-info.cc", "src/codegen/unoptimized-compilation-info.h", - "src/common/assert-scope.cc", "src/common/assert-scope.h", "src/common/checks.h", "src/common/external-pointer-inl.h", @@ -2661,401 +2349,356 @@ v8_source_set("v8_base_without_compiler") { "src/common/message-template.h", "src/common/ptr-compr-inl.h", "src/common/ptr-compr.h", - "src/compiler-dispatcher/compiler-dispatcher.cc", "src/compiler-dispatcher/compiler-dispatcher.h", - "src/compiler-dispatcher/optimizing-compile-dispatcher.cc", "src/compiler-dispatcher/optimizing-compile-dispatcher.h", - "src/date/date.cc", + "src/compiler/all-nodes.h", + "src/compiler/allocation-builder-inl.h", + "src/compiler/allocation-builder.h", + "src/compiler/backend/code-generator-impl.h", + "src/compiler/backend/code-generator.h", + "src/compiler/backend/frame-elider.h", + "src/compiler/backend/gap-resolver.h", + "src/compiler/backend/instruction-codes.h", + "src/compiler/backend/instruction-scheduler.h", + "src/compiler/backend/instruction-selector-impl.h", + "src/compiler/backend/instruction-selector.h", + "src/compiler/backend/instruction.h", + "src/compiler/backend/jump-threading.h", + "src/compiler/backend/mid-tier-register-allocator.h", + "src/compiler/backend/move-optimizer.h", + "src/compiler/backend/register-allocation.h", + "src/compiler/backend/register-allocator-verifier.h", + "src/compiler/backend/register-allocator.h", + "src/compiler/backend/spill-placer.h", + "src/compiler/backend/unwinding-info-writer.h", + "src/compiler/basic-block-instrumentor.h", + "src/compiler/branch-elimination.h", + "src/compiler/bytecode-analysis.h", + "src/compiler/bytecode-graph-builder.h", + "src/compiler/bytecode-liveness-map.h", + "src/compiler/checkpoint-elimination.h", + "src/compiler/code-assembler.h", + "src/compiler/common-node-cache.h", + "src/compiler/common-operator-reducer.h", + "src/compiler/common-operator.h", + "src/compiler/compilation-dependencies.h", + "src/compiler/compiler-source-position-table.h", + "src/compiler/constant-folding-reducer.h", + "src/compiler/control-equivalence.h", + "src/compiler/control-flow-optimizer.h", + "src/compiler/csa-load-elimination.h", + "src/compiler/dead-code-elimination.h", + "src/compiler/decompression-optimizer.h", + "src/compiler/diamond.h", + "src/compiler/effect-control-linearizer.h", + "src/compiler/escape-analysis-reducer.h", + "src/compiler/escape-analysis.h", + "src/compiler/feedback-source.h", + "src/compiler/frame-states.h", + "src/compiler/frame.h", + "src/compiler/functional-list.h", + "src/compiler/globals.h", + "src/compiler/graph-assembler.h", + "src/compiler/graph-reducer.h", + "src/compiler/graph-trimmer.h", + "src/compiler/graph-visualizer.h", + "src/compiler/graph-zone-traits.h", + "src/compiler/graph.h", + "src/compiler/js-call-reducer.h", + "src/compiler/js-context-specialization.h", + "src/compiler/js-create-lowering.h", + "src/compiler/js-generic-lowering.h", + "src/compiler/js-graph.h", + "src/compiler/js-heap-broker.h", + "src/compiler/js-heap-copy-reducer.h", + "src/compiler/js-inlining-heuristic.h", + "src/compiler/js-inlining.h", + "src/compiler/js-intrinsic-lowering.h", + "src/compiler/js-native-context-specialization.h", + "src/compiler/js-operator.h", + "src/compiler/js-type-hint-lowering.h", + "src/compiler/js-typed-lowering.h", + "src/compiler/linkage.h", + "src/compiler/load-elimination.h", + "src/compiler/loop-analysis.h", + "src/compiler/loop-peeling.h", + "src/compiler/loop-unrolling.h", + "src/compiler/loop-variable-optimizer.h", + "src/compiler/machine-graph-verifier.h", + "src/compiler/machine-graph.h", + "src/compiler/machine-operator-reducer.h", + "src/compiler/machine-operator.h", + "src/compiler/map-inference.h", + "src/compiler/memory-lowering.h", + "src/compiler/memory-optimizer.h", + "src/compiler/node-aux-data.h", + "src/compiler/node-cache.h", + "src/compiler/node-marker.h", + "src/compiler/node-matchers.h", + "src/compiler/node-observer.h", + "src/compiler/node-origin-table.h", + "src/compiler/node-properties.h", + "src/compiler/node.h", + "src/compiler/opcodes.h", + "src/compiler/operation-typer.h", + "src/compiler/operator-properties.h", + "src/compiler/operator.h", + "src/compiler/osr.h", + "src/compiler/per-isolate-compiler-cache.h", + "src/compiler/persistent-map.h", + "src/compiler/pipeline-statistics.h", + "src/compiler/pipeline.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", + "src/compiler/state-values-utils.h", + "src/compiler/store-store-elimination.h", + "src/compiler/type-cache.h", + "src/compiler/type-narrowing-reducer.h", + "src/compiler/typed-optimization.h", + "src/compiler/typer.h", + "src/compiler/types.h", + "src/compiler/value-numbering-reducer.h", + "src/compiler/verifier.h", + "src/compiler/write-barrier-kind.h", + "src/compiler/zone-stats.h", "src/date/date.h", "src/date/dateparser-inl.h", - "src/date/dateparser.cc", "src/date/dateparser.h", - "src/debug/debug-coverage.cc", "src/debug/debug-coverage.h", - "src/debug/debug-evaluate.cc", "src/debug/debug-evaluate.h", - "src/debug/debug-frames.cc", "src/debug/debug-frames.h", - "src/debug/debug-interface.cc", "src/debug/debug-interface.h", - "src/debug/debug-property-iterator.cc", "src/debug/debug-property-iterator.h", - "src/debug/debug-scope-iterator.cc", "src/debug/debug-scope-iterator.h", - "src/debug/debug-scopes.cc", "src/debug/debug-scopes.h", - "src/debug/debug-stack-trace-iterator.cc", "src/debug/debug-stack-trace-iterator.h", - "src/debug/debug-type-profile.cc", "src/debug/debug-type-profile.h", - "src/debug/debug-wasm-objects-inl.h", - "src/debug/debug-wasm-objects.cc", - "src/debug/debug-wasm-objects.h", - "src/debug/debug.cc", "src/debug/debug.h", "src/debug/interface-types.h", - "src/debug/liveedit.cc", "src/debug/liveedit.h", - "src/deoptimizer/deoptimize-reason.cc", "src/deoptimizer/deoptimize-reason.h", - "src/deoptimizer/deoptimized-frame-info.cc", "src/deoptimizer/deoptimized-frame-info.h", - "src/deoptimizer/deoptimizer.cc", "src/deoptimizer/deoptimizer.h", "src/deoptimizer/frame-description.h", - "src/deoptimizer/materialized-object-store.cc", "src/deoptimizer/materialized-object-store.h", - "src/deoptimizer/translated-state.cc", "src/deoptimizer/translated-state.h", - "src/deoptimizer/translation-array.cc", "src/deoptimizer/translation-array.h", "src/deoptimizer/translation-opcode.h", - "src/diagnostics/basic-block-profiler.cc", "src/diagnostics/basic-block-profiler.h", "src/diagnostics/code-tracer.h", - "src/diagnostics/compilation-statistics.cc", "src/diagnostics/compilation-statistics.h", "src/diagnostics/disasm.h", - "src/diagnostics/disassembler.cc", "src/diagnostics/disassembler.h", - "src/diagnostics/eh-frame.cc", "src/diagnostics/eh-frame.h", - "src/diagnostics/gdb-jit.cc", "src/diagnostics/gdb-jit.h", - "src/diagnostics/objects-debug.cc", - "src/diagnostics/objects-printer.cc", - "src/diagnostics/perf-jit.cc", "src/diagnostics/perf-jit.h", - "src/diagnostics/unwinder.cc", "src/diagnostics/unwinder.h", "src/execution/arguments-inl.h", - "src/execution/arguments.cc", "src/execution/arguments.h", - "src/execution/execution.cc", "src/execution/execution.h", - "src/execution/external-pointer-table.cc", "src/execution/external-pointer-table.h", "src/execution/frame-constants.h", "src/execution/frames-inl.h", - "src/execution/frames.cc", "src/execution/frames.h", - "src/execution/futex-emulation.cc", "src/execution/futex-emulation.h", - "src/execution/interrupts-scope.cc", "src/execution/interrupts-scope.h", "src/execution/isolate-data.h", "src/execution/isolate-inl.h", "src/execution/isolate-utils.h", - "src/execution/isolate.cc", "src/execution/isolate.h", "src/execution/local-isolate-inl.h", - "src/execution/local-isolate.cc", "src/execution/local-isolate.h", - "src/execution/messages.cc", "src/execution/messages.h", - "src/execution/microtask-queue.cc", "src/execution/microtask-queue.h", "src/execution/pointer-authentication.h", "src/execution/protectors-inl.h", - "src/execution/protectors.cc", "src/execution/protectors.h", - "src/execution/runtime-profiler.cc", "src/execution/runtime-profiler.h", "src/execution/shared-mutex-guard-if-off-thread.h", - "src/execution/simulator-base.cc", "src/execution/simulator-base.h", "src/execution/simulator.h", - "src/execution/stack-guard.cc", "src/execution/stack-guard.h", - "src/execution/thread-id.cc", "src/execution/thread-id.h", - "src/execution/thread-local-top.cc", "src/execution/thread-local-top.h", - "src/execution/v8threads.cc", "src/execution/v8threads.h", "src/execution/vm-state-inl.h", "src/execution/vm-state.h", - "src/extensions/cputracemark-extension.cc", "src/extensions/cputracemark-extension.h", - "src/extensions/externalize-string-extension.cc", "src/extensions/externalize-string-extension.h", - "src/extensions/gc-extension.cc", "src/extensions/gc-extension.h", - "src/extensions/ignition-statistics-extension.cc", "src/extensions/ignition-statistics-extension.h", - "src/extensions/statistics-extension.cc", "src/extensions/statistics-extension.h", - "src/extensions/trigger-failure-extension.cc", "src/extensions/trigger-failure-extension.h", - "src/flags/flag-definitions.h", - "src/flags/flags.cc", - "src/flags/flags.h", - "src/handles/global-handles.cc", "src/handles/global-handles.h", "src/handles/handles-inl.h", - "src/handles/handles.cc", "src/handles/handles.h", "src/handles/local-handles-inl.h", - "src/handles/local-handles.cc", "src/handles/local-handles.h", "src/handles/maybe-handles-inl.h", "src/handles/maybe-handles.h", - "src/handles/persistent-handles.cc", "src/handles/persistent-handles.h", - "src/heap/allocation-observer.cc", "src/heap/allocation-observer.h", "src/heap/allocation-stats.h", - "src/heap/array-buffer-sweeper.cc", "src/heap/array-buffer-sweeper.h", "src/heap/barrier.h", - "src/heap/base-space.cc", "src/heap/base-space.h", - "src/heap/basic-memory-chunk.cc", "src/heap/basic-memory-chunk.h", - "src/heap/code-object-registry.cc", "src/heap/code-object-registry.h", - "src/heap/code-stats.cc", "src/heap/code-stats.h", - "src/heap/collection-barrier.cc", "src/heap/collection-barrier.h", - "src/heap/combined-heap.cc", "src/heap/combined-heap.h", "src/heap/concurrent-allocator-inl.h", - "src/heap/concurrent-allocator.cc", "src/heap/concurrent-allocator.h", - "src/heap/concurrent-marking.cc", "src/heap/concurrent-marking.h", - "src/heap/cppgc-js/cpp-heap.cc", "src/heap/cppgc-js/cpp-heap.h", - "src/heap/cppgc-js/cpp-snapshot.cc", "src/heap/cppgc-js/cpp-snapshot.h", "src/heap/cppgc-js/unified-heap-marking-state.h", - "src/heap/cppgc-js/unified-heap-marking-verifier.cc", "src/heap/cppgc-js/unified-heap-marking-verifier.h", - "src/heap/cppgc-js/unified-heap-marking-visitor.cc", "src/heap/cppgc-js/unified-heap-marking-visitor.h", - "src/heap/embedder-tracing.cc", "src/heap/embedder-tracing.h", - "src/heap/factory-base.cc", "src/heap/factory-base.h", "src/heap/factory-inl.h", - "src/heap/factory.cc", "src/heap/factory.h", - "src/heap/finalization-registry-cleanup-task.cc", "src/heap/finalization-registry-cleanup-task.h", "src/heap/free-list-inl.h", - "src/heap/free-list.cc", "src/heap/free-list.h", - "src/heap/gc-idle-time-handler.cc", "src/heap/gc-idle-time-handler.h", - "src/heap/gc-tracer.cc", "src/heap/gc-tracer.h", - "src/heap/heap-controller.cc", "src/heap/heap-controller.h", "src/heap/heap-inl.h", "src/heap/heap-write-barrier-inl.h", - "src/heap/heap-write-barrier.cc", "src/heap/heap-write-barrier.h", - "src/heap/heap.cc", "src/heap/heap.h", "src/heap/incremental-marking-inl.h", - "src/heap/incremental-marking-job.cc", "src/heap/incremental-marking-job.h", - "src/heap/incremental-marking.cc", "src/heap/incremental-marking.h", - "src/heap/index-generator.cc", "src/heap/index-generator.h", "src/heap/invalidated-slots-inl.h", - "src/heap/invalidated-slots.cc", "src/heap/invalidated-slots.h", - "src/heap/item-parallel-job.cc", - "src/heap/item-parallel-job.h", - "src/heap/large-spaces.cc", "src/heap/large-spaces.h", "src/heap/list.h", "src/heap/local-allocator-inl.h", "src/heap/local-allocator.h", - "src/heap/local-factory.cc", "src/heap/local-factory.h", "src/heap/local-heap-inl.h", - "src/heap/local-heap.cc", "src/heap/local-heap.h", "src/heap/mark-compact-inl.h", - "src/heap/mark-compact.cc", "src/heap/mark-compact.h", - "src/heap/marking-barrier.cc", "src/heap/marking-barrier.h", "src/heap/marking-visitor-inl.h", "src/heap/marking-visitor.h", "src/heap/marking-worklist-inl.h", - "src/heap/marking-worklist.cc", "src/heap/marking-worklist.h", - "src/heap/marking.cc", "src/heap/marking.h", - "src/heap/memory-allocator.cc", "src/heap/memory-allocator.h", "src/heap/memory-chunk-inl.h", - "src/heap/memory-chunk-layout.cc", "src/heap/memory-chunk-layout.h", - "src/heap/memory-chunk.cc", "src/heap/memory-chunk.h", "src/heap/memory-measurement-inl.h", - "src/heap/memory-measurement.cc", "src/heap/memory-measurement.h", - "src/heap/memory-reducer.cc", "src/heap/memory-reducer.h", "src/heap/new-spaces-inl.h", - "src/heap/new-spaces.cc", "src/heap/new-spaces.h", - "src/heap/object-stats.cc", "src/heap/object-stats.h", "src/heap/objects-visiting-inl.h", - "src/heap/objects-visiting.cc", "src/heap/objects-visiting.h", "src/heap/paged-spaces-inl.h", - "src/heap/paged-spaces.cc", "src/heap/paged-spaces.h", "src/heap/parallel-work-item.h", "src/heap/parked-scope.h", "src/heap/read-only-heap-inl.h", - "src/heap/read-only-heap.cc", "src/heap/read-only-heap.h", - "src/heap/read-only-spaces.cc", "src/heap/read-only-spaces.h", "src/heap/remembered-set-inl.h", "src/heap/remembered-set.h", - "src/heap/safepoint.cc", "src/heap/safepoint.h", - "src/heap/scavenge-job.cc", "src/heap/scavenge-job.h", "src/heap/scavenger-inl.h", - "src/heap/scavenger.cc", "src/heap/scavenger.h", - "src/heap/slot-set.cc", "src/heap/slot-set.h", "src/heap/spaces-inl.h", - "src/heap/spaces.cc", "src/heap/spaces.h", - "src/heap/stress-marking-observer.cc", "src/heap/stress-marking-observer.h", - "src/heap/stress-scavenge-observer.cc", "src/heap/stress-scavenge-observer.h", - "src/heap/sweeper.cc", "src/heap/sweeper.h", - "src/heap/weak-object-worklists.cc", "src/heap/weak-object-worklists.h", "src/heap/worklist.h", - "src/ic/call-optimization.cc", "src/ic/call-optimization.h", "src/ic/handler-configuration-inl.h", - "src/ic/handler-configuration.cc", "src/ic/handler-configuration.h", "src/ic/ic-inl.h", - "src/ic/ic-stats.cc", "src/ic/ic-stats.h", - "src/ic/ic.cc", "src/ic/ic.h", - "src/ic/stub-cache.cc", "src/ic/stub-cache.h", - "src/init/bootstrapper.cc", "src/init/bootstrapper.h", "src/init/heap-symbols.h", - "src/init/icu_util.cc", "src/init/icu_util.h", - "src/init/isolate-allocator.cc", "src/init/isolate-allocator.h", "src/init/setup-isolate.h", - "src/init/startup-data-util.cc", "src/init/startup-data-util.h", - "src/init/v8.cc", "src/init/v8.h", "src/interpreter/block-coverage-builder.h", - "src/interpreter/bytecode-array-accessor.cc", - "src/interpreter/bytecode-array-accessor.h", - "src/interpreter/bytecode-array-builder.cc", "src/interpreter/bytecode-array-builder.h", - "src/interpreter/bytecode-array-iterator.cc", "src/interpreter/bytecode-array-iterator.h", - "src/interpreter/bytecode-array-random-iterator.cc", "src/interpreter/bytecode-array-random-iterator.h", - "src/interpreter/bytecode-array-writer.cc", "src/interpreter/bytecode-array-writer.h", - "src/interpreter/bytecode-decoder.cc", "src/interpreter/bytecode-decoder.h", - "src/interpreter/bytecode-flags.cc", "src/interpreter/bytecode-flags.h", - "src/interpreter/bytecode-generator.cc", "src/interpreter/bytecode-generator.h", "src/interpreter/bytecode-jump-table.h", - "src/interpreter/bytecode-label.cc", "src/interpreter/bytecode-label.h", - "src/interpreter/bytecode-node.cc", "src/interpreter/bytecode-node.h", - "src/interpreter/bytecode-operands.cc", "src/interpreter/bytecode-operands.h", "src/interpreter/bytecode-register-allocator.h", - "src/interpreter/bytecode-register-optimizer.cc", "src/interpreter/bytecode-register-optimizer.h", - "src/interpreter/bytecode-register.cc", "src/interpreter/bytecode-register.h", - "src/interpreter/bytecode-source-info.cc", "src/interpreter/bytecode-source-info.h", "src/interpreter/bytecode-traits.h", - "src/interpreter/bytecodes.cc", "src/interpreter/bytecodes.h", - "src/interpreter/constant-array-builder.cc", "src/interpreter/constant-array-builder.h", - "src/interpreter/control-flow-builders.cc", "src/interpreter/control-flow-builders.h", - "src/interpreter/handler-table-builder.cc", "src/interpreter/handler-table-builder.h", "src/interpreter/interpreter-generator.h", - "src/interpreter/interpreter-intrinsics.cc", "src/interpreter/interpreter-intrinsics.h", - "src/interpreter/interpreter.cc", "src/interpreter/interpreter.h", - "src/json/json-parser.cc", "src/json/json-parser.h", - "src/json/json-stringifier.cc", "src/json/json-stringifier.h", + "src/libsampler/sampler.h", "src/logging/code-events.h", "src/logging/counters-definitions.h", "src/logging/counters-inl.h", - "src/logging/counters.cc", "src/logging/counters.h", - "src/logging/local-logger.cc", "src/logging/local-logger.h", "src/logging/log-inl.h", - "src/logging/log-utils.cc", "src/logging/log-utils.h", - "src/logging/log.cc", "src/logging/log.h", - "src/logging/metrics.cc", "src/logging/metrics.h", - "src/logging/tracing-flags.cc", "src/logging/tracing-flags.h", - "src/numbers/bignum-dtoa.cc", "src/numbers/bignum-dtoa.h", - "src/numbers/bignum.cc", "src/numbers/bignum.h", - "src/numbers/cached-powers.cc", "src/numbers/cached-powers.h", "src/numbers/conversions-inl.h", - "src/numbers/conversions.cc", "src/numbers/conversions.h", - "src/numbers/diy-fp.cc", "src/numbers/diy-fp.h", "src/numbers/double.h", - "src/numbers/dtoa.cc", "src/numbers/dtoa.h", - "src/numbers/fast-dtoa.cc", "src/numbers/fast-dtoa.h", - "src/numbers/fixed-dtoa.cc", "src/numbers/fixed-dtoa.h", "src/numbers/hash-seed-inl.h", - "src/numbers/math-random.cc", "src/numbers/math-random.h", - "src/numbers/strtod.cc", "src/numbers/strtod.h", "src/objects/all-objects-inl.h", "src/objects/allocation-site-inl.h", @@ -3066,53 +2709,41 @@ v8_source_set("v8_base_without_compiler") { "src/objects/api-callbacks.h", "src/objects/arguments-inl.h", "src/objects/arguments.h", - "src/objects/backing-store.cc", "src/objects/backing-store.h", "src/objects/bigint-inl.h", - "src/objects/bigint.cc", "src/objects/bigint.h", "src/objects/cell-inl.h", "src/objects/cell.h", "src/objects/code-inl.h", - "src/objects/code-kind.cc", "src/objects/code-kind.h", - "src/objects/code.cc", "src/objects/code.h", "src/objects/compilation-cache-table-inl.h", - "src/objects/compilation-cache-table.cc", "src/objects/compilation-cache-table.h", "src/objects/compressed-slots-inl.h", "src/objects/compressed-slots.h", "src/objects/contexts-inl.h", - "src/objects/contexts.cc", "src/objects/contexts.h", "src/objects/data-handler-inl.h", "src/objects/data-handler.h", "src/objects/debug-objects-inl.h", - "src/objects/debug-objects.cc", "src/objects/debug-objects.h", "src/objects/descriptor-array-inl.h", "src/objects/descriptor-array.h", "src/objects/dictionary-inl.h", "src/objects/dictionary.h", "src/objects/elements-inl.h", - "src/objects/elements-kind.cc", "src/objects/elements-kind.h", - "src/objects/elements.cc", "src/objects/elements.h", "src/objects/embedder-data-array-inl.h", - "src/objects/embedder-data-array.cc", "src/objects/embedder-data-array.h", "src/objects/embedder-data-slot-inl.h", "src/objects/embedder-data-slot.h", "src/objects/feedback-cell-inl.h", "src/objects/feedback-cell.h", "src/objects/feedback-vector-inl.h", - "src/objects/feedback-vector.cc", "src/objects/feedback-vector.h", "src/objects/field-index-inl.h", "src/objects/field-index.h", - "src/objects/field-type.cc", "src/objects/field-type.h", "src/objects/fixed-array-inl.h", "src/objects/fixed-array.h", @@ -3130,48 +2761,19 @@ v8_source_set("v8_base_without_compiler") { "src/objects/instance-type-inl.h", "src/objects/instance-type.h", "src/objects/internal-index.h", - "src/objects/intl-objects.cc", - "src/objects/intl-objects.h", "src/objects/js-array-buffer-inl.h", - "src/objects/js-array-buffer.cc", "src/objects/js-array-buffer.h", "src/objects/js-array-inl.h", "src/objects/js-array.h", - "src/objects/js-break-iterator-inl.h", - "src/objects/js-break-iterator.cc", - "src/objects/js-break-iterator.h", - "src/objects/js-collator-inl.h", - "src/objects/js-collator.cc", - "src/objects/js-collator.h", "src/objects/js-collection-inl.h", "src/objects/js-collection-iterator.h", "src/objects/js-collection.h", - "src/objects/js-date-time-format-inl.h", - "src/objects/js-date-time-format.cc", - "src/objects/js-date-time-format.h", - "src/objects/js-display-names-inl.h", - "src/objects/js-display-names.cc", - "src/objects/js-display-names.h", "src/objects/js-function-inl.h", - "src/objects/js-function.cc", "src/objects/js-function.h", "src/objects/js-generator-inl.h", "src/objects/js-generator.h", - "src/objects/js-list-format-inl.h", - "src/objects/js-list-format.cc", - "src/objects/js-list-format.h", - "src/objects/js-locale-inl.h", - "src/objects/js-locale.cc", - "src/objects/js-locale.h", - "src/objects/js-number-format-inl.h", - "src/objects/js-number-format.cc", - "src/objects/js-number-format.h", "src/objects/js-objects-inl.h", - "src/objects/js-objects.cc", "src/objects/js-objects.h", - "src/objects/js-plural-rules-inl.h", - "src/objects/js-plural-rules.cc", - "src/objects/js-plural-rules.h", "src/objects/js-promise-inl.h", "src/objects/js-promise.h", "src/objects/js-proxy-inl.h", @@ -3179,46 +2781,25 @@ v8_source_set("v8_base_without_compiler") { "src/objects/js-regexp-inl.h", "src/objects/js-regexp-string-iterator-inl.h", "src/objects/js-regexp-string-iterator.h", - "src/objects/js-regexp.cc", "src/objects/js-regexp.h", - "src/objects/js-relative-time-format-inl.h", - "src/objects/js-relative-time-format.cc", - "src/objects/js-relative-time-format.h", - "src/objects/js-segment-iterator-inl.h", - "src/objects/js-segment-iterator.cc", - "src/objects/js-segment-iterator.h", - "src/objects/js-segmenter-inl.h", - "src/objects/js-segmenter.cc", - "src/objects/js-segmenter.h", - "src/objects/js-segments-inl.h", - "src/objects/js-segments.cc", - "src/objects/js-segments.h", "src/objects/js-weak-refs-inl.h", "src/objects/js-weak-refs.h", - "src/objects/keys.cc", "src/objects/keys.h", "src/objects/literal-objects-inl.h", - "src/objects/literal-objects.cc", "src/objects/literal-objects.h", "src/objects/lookup-cache-inl.h", - "src/objects/lookup-cache.cc", "src/objects/lookup-cache.h", "src/objects/lookup-inl.h", - "src/objects/lookup.cc", "src/objects/lookup.h", - "src/objects/managed.cc", "src/objects/managed.h", "src/objects/map-inl.h", - "src/objects/map-updater.cc", "src/objects/map-updater.h", - "src/objects/map.cc", "src/objects/map.h", "src/objects/maybe-object-inl.h", "src/objects/maybe-object.h", "src/objects/microtask-inl.h", "src/objects/microtask.h", "src/objects/module-inl.h", - "src/objects/module.cc", "src/objects/module.h", "src/objects/name-inl.h", "src/objects/name.h", @@ -3228,15 +2809,12 @@ v8_source_set("v8_base_without_compiler") { "src/objects/objects-body-descriptors-inl.h", "src/objects/objects-body-descriptors.h", "src/objects/objects-inl.h", - "src/objects/objects.cc", "src/objects/objects.h", "src/objects/oddball-inl.h", "src/objects/oddball.h", "src/objects/ordered-hash-table-inl.h", - "src/objects/ordered-hash-table.cc", "src/objects/ordered-hash-table.h", "src/objects/osr-optimized-code-cache-inl.h", - "src/objects/osr-optimized-code-cache.cc", "src/objects/osr-optimized-code-cache.h", "src/objects/primitive-heap-object-inl.h", "src/objects/primitive-heap-object.h", @@ -3248,434 +2826,1184 @@ v8_source_set("v8_base_without_compiler") { "src/objects/property-cell.h", "src/objects/property-descriptor-object-inl.h", "src/objects/property-descriptor-object.h", - "src/objects/property-descriptor.cc", "src/objects/property-descriptor.h", "src/objects/property-details.h", - "src/objects/property.cc", "src/objects/property.h", "src/objects/prototype-info-inl.h", "src/objects/prototype-info.h", "src/objects/prototype.h", "src/objects/regexp-match-info.h", "src/objects/scope-info-inl.h", - "src/objects/scope-info.cc", "src/objects/scope-info.h", "src/objects/script-inl.h", "src/objects/script.h", "src/objects/shared-function-info-inl.h", - "src/objects/shared-function-info.cc", "src/objects/shared-function-info.h", "src/objects/slots-atomic-inl.h", "src/objects/slots-inl.h", "src/objects/slots.h", - "src/objects/source-text-module.cc", "src/objects/source-text-module.h", "src/objects/stack-frame-info-inl.h", - "src/objects/stack-frame-info.cc", "src/objects/stack-frame-info.h", - "src/objects/string-comparator.cc", "src/objects/string-comparator.h", "src/objects/string-inl.h", "src/objects/string-set-inl.h", "src/objects/string-set.h", "src/objects/string-table-inl.h", - "src/objects/string-table.cc", "src/objects/string-table.h", - "src/objects/string.cc", "src/objects/string.h", "src/objects/struct-inl.h", "src/objects/struct.h", "src/objects/swiss-hash-table-helpers.h", "src/objects/swiss-name-dictionary-inl.h", - "src/objects/swiss-name-dictionary.cc", "src/objects/swiss-name-dictionary.h", "src/objects/synthetic-module-inl.h", - "src/objects/synthetic-module.cc", "src/objects/synthetic-module.h", "src/objects/tagged-field-inl.h", "src/objects/tagged-field.h", "src/objects/tagged-impl-inl.h", - "src/objects/tagged-impl.cc", "src/objects/tagged-impl.h", "src/objects/tagged-index.h", "src/objects/tagged-value-inl.h", "src/objects/tagged-value.h", "src/objects/template-objects-inl.h", - "src/objects/template-objects.cc", "src/objects/template-objects.h", "src/objects/templates-inl.h", "src/objects/templates.h", "src/objects/torque-defined-classes-inl.h", "src/objects/torque-defined-classes.h", "src/objects/transitions-inl.h", - "src/objects/transitions.cc", "src/objects/transitions.h", - "src/objects/type-hints.cc", "src/objects/type-hints.h", - "src/objects/value-serializer.cc", "src/objects/value-serializer.h", - "src/objects/visitors.cc", "src/objects/visitors.h", "src/parsing/expression-scope.h", - "src/parsing/func-name-inferrer.cc", "src/parsing/func-name-inferrer.h", - "src/parsing/import-assertions.cc", "src/parsing/import-assertions.h", - "src/parsing/literal-buffer.cc", "src/parsing/literal-buffer.h", - "src/parsing/parse-info.cc", "src/parsing/parse-info.h", "src/parsing/parser-base.h", - "src/parsing/parser.cc", "src/parsing/parser.h", - "src/parsing/parsing.cc", "src/parsing/parsing.h", - "src/parsing/pending-compilation-error-handler.cc", "src/parsing/pending-compilation-error-handler.h", "src/parsing/preparse-data-impl.h", - "src/parsing/preparse-data.cc", "src/parsing/preparse-data.h", "src/parsing/preparser-logger.h", - "src/parsing/preparser.cc", "src/parsing/preparser.h", - "src/parsing/rewriter.cc", "src/parsing/rewriter.h", - "src/parsing/scanner-character-streams.cc", "src/parsing/scanner-character-streams.h", - "src/parsing/scanner.cc", "src/parsing/scanner.h", - "src/parsing/token.cc", "src/parsing/token.h", - "src/profiler/allocation-tracker.cc", "src/profiler/allocation-tracker.h", "src/profiler/circular-queue-inl.h", "src/profiler/circular-queue.h", "src/profiler/cpu-profiler-inl.h", - "src/profiler/cpu-profiler.cc", "src/profiler/cpu-profiler.h", - "src/profiler/heap-profiler.cc", "src/profiler/heap-profiler.h", "src/profiler/heap-snapshot-generator-inl.h", - "src/profiler/heap-snapshot-generator.cc", "src/profiler/heap-snapshot-generator.h", "src/profiler/profile-generator-inl.h", - "src/profiler/profile-generator.cc", "src/profiler/profile-generator.h", - "src/profiler/profiler-listener.cc", "src/profiler/profiler-listener.h", - "src/profiler/profiler-stats.cc", "src/profiler/profiler-stats.h", - "src/profiler/sampling-heap-profiler.cc", "src/profiler/sampling-heap-profiler.h", - "src/profiler/strings-storage.cc", "src/profiler/strings-storage.h", - "src/profiler/symbolizer.cc", "src/profiler/symbolizer.h", - "src/profiler/tick-sample.cc", "src/profiler/tick-sample.h", - "src/profiler/tracing-cpu-profiler.cc", "src/profiler/tracing-cpu-profiler.h", - "src/regexp/experimental/experimental-bytecode.cc", + "src/profiler/weak-code-registry.h", "src/regexp/experimental/experimental-bytecode.h", - "src/regexp/experimental/experimental-compiler.cc", "src/regexp/experimental/experimental-compiler.h", - "src/regexp/experimental/experimental-interpreter.cc", "src/regexp/experimental/experimental-interpreter.h", - "src/regexp/experimental/experimental.cc", "src/regexp/experimental/experimental.h", - "src/regexp/property-sequences.cc", "src/regexp/property-sequences.h", - "src/regexp/regexp-ast.cc", "src/regexp/regexp-ast.h", "src/regexp/regexp-bytecode-generator-inl.h", - "src/regexp/regexp-bytecode-generator.cc", "src/regexp/regexp-bytecode-generator.h", - "src/regexp/regexp-bytecode-peephole.cc", "src/regexp/regexp-bytecode-peephole.h", - "src/regexp/regexp-bytecodes.cc", "src/regexp/regexp-bytecodes.h", - "src/regexp/regexp-compiler-tonode.cc", - "src/regexp/regexp-compiler.cc", "src/regexp/regexp-compiler.h", - "src/regexp/regexp-dotprinter.cc", "src/regexp/regexp-dotprinter.h", - "src/regexp/regexp-error.cc", "src/regexp/regexp-error.h", - "src/regexp/regexp-interpreter.cc", "src/regexp/regexp-interpreter.h", "src/regexp/regexp-macro-assembler-arch.h", - "src/regexp/regexp-macro-assembler-tracer.cc", "src/regexp/regexp-macro-assembler-tracer.h", - "src/regexp/regexp-macro-assembler.cc", "src/regexp/regexp-macro-assembler.h", "src/regexp/regexp-nodes.h", - "src/regexp/regexp-parser.cc", "src/regexp/regexp-parser.h", - "src/regexp/regexp-stack.cc", "src/regexp/regexp-stack.h", - "src/regexp/regexp-utils.cc", "src/regexp/regexp-utils.h", - "src/regexp/regexp.cc", "src/regexp/regexp.h", "src/regexp/special-case.h", "src/roots/roots-inl.h", - "src/roots/roots.cc", "src/roots/roots.h", - "src/runtime/runtime-array.cc", - "src/runtime/runtime-atomics.cc", - "src/runtime/runtime-bigint.cc", - "src/runtime/runtime-classes.cc", - "src/runtime/runtime-collections.cc", - "src/runtime/runtime-compiler.cc", - "src/runtime/runtime-date.cc", - "src/runtime/runtime-debug.cc", - "src/runtime/runtime-forin.cc", - "src/runtime/runtime-function.cc", - "src/runtime/runtime-futex.cc", - "src/runtime/runtime-generator.cc", - "src/runtime/runtime-internal.cc", - "src/runtime/runtime-intl.cc", - "src/runtime/runtime-literals.cc", - "src/runtime/runtime-module.cc", - "src/runtime/runtime-numbers.cc", - "src/runtime/runtime-object.cc", - "src/runtime/runtime-operators.cc", - "src/runtime/runtime-promise.cc", - "src/runtime/runtime-proxy.cc", - "src/runtime/runtime-regexp.cc", - "src/runtime/runtime-scopes.cc", - "src/runtime/runtime-strings.cc", - "src/runtime/runtime-symbol.cc", - "src/runtime/runtime-test.cc", - "src/runtime/runtime-trace.cc", - "src/runtime/runtime-typedarray.cc", "src/runtime/runtime-utils.h", - "src/runtime/runtime-wasm.cc", - "src/runtime/runtime-weak-refs.cc", - "src/runtime/runtime.cc", "src/runtime/runtime.h", "src/sanitizer/asan.h", - "src/sanitizer/lsan-page-allocator.cc", "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", + "src/snapshot/deserializer.h", + "src/snapshot/embedded/embedded-data.h", + "src/snapshot/embedded/embedded-file-writer-interface.h", + "src/snapshot/object-deserializer.h", + "src/snapshot/read-only-deserializer.h", + "src/snapshot/read-only-serializer.h", + "src/snapshot/references.h", + "src/snapshot/roots-serializer.h", + "src/snapshot/serializer-deserializer.h", + "src/snapshot/serializer.h", + "src/snapshot/snapshot-compression.h", + "src/snapshot/snapshot-data.h", + "src/snapshot/snapshot-source-sink.h", + "src/snapshot/snapshot-utils.h", + "src/snapshot/snapshot.h", + "src/snapshot/startup-deserializer.h", + "src/snapshot/startup-serializer.h", + "src/strings/char-predicates-inl.h", + "src/strings/char-predicates.h", + "src/strings/string-builder-inl.h", + "src/strings/string-case.h", + "src/strings/string-hasher-inl.h", + "src/strings/string-hasher.h", + "src/strings/string-search.h", + "src/strings/string-stream.h", + "src/strings/unicode-decoder.h", + "src/strings/unicode-inl.h", + "src/strings/unicode.h", + "src/strings/uri.h", + "src/tasks/cancelable-task.h", + "src/tasks/operations-barrier.h", + "src/tasks/task-utils.h", + "src/third_party/siphash/halfsiphash.h", + "src/third_party/utf8-decoder/utf8-decoder.h", + "src/tracing/trace-event.h", + "src/tracing/traced-value.h", + "src/tracing/tracing-category-observer.h", + "src/trap-handler/trap-handler-internal.h", + "src/trap-handler/trap-handler.h", + "src/utils/address-map.h", + "src/utils/allocation.h", + "src/utils/bit-vector.h", + "src/utils/boxed-float.h", + "src/utils/detachable-vector.h", + "src/utils/identity-map.h", + "src/utils/locked-queue-inl.h", + "src/utils/locked-queue.h", + "src/utils/memcopy.h", + "src/utils/ostreams.h", + "src/utils/pointer-with-payload.h", + "src/utils/scoped-list.h", + "src/utils/utils-inl.h", + "src/utils/utils.h", + "src/utils/vector.h", + "src/utils/version.h", + "src/zone/accounting-allocator.h", + "src/zone/compressed-zone-ptr.h", + "src/zone/type-stats.h", + "src/zone/zone-allocator.h", + "src/zone/zone-chunk-list.h", + "src/zone/zone-compression.h", + "src/zone/zone-containers.h", + "src/zone/zone-handle-set.h", + "src/zone/zone-hashmap.h", + "src/zone/zone-list-inl.h", + "src/zone/zone-list.h", + "src/zone/zone-segment.h", + "src/zone/zone-type-traits.h", + "src/zone/zone-utils.h", + "src/zone/zone.h", + ] + + if (v8_use_perfetto) { + sources -= [ "//base/trace_event/common/trace_event_common.h" ] + } + + if (v8_enable_webassembly) { + sources += [ + "src/asmjs/asm-js.h", + "src/asmjs/asm-parser.h", + "src/asmjs/asm-scanner.h", + "src/asmjs/asm-types.h", + "src/compiler/int64-lowering.h", + "src/compiler/wasm-compiler.h", + "src/debug/debug-wasm-objects-inl.h", + "src/debug/debug-wasm-objects.h", + "src/wasm/baseline/liftoff-assembler-defs.h", + "src/wasm/baseline/liftoff-assembler.h", + "src/wasm/baseline/liftoff-compiler.h", + "src/wasm/baseline/liftoff-register.h", + "src/wasm/code-space-access.h", + "src/wasm/compilation-environment.h", + "src/wasm/decoder.h", + "src/wasm/function-body-decoder-impl.h", + "src/wasm/function-body-decoder.h", + "src/wasm/function-compiler.h", + "src/wasm/graph-builder-interface.h", + "src/wasm/jump-table-assembler.h", + "src/wasm/leb-helper.h", + "src/wasm/local-decl-encoder.h", + "src/wasm/memory-tracing.h", + "src/wasm/module-compiler.h", + "src/wasm/module-decoder.h", + "src/wasm/module-instantiate.h", + "src/wasm/object-access.h", + "src/wasm/signature-map.h", + "src/wasm/simd-shuffle.h", + "src/wasm/streaming-decoder.h", + "src/wasm/struct-types.h", + "src/wasm/value-type.h", + "src/wasm/wasm-arguments.h", + "src/wasm/wasm-code-manager.h", + "src/wasm/wasm-engine.h", + "src/wasm/wasm-external-refs.h", + "src/wasm/wasm-feature-flags.h", + "src/wasm/wasm-features.h", + "src/wasm/wasm-import-wrapper-cache.h", + "src/wasm/wasm-js.h", + "src/wasm/wasm-linkage.h", + "src/wasm/wasm-module-builder.h", + "src/wasm/wasm-module-sourcemap.h", + "src/wasm/wasm-module.h", + "src/wasm/wasm-objects-inl.h", + "src/wasm/wasm-objects.h", + "src/wasm/wasm-opcodes.h", + "src/wasm/wasm-result.h", + "src/wasm/wasm-serialization.h", + "src/wasm/wasm-subtyping.h", + "src/wasm/wasm-tier.h", + "src/wasm/wasm-value.h", + ] + } + + if (v8_enable_i18n_support) { + sources += [ + "src/objects/intl-objects.h", + "src/objects/js-break-iterator-inl.h", + "src/objects/js-break-iterator.h", + "src/objects/js-collator-inl.h", + "src/objects/js-collator.h", + "src/objects/js-date-time-format-inl.h", + "src/objects/js-date-time-format.h", + "src/objects/js-display-names-inl.h", + "src/objects/js-display-names.h", + "src/objects/js-list-format-inl.h", + "src/objects/js-list-format.h", + "src/objects/js-locale-inl.h", + "src/objects/js-locale.h", + "src/objects/js-number-format-inl.h", + "src/objects/js-number-format.h", + "src/objects/js-plural-rules-inl.h", + "src/objects/js-plural-rules.h", + "src/objects/js-relative-time-format-inl.h", + "src/objects/js-relative-time-format.h", + "src/objects/js-segment-iterator-inl.h", + "src/objects/js-segment-iterator.h", + "src/objects/js-segmenter-inl.h", + "src/objects/js-segmenter.h", + "src/objects/js-segments-inl.h", + "src/objects/js-segments.h", + ] + } + + if (!v8_control_flow_integrity) { + sources += [ "src/execution/pointer-authentication-dummy.h" ] + } + + if (v8_enable_conservative_stack_scanning) { + sources += [ + "src/heap/conservative-stack-visitor.h", + "src/heap/object-start-bitmap.h", + ] + } + + if (v8_enable_wasm_gdb_remote_debugging) { + sources += [ + "src/debug/wasm/gdb-server/gdb-remote-util.h", + "src/debug/wasm/gdb-server/gdb-server-thread.h", + "src/debug/wasm/gdb-server/gdb-server.h", + "src/debug/wasm/gdb-server/packet.h", + "src/debug/wasm/gdb-server/session.h", + "src/debug/wasm/gdb-server/target.h", + "src/debug/wasm/gdb-server/transport.h", + "src/debug/wasm/gdb-server/wasm-module-debug.h", + ] + } + + if (v8_current_cpu == "x86") { + sources += [ ### gcmole(arch:ia32) ### + "src/baseline/ia32/baseline-assembler-ia32-inl.h", + "src/baseline/ia32/baseline-compiler-ia32-inl.h", + "src/codegen/ia32/assembler-ia32-inl.h", + "src/codegen/ia32/assembler-ia32.h", + "src/codegen/ia32/constants-ia32.h", + "src/codegen/ia32/macro-assembler-ia32.h", + "src/codegen/ia32/register-ia32.h", + "src/codegen/ia32/sse-instr.h", + "src/codegen/shared-ia32-x64/macro-assembler-shared-ia32-x64.h", + "src/compiler/backend/ia32/instruction-codes-ia32.h", + "src/execution/ia32/frame-constants-ia32.h", + "src/regexp/ia32/regexp-macro-assembler-ia32.h", + "src/wasm/baseline/ia32/liftoff-assembler-ia32.h", + ] + } else if (v8_current_cpu == "x64") { + sources += [ ### gcmole(arch:x64) ### + "src/baseline/x64/baseline-assembler-x64-inl.h", + "src/baseline/x64/baseline-compiler-x64-inl.h", + "src/codegen/shared-ia32-x64/macro-assembler-shared-ia32-x64.h", + "src/codegen/x64/assembler-x64-inl.h", + "src/codegen/x64/assembler-x64.h", + "src/codegen/x64/constants-x64.h", + "src/codegen/x64/fma-instr.h", + "src/codegen/x64/macro-assembler-x64.h", + "src/codegen/x64/register-x64.h", + "src/codegen/x64/sse-instr.h", + "src/compiler/backend/x64/instruction-codes-x64.h", + "src/compiler/backend/x64/unwinding-info-writer-x64.h", + "src/execution/x64/frame-constants-x64.h", + "src/regexp/x64/regexp-macro-assembler-x64.h", + "src/third_party/valgrind/valgrind.h", + "src/wasm/baseline/x64/liftoff-assembler-x64.h", + ] + + # iOS Xcode simulator builds run on an x64 target. iOS and macOS are both + # based on Darwin and thus POSIX-compliant to a similar degree. + if (is_linux || is_chromeos || is_mac || is_ios || target_os == "freebsd") { + sources += [ "src/trap-handler/handler-inside-posix.h" ] + } + if (is_win) { + sources += [ + "src/diagnostics/unwinding-info-win64.h", + "src/trap-handler/handler-inside-win.h", + ] + } + } else if (v8_current_cpu == "arm") { + sources += [ ### gcmole(arch:arm) ### + "src/baseline/arm/baseline-assembler-arm-inl.h", + "src/baseline/arm/baseline-compiler-arm-inl.h", + "src/codegen/arm/assembler-arm-inl.h", + "src/codegen/arm/assembler-arm.h", + "src/codegen/arm/constants-arm.h", + "src/codegen/arm/macro-assembler-arm.h", + "src/codegen/arm/register-arm.h", + "src/compiler/backend/arm/instruction-codes-arm.h", + "src/compiler/backend/arm/unwinding-info-writer-arm.h", + "src/execution/arm/frame-constants-arm.h", + "src/execution/arm/simulator-arm.h", + "src/regexp/arm/regexp-macro-assembler-arm.h", + "src/wasm/baseline/arm/liftoff-assembler-arm.h", + ] + } else if (v8_current_cpu == "arm64") { + sources += [ ### gcmole(arch:arm64) ### + "src/baseline/arm64/baseline-assembler-arm64-inl.h", + "src/baseline/arm64/baseline-compiler-arm64-inl.h", + "src/codegen/arm64/assembler-arm64-inl.h", + "src/codegen/arm64/assembler-arm64.h", + "src/codegen/arm64/constants-arm64.h", + "src/codegen/arm64/decoder-arm64-inl.h", + "src/codegen/arm64/decoder-arm64.h", + "src/codegen/arm64/instructions-arm64.h", + "src/codegen/arm64/macro-assembler-arm64-inl.h", + "src/codegen/arm64/macro-assembler-arm64.h", + "src/codegen/arm64/register-arm64.h", + "src/codegen/arm64/utils-arm64.h", + "src/compiler/backend/arm64/instruction-codes-arm64.h", + "src/compiler/backend/arm64/unwinding-info-writer-arm64.h", + "src/diagnostics/arm64/disasm-arm64.h", + "src/execution/arm64/frame-constants-arm64.h", + "src/execution/arm64/simulator-arm64.h", + "src/regexp/arm64/regexp-macro-assembler-arm64.h", + "src/wasm/baseline/arm64/liftoff-assembler-arm64.h", + ] + if (v8_control_flow_integrity) { + sources += [ "src/execution/arm64/pointer-authentication-arm64.h" ] + } + if (current_cpu == "arm64" && is_mac) { + sources += [ "src/trap-handler/handler-inside-posix.h" ] + } + if (is_win) { + sources += [ "src/diagnostics/unwinding-info-win64.h" ] + } + } else if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel") { + sources += [ ### gcmole(arch:mipsel) ### + "src/baseline/mips/baseline-assembler-mips-inl.h", + "src/baseline/mips/baseline-compiler-mips-inl.h", + "src/codegen/mips/assembler-mips-inl.h", + "src/codegen/mips/assembler-mips.h", + "src/codegen/mips/constants-mips.h", + "src/codegen/mips/macro-assembler-mips.h", + "src/codegen/mips/register-mips.h", + "src/compiler/backend/mips/instruction-codes-mips.h", + "src/execution/mips/frame-constants-mips.h", + "src/execution/mips/simulator-mips.h", + "src/regexp/mips/regexp-macro-assembler-mips.h", + "src/wasm/baseline/mips/liftoff-assembler-mips.h", + ] + } else if (v8_current_cpu == "mips64" || v8_current_cpu == "mips64el") { + sources += [ ### gcmole(arch:mips64el) ### + "src/baseline/mips64/baseline-assembler-mips64-inl.h", + "src/baseline/mips64/baseline-compiler-mips64-inl.h", + "src/codegen/mips64/assembler-mips64-inl.h", + "src/codegen/mips64/assembler-mips64.h", + "src/codegen/mips64/constants-mips64.h", + "src/codegen/mips64/macro-assembler-mips64.h", + "src/codegen/mips64/register-mips64.h", + "src/compiler/backend/mips64/instruction-codes-mips64.h", + "src/execution/mips64/frame-constants-mips64.h", + "src/execution/mips64/simulator-mips64.h", + "src/regexp/mips64/regexp-macro-assembler-mips64.h", + "src/wasm/baseline/mips64/liftoff-assembler-mips64.h", + ] + } 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/macro-assembler-ppc.h", + "src/codegen/ppc/register-ppc.h", + "src/compiler/backend/ppc/instruction-codes-ppc.h", + "src/compiler/backend/ppc/unwinding-info-writer-ppc.h", + "src/execution/ppc/frame-constants-ppc.h", + "src/execution/ppc/simulator-ppc.h", + "src/regexp/ppc/regexp-macro-assembler-ppc.h", + "src/wasm/baseline/ppc/liftoff-assembler-ppc.h", + ] + } 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/macro-assembler-ppc.h", + "src/codegen/ppc/register-ppc.h", + "src/compiler/backend/ppc/instruction-codes-ppc.h", + "src/compiler/backend/ppc/unwinding-info-writer-ppc.h", + "src/execution/ppc/frame-constants-ppc.h", + "src/execution/ppc/simulator-ppc.h", + "src/regexp/ppc/regexp-macro-assembler-ppc.h", + "src/wasm/baseline/ppc/liftoff-assembler-ppc.h", + ] + } else if (v8_current_cpu == "s390" || v8_current_cpu == "s390x") { + sources += [ ### gcmole(arch:s390) ### + "src/baseline/s390/baseline-assembler-s390-inl.h", + "src/baseline/s390/baseline-compiler-s390-inl.h", + "src/codegen/s390/assembler-s390-inl.h", + "src/codegen/s390/assembler-s390.h", + "src/codegen/s390/constants-s390.h", + "src/codegen/s390/macro-assembler-s390.h", + "src/codegen/s390/register-s390.h", + "src/compiler/backend/s390/instruction-codes-s390.h", + "src/compiler/backend/s390/unwinding-info-writer-s390.h", + "src/execution/s390/frame-constants-s390.h", + "src/execution/s390/simulator-s390.h", + "src/regexp/s390/regexp-macro-assembler-s390.h", + "src/wasm/baseline/s390/liftoff-assembler-s390.h", + ] + } else if (v8_current_cpu == "riscv64") { + sources += [ ### gcmole(arch:riscv64) ### + "src/codegen/riscv64/assembler-riscv64-inl.h", + "src/codegen/riscv64/assembler-riscv64.h", + "src/codegen/riscv64/constants-riscv64.h", + "src/codegen/riscv64/macro-assembler-riscv64.h", + "src/codegen/riscv64/register-riscv64.h", + "src/compiler/backend/riscv64/instruction-codes-riscv64.h", + "src/execution/riscv64/frame-constants-riscv64.h", + "src/execution/riscv64/simulator-riscv64.h", + "src/regexp/riscv64/regexp-macro-assembler-riscv64.h", + "src/wasm/baseline/riscv64/liftoff-assembler-riscv64.h", + ] + } + + public_deps = [ + ":torque_runtime_support", + ":v8_flags", + ":v8_headers", + ":v8_maybe_icu", + ":v8_shared_internal_headers", + ] + + deps = [ + ":cppgc_headers", + ":generate_bytecode_builtins_list", + ":run_torque", + ":v8_libbase", + ] +} + +v8_compiler_sources = [ + ### gcmole(all) ### + "src/compiler/access-builder.cc", + "src/compiler/access-info.cc", + "src/compiler/add-type-assertions-reducer.cc", + "src/compiler/all-nodes.cc", + "src/compiler/backend/code-generator.cc", + "src/compiler/backend/frame-elider.cc", + "src/compiler/backend/gap-resolver.cc", + "src/compiler/backend/instruction-scheduler.cc", + "src/compiler/backend/instruction-selector.cc", + "src/compiler/backend/instruction.cc", + "src/compiler/backend/jump-threading.cc", + "src/compiler/backend/mid-tier-register-allocator.cc", + "src/compiler/backend/move-optimizer.cc", + "src/compiler/backend/register-allocator-verifier.cc", + "src/compiler/backend/register-allocator.cc", + "src/compiler/backend/spill-placer.cc", + "src/compiler/basic-block-instrumentor.cc", + "src/compiler/branch-elimination.cc", + "src/compiler/bytecode-analysis.cc", + "src/compiler/bytecode-graph-builder.cc", + "src/compiler/bytecode-liveness-map.cc", + "src/compiler/c-linkage.cc", + "src/compiler/checkpoint-elimination.cc", + "src/compiler/code-assembler.cc", + "src/compiler/common-node-cache.cc", + "src/compiler/common-operator-reducer.cc", + "src/compiler/common-operator.cc", + "src/compiler/compilation-dependencies.cc", + "src/compiler/compiler-source-position-table.cc", + "src/compiler/constant-folding-reducer.cc", + "src/compiler/control-equivalence.cc", + "src/compiler/control-flow-optimizer.cc", + "src/compiler/csa-load-elimination.cc", + "src/compiler/dead-code-elimination.cc", + "src/compiler/decompression-optimizer.cc", + "src/compiler/effect-control-linearizer.cc", + "src/compiler/escape-analysis-reducer.cc", + "src/compiler/escape-analysis.cc", + "src/compiler/feedback-source.cc", + "src/compiler/frame-states.cc", + "src/compiler/frame.cc", + "src/compiler/graph-assembler.cc", + "src/compiler/graph-reducer.cc", + "src/compiler/graph-trimmer.cc", + "src/compiler/graph-visualizer.cc", + "src/compiler/graph.cc", + "src/compiler/js-call-reducer.cc", + "src/compiler/js-context-specialization.cc", + "src/compiler/js-create-lowering.cc", + "src/compiler/js-generic-lowering.cc", + "src/compiler/js-graph.cc", + "src/compiler/js-heap-broker.cc", + "src/compiler/js-heap-copy-reducer.cc", + "src/compiler/js-inlining-heuristic.cc", + "src/compiler/js-inlining.cc", + "src/compiler/js-intrinsic-lowering.cc", + "src/compiler/js-native-context-specialization.cc", + "src/compiler/js-operator.cc", + "src/compiler/js-type-hint-lowering.cc", + "src/compiler/js-typed-lowering.cc", + "src/compiler/linkage.cc", + "src/compiler/load-elimination.cc", + "src/compiler/loop-analysis.cc", + "src/compiler/loop-peeling.cc", + "src/compiler/loop-unrolling.cc", + "src/compiler/loop-variable-optimizer.cc", + "src/compiler/machine-graph-verifier.cc", + "src/compiler/machine-graph.cc", + "src/compiler/machine-operator-reducer.cc", + "src/compiler/machine-operator.cc", + "src/compiler/map-inference.cc", + "src/compiler/memory-lowering.cc", + "src/compiler/memory-optimizer.cc", + "src/compiler/node-marker.cc", + "src/compiler/node-matchers.cc", + "src/compiler/node-observer.cc", + "src/compiler/node-origin-table.cc", + "src/compiler/node-properties.cc", + "src/compiler/node.cc", + "src/compiler/opcodes.cc", + "src/compiler/operation-typer.cc", + "src/compiler/operator-properties.cc", + "src/compiler/operator.cc", + "src/compiler/osr.cc", + "src/compiler/pipeline-statistics.cc", + "src/compiler/pipeline.cc", + "src/compiler/property-access-builder.cc", + "src/compiler/raw-machine-assembler.cc", + "src/compiler/redundancy-elimination.cc", + "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", + "src/compiler/simplified-lowering.cc", + "src/compiler/simplified-operator-reducer.cc", + "src/compiler/simplified-operator.cc", + "src/compiler/state-values-utils.cc", + "src/compiler/store-store-elimination.cc", + "src/compiler/type-cache.cc", + "src/compiler/type-narrowing-reducer.cc", + "src/compiler/typed-optimization.cc", + "src/compiler/typer.cc", + "src/compiler/types.cc", + "src/compiler/value-numbering-reducer.cc", + "src/compiler/verifier.cc", + "src/compiler/zone-stats.cc", +] + +if (v8_enable_webassembly) { + v8_compiler_sources += [ + "src/compiler/int64-lowering.cc", + "src/compiler/simd-scalar-lowering.cc", + "src/compiler/wasm-compiler.cc", + ] +} + +# The src/compiler files with optimizations. +v8_source_set("v8_compiler_opt") { + visibility = [ ":*" ] # Only targets in this file can depend on this. + + sources = v8_compiler_sources + + public_deps = [ + ":generate_bytecode_builtins_list", + ":run_torque", + ":v8_maybe_icu", + ":v8_tracing", + ] + + deps = [ + ":v8_base_without_compiler", + ":v8_internal_headers", + ":v8_libbase", + ":v8_shared_internal_headers", + ] + + if (is_debug && !v8_optimized_debug && v8_enable_fast_mksnapshot) { + # The :no_optimize config is added to v8_add_configs in v8.gni. + remove_configs = [ "//build/config/compiler:no_optimize" ] + configs = [ ":always_optimize" ] + } else { + # Without this else branch, gn fails to generate build files for non-debug + # builds (because we try to remove a config that is not present). + # So we include it, even if this config is not used outside of debug builds. + configs = [ ":internal_config" ] + } +} + +# The src/compiler files with default optimization behavior. +v8_source_set("v8_compiler") { + visibility = [ ":*" ] # Only targets in this file can depend on this. + + sources = v8_compiler_sources + + public_deps = [ + ":generate_bytecode_builtins_list", + ":run_torque", + ":v8_internal_headers", + ":v8_maybe_icu", + ":v8_tracing", + ] + + deps = [ + ":v8_base_without_compiler", + ":v8_libbase", + ":v8_shared_internal_headers", + ] + + configs = [ ":internal_config" ] +} + +group("v8_compiler_for_mksnapshot") { + if (is_debug && !v8_optimized_debug && v8_enable_fast_mksnapshot) { + deps = [ ":v8_compiler_opt" ] + } else { + deps = [ ":v8_compiler" ] + } +} + +# Any target using trace events must directly or indirectly depend on +# v8_tracing. +group("v8_tracing") { + if (v8_use_perfetto) { + if (build_with_chromium) { + public_deps = [ "//third_party/perfetto:libperfetto" ] + } else { + public_deps = [ ":v8_libperfetto" ] + } + } +} + +v8_source_set("v8_base_without_compiler") { + visibility = [ ":*" ] # Only targets in this file can depend on this. + + # Split static libraries on windows into two. + split_count = 2 + + sources = [ + ### gcmole(all) ### + "src/api/api-arguments.cc", + "src/api/api-natives.cc", + "src/api/api.cc", + "src/ast/ast-function-literal-id-reindexer.cc", + "src/ast/ast-value-factory.cc", + "src/ast/ast.cc", + "src/ast/modules.cc", + "src/ast/prettyprinter.cc", + "src/ast/scopes.cc", + "src/ast/source-range-ast-visitor.cc", + "src/ast/variables.cc", + "src/baseline/baseline-compiler.cc", + "src/baseline/baseline.cc", + "src/baseline/bytecode-offset-iterator.cc", + "src/builtins/accessors.cc", + "src/builtins/builtins-api.cc", + "src/builtins/builtins-array.cc", + "src/builtins/builtins-arraybuffer.cc", + "src/builtins/builtins-async-module.cc", + "src/builtins/builtins-bigint.cc", + "src/builtins/builtins-callsite.cc", + "src/builtins/builtins-collections.cc", + "src/builtins/builtins-console.cc", + "src/builtins/builtins-dataview.cc", + "src/builtins/builtins-date.cc", + "src/builtins/builtins-error.cc", + "src/builtins/builtins-function.cc", + "src/builtins/builtins-global.cc", + "src/builtins/builtins-internal.cc", + "src/builtins/builtins-intl.cc", + "src/builtins/builtins-json.cc", + "src/builtins/builtins-number.cc", + "src/builtins/builtins-object.cc", + "src/builtins/builtins-reflect.cc", + "src/builtins/builtins-regexp.cc", + "src/builtins/builtins-sharedarraybuffer.cc", + "src/builtins/builtins-string.cc", + "src/builtins/builtins-symbol.cc", + "src/builtins/builtins-trace.cc", + "src/builtins/builtins-typed-array.cc", + "src/builtins/builtins-weak-refs.cc", + "src/builtins/builtins.cc", + "src/builtins/constants-table-builder.cc", + "src/codegen/aligned-slot-allocator.cc", + "src/codegen/assembler.cc", + "src/codegen/bailout-reason.cc", + "src/codegen/code-comments.cc", + "src/codegen/code-desc.cc", + "src/codegen/code-factory.cc", + "src/codegen/code-reference.cc", + "src/codegen/compilation-cache.cc", + "src/codegen/compiler.cc", + "src/codegen/constant-pool.cc", + "src/codegen/external-reference-encoder.cc", + "src/codegen/external-reference-table.cc", + "src/codegen/external-reference.cc", + "src/codegen/flush-instruction-cache.cc", + "src/codegen/handler-table.cc", + "src/codegen/interface-descriptors.cc", + "src/codegen/machine-type.cc", + "src/codegen/optimized-compilation-info.cc", + "src/codegen/pending-optimization-table.cc", + "src/codegen/register-configuration.cc", + "src/codegen/reloc-info.cc", + "src/codegen/safepoint-table.cc", + "src/codegen/source-position-table.cc", + "src/codegen/source-position.cc", + "src/codegen/string-constants.cc", + "src/codegen/tick-counter.cc", + "src/codegen/tnode.cc", + "src/codegen/turbo-assembler.cc", + "src/codegen/unoptimized-compilation-info.cc", + "src/common/assert-scope.cc", + "src/compiler-dispatcher/compiler-dispatcher.cc", + "src/compiler-dispatcher/optimizing-compile-dispatcher.cc", + "src/date/date.cc", + "src/date/dateparser.cc", + "src/debug/debug-coverage.cc", + "src/debug/debug-evaluate.cc", + "src/debug/debug-frames.cc", + "src/debug/debug-interface.cc", + "src/debug/debug-property-iterator.cc", + "src/debug/debug-scope-iterator.cc", + "src/debug/debug-scopes.cc", + "src/debug/debug-stack-trace-iterator.cc", + "src/debug/debug-type-profile.cc", + "src/debug/debug.cc", + "src/debug/liveedit.cc", + "src/deoptimizer/deoptimize-reason.cc", + "src/deoptimizer/deoptimized-frame-info.cc", + "src/deoptimizer/deoptimizer.cc", + "src/deoptimizer/materialized-object-store.cc", + "src/deoptimizer/translated-state.cc", + "src/deoptimizer/translation-array.cc", + "src/diagnostics/basic-block-profiler.cc", + "src/diagnostics/compilation-statistics.cc", + "src/diagnostics/disassembler.cc", + "src/diagnostics/eh-frame.cc", + "src/diagnostics/gdb-jit.cc", + "src/diagnostics/objects-debug.cc", + "src/diagnostics/objects-printer.cc", + "src/diagnostics/perf-jit.cc", + "src/diagnostics/unwinder.cc", + "src/execution/arguments.cc", + "src/execution/execution.cc", + "src/execution/external-pointer-table.cc", + "src/execution/frames.cc", + "src/execution/futex-emulation.cc", + "src/execution/interrupts-scope.cc", + "src/execution/isolate.cc", + "src/execution/local-isolate.cc", + "src/execution/messages.cc", + "src/execution/microtask-queue.cc", + "src/execution/protectors.cc", + "src/execution/runtime-profiler.cc", + "src/execution/simulator-base.cc", + "src/execution/stack-guard.cc", + "src/execution/thread-id.cc", + "src/execution/thread-local-top.cc", + "src/execution/v8threads.cc", + "src/extensions/cputracemark-extension.cc", + "src/extensions/externalize-string-extension.cc", + "src/extensions/gc-extension.cc", + "src/extensions/ignition-statistics-extension.cc", + "src/extensions/statistics-extension.cc", + "src/extensions/trigger-failure-extension.cc", + "src/flags/flags.cc", + "src/handles/global-handles.cc", + "src/handles/handles.cc", + "src/handles/local-handles.cc", + "src/handles/persistent-handles.cc", + "src/heap/allocation-observer.cc", + "src/heap/array-buffer-sweeper.cc", + "src/heap/base-space.cc", + "src/heap/basic-memory-chunk.cc", + "src/heap/code-object-registry.cc", + "src/heap/code-stats.cc", + "src/heap/collection-barrier.cc", + "src/heap/combined-heap.cc", + "src/heap/concurrent-allocator.cc", + "src/heap/concurrent-marking.cc", + "src/heap/cppgc-js/cpp-heap.cc", + "src/heap/cppgc-js/cpp-snapshot.cc", + "src/heap/cppgc-js/unified-heap-marking-verifier.cc", + "src/heap/cppgc-js/unified-heap-marking-visitor.cc", + "src/heap/embedder-tracing.cc", + "src/heap/factory-base.cc", + "src/heap/factory.cc", + "src/heap/finalization-registry-cleanup-task.cc", + "src/heap/free-list.cc", + "src/heap/gc-idle-time-handler.cc", + "src/heap/gc-tracer.cc", + "src/heap/heap-controller.cc", + "src/heap/heap-write-barrier.cc", + "src/heap/heap.cc", + "src/heap/incremental-marking-job.cc", + "src/heap/incremental-marking.cc", + "src/heap/index-generator.cc", + "src/heap/invalidated-slots.cc", + "src/heap/large-spaces.cc", + "src/heap/local-factory.cc", + "src/heap/local-heap.cc", + "src/heap/mark-compact.cc", + "src/heap/marking-barrier.cc", + "src/heap/marking-worklist.cc", + "src/heap/marking.cc", + "src/heap/memory-allocator.cc", + "src/heap/memory-chunk-layout.cc", + "src/heap/memory-chunk.cc", + "src/heap/memory-measurement.cc", + "src/heap/memory-reducer.cc", + "src/heap/new-spaces.cc", + "src/heap/object-stats.cc", + "src/heap/objects-visiting.cc", + "src/heap/paged-spaces.cc", + "src/heap/read-only-heap.cc", + "src/heap/read-only-spaces.cc", + "src/heap/safepoint.cc", + "src/heap/scavenge-job.cc", + "src/heap/scavenger.cc", + "src/heap/slot-set.cc", + "src/heap/spaces.cc", + "src/heap/stress-marking-observer.cc", + "src/heap/stress-scavenge-observer.cc", + "src/heap/sweeper.cc", + "src/heap/weak-object-worklists.cc", + "src/ic/call-optimization.cc", + "src/ic/handler-configuration.cc", + "src/ic/ic-stats.cc", + "src/ic/ic.cc", + "src/ic/stub-cache.cc", + "src/init/bootstrapper.cc", + "src/init/icu_util.cc", + "src/init/isolate-allocator.cc", + "src/init/startup-data-util.cc", + "src/init/v8.cc", + "src/interpreter/bytecode-array-builder.cc", + "src/interpreter/bytecode-array-iterator.cc", + "src/interpreter/bytecode-array-random-iterator.cc", + "src/interpreter/bytecode-array-writer.cc", + "src/interpreter/bytecode-decoder.cc", + "src/interpreter/bytecode-flags.cc", + "src/interpreter/bytecode-generator.cc", + "src/interpreter/bytecode-label.cc", + "src/interpreter/bytecode-node.cc", + "src/interpreter/bytecode-operands.cc", + "src/interpreter/bytecode-register-optimizer.cc", + "src/interpreter/bytecode-register.cc", + "src/interpreter/bytecode-source-info.cc", + "src/interpreter/bytecodes.cc", + "src/interpreter/constant-array-builder.cc", + "src/interpreter/control-flow-builders.cc", + "src/interpreter/handler-table-builder.cc", + "src/interpreter/interpreter-intrinsics.cc", + "src/interpreter/interpreter.cc", + "src/json/json-parser.cc", + "src/json/json-stringifier.cc", + "src/libsampler/sampler.cc", + "src/logging/counters.cc", + "src/logging/local-logger.cc", + "src/logging/log-utils.cc", + "src/logging/log.cc", + "src/logging/metrics.cc", + "src/logging/tracing-flags.cc", + "src/numbers/bignum-dtoa.cc", + "src/numbers/bignum.cc", + "src/numbers/cached-powers.cc", + "src/numbers/conversions.cc", + "src/numbers/diy-fp.cc", + "src/numbers/dtoa.cc", + "src/numbers/fast-dtoa.cc", + "src/numbers/fixed-dtoa.cc", + "src/numbers/math-random.cc", + "src/numbers/strtod.cc", + "src/objects/backing-store.cc", + "src/objects/bigint.cc", + "src/objects/code-kind.cc", + "src/objects/code.cc", + "src/objects/compilation-cache-table.cc", + "src/objects/contexts.cc", + "src/objects/debug-objects.cc", + "src/objects/elements-kind.cc", + "src/objects/elements.cc", + "src/objects/embedder-data-array.cc", + "src/objects/feedback-vector.cc", + "src/objects/field-type.cc", + "src/objects/intl-objects.cc", + "src/objects/js-array-buffer.cc", + "src/objects/js-break-iterator.cc", + "src/objects/js-collator.cc", + "src/objects/js-date-time-format.cc", + "src/objects/js-display-names.cc", + "src/objects/js-function.cc", + "src/objects/js-list-format.cc", + "src/objects/js-locale.cc", + "src/objects/js-number-format.cc", + "src/objects/js-objects.cc", + "src/objects/js-plural-rules.cc", + "src/objects/js-regexp.cc", + "src/objects/js-relative-time-format.cc", + "src/objects/js-segment-iterator.cc", + "src/objects/js-segmenter.cc", + "src/objects/js-segments.cc", + "src/objects/keys.cc", + "src/objects/literal-objects.cc", + "src/objects/lookup-cache.cc", + "src/objects/lookup.cc", + "src/objects/managed.cc", + "src/objects/map-updater.cc", + "src/objects/map.cc", + "src/objects/module.cc", + "src/objects/objects.cc", + "src/objects/ordered-hash-table.cc", + "src/objects/osr-optimized-code-cache.cc", + "src/objects/property-descriptor.cc", + "src/objects/property.cc", + "src/objects/scope-info.cc", + "src/objects/shared-function-info.cc", + "src/objects/source-text-module.cc", + "src/objects/stack-frame-info.cc", + "src/objects/string-comparator.cc", + "src/objects/string-table.cc", + "src/objects/string.cc", + "src/objects/swiss-name-dictionary.cc", + "src/objects/synthetic-module.cc", + "src/objects/tagged-impl.cc", + "src/objects/template-objects.cc", + "src/objects/transitions.cc", + "src/objects/type-hints.cc", + "src/objects/value-serializer.cc", + "src/objects/visitors.cc", + "src/parsing/func-name-inferrer.cc", + "src/parsing/import-assertions.cc", + "src/parsing/literal-buffer.cc", + "src/parsing/parse-info.cc", + "src/parsing/parser.cc", + "src/parsing/parsing.cc", + "src/parsing/pending-compilation-error-handler.cc", + "src/parsing/preparse-data.cc", + "src/parsing/preparser.cc", + "src/parsing/rewriter.cc", + "src/parsing/scanner-character-streams.cc", + "src/parsing/scanner.cc", + "src/parsing/token.cc", + "src/profiler/allocation-tracker.cc", + "src/profiler/cpu-profiler.cc", + "src/profiler/heap-profiler.cc", + "src/profiler/heap-snapshot-generator.cc", + "src/profiler/profile-generator.cc", + "src/profiler/profiler-listener.cc", + "src/profiler/profiler-stats.cc", + "src/profiler/sampling-heap-profiler.cc", + "src/profiler/strings-storage.cc", + "src/profiler/symbolizer.cc", + "src/profiler/tick-sample.cc", + "src/profiler/tracing-cpu-profiler.cc", + "src/profiler/weak-code-registry.cc", + "src/regexp/experimental/experimental-bytecode.cc", + "src/regexp/experimental/experimental-compiler.cc", + "src/regexp/experimental/experimental-interpreter.cc", + "src/regexp/experimental/experimental.cc", + "src/regexp/property-sequences.cc", + "src/regexp/regexp-ast.cc", + "src/regexp/regexp-bytecode-generator.cc", + "src/regexp/regexp-bytecode-peephole.cc", + "src/regexp/regexp-bytecodes.cc", + "src/regexp/regexp-compiler-tonode.cc", + "src/regexp/regexp-compiler.cc", + "src/regexp/regexp-dotprinter.cc", + "src/regexp/regexp-error.cc", + "src/regexp/regexp-interpreter.cc", + "src/regexp/regexp-macro-assembler-tracer.cc", + "src/regexp/regexp-macro-assembler.cc", + "src/regexp/regexp-parser.cc", + "src/regexp/regexp-stack.cc", + "src/regexp/regexp-utils.cc", + "src/regexp/regexp.cc", + "src/roots/roots.cc", + "src/runtime/runtime-array.cc", + "src/runtime/runtime-atomics.cc", + "src/runtime/runtime-bigint.cc", + "src/runtime/runtime-classes.cc", + "src/runtime/runtime-collections.cc", + "src/runtime/runtime-compiler.cc", + "src/runtime/runtime-date.cc", + "src/runtime/runtime-debug.cc", + "src/runtime/runtime-forin.cc", + "src/runtime/runtime-function.cc", + "src/runtime/runtime-futex.cc", + "src/runtime/runtime-generator.cc", + "src/runtime/runtime-internal.cc", + "src/runtime/runtime-intl.cc", + "src/runtime/runtime-literals.cc", + "src/runtime/runtime-module.cc", + "src/runtime/runtime-numbers.cc", + "src/runtime/runtime-object.cc", + "src/runtime/runtime-operators.cc", + "src/runtime/runtime-promise.cc", + "src/runtime/runtime-proxy.cc", + "src/runtime/runtime-regexp.cc", + "src/runtime/runtime-scopes.cc", + "src/runtime/runtime-strings.cc", + "src/runtime/runtime-symbol.cc", + "src/runtime/runtime-test.cc", + "src/runtime/runtime-trace.cc", + "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/code-serializer.h", "src/snapshot/context-deserializer.cc", - "src/snapshot/context-deserializer.h", "src/snapshot/context-serializer.cc", - "src/snapshot/context-serializer.h", "src/snapshot/deserializer.cc", - "src/snapshot/deserializer.h", "src/snapshot/embedded/embedded-data.cc", - "src/snapshot/embedded/embedded-data.h", "src/snapshot/object-deserializer.cc", - "src/snapshot/object-deserializer.h", "src/snapshot/read-only-deserializer.cc", - "src/snapshot/read-only-deserializer.h", "src/snapshot/read-only-serializer.cc", - "src/snapshot/read-only-serializer.h", - "src/snapshot/references.h", "src/snapshot/roots-serializer.cc", - "src/snapshot/roots-serializer.h", "src/snapshot/serializer-deserializer.cc", - "src/snapshot/serializer-deserializer.h", "src/snapshot/serializer.cc", - "src/snapshot/serializer.h", "src/snapshot/snapshot-compression.cc", - "src/snapshot/snapshot-compression.h", "src/snapshot/snapshot-data.cc", - "src/snapshot/snapshot-data.h", "src/snapshot/snapshot-source-sink.cc", - "src/snapshot/snapshot-source-sink.h", "src/snapshot/snapshot-utils.cc", - "src/snapshot/snapshot-utils.h", "src/snapshot/snapshot.cc", - "src/snapshot/snapshot.h", "src/snapshot/startup-deserializer.cc", - "src/snapshot/startup-deserializer.h", "src/snapshot/startup-serializer.cc", - "src/snapshot/startup-serializer.h", - "src/strings/char-predicates-inl.h", "src/strings/char-predicates.cc", - "src/strings/char-predicates.h", - "src/strings/string-builder-inl.h", "src/strings/string-builder.cc", "src/strings/string-case.cc", - "src/strings/string-case.h", - "src/strings/string-hasher-inl.h", - "src/strings/string-hasher.h", - "src/strings/string-search.h", "src/strings/string-stream.cc", - "src/strings/string-stream.h", "src/strings/unicode-decoder.cc", - "src/strings/unicode-decoder.h", - "src/strings/unicode-inl.h", "src/strings/unicode.cc", - "src/strings/unicode.h", "src/strings/uri.cc", - "src/strings/uri.h", "src/tasks/cancelable-task.cc", - "src/tasks/cancelable-task.h", "src/tasks/operations-barrier.cc", - "src/tasks/operations-barrier.h", "src/tasks/task-utils.cc", - "src/tasks/task-utils.h", "src/third_party/siphash/halfsiphash.cc", - "src/third_party/siphash/halfsiphash.h", - "src/third_party/utf8-decoder/utf8-decoder.h", "src/tracing/trace-event.cc", - "src/tracing/trace-event.h", "src/tracing/traced-value.cc", - "src/tracing/traced-value.h", "src/tracing/tracing-category-observer.cc", - "src/tracing/tracing-category-observer.h", "src/trap-handler/handler-inside.cc", "src/trap-handler/handler-outside.cc", "src/trap-handler/handler-shared.cc", - "src/trap-handler/trap-handler-internal.h", - "src/trap-handler/trap-handler.h", "src/utils/address-map.cc", - "src/utils/address-map.h", "src/utils/allocation.cc", - "src/utils/allocation.h", "src/utils/bit-vector.cc", - "src/utils/bit-vector.h", - "src/utils/boxed-float.h", "src/utils/detachable-vector.cc", - "src/utils/detachable-vector.h", "src/utils/identity-map.cc", - "src/utils/identity-map.h", - "src/utils/locked-queue-inl.h", - "src/utils/locked-queue.h", "src/utils/memcopy.cc", - "src/utils/memcopy.h", "src/utils/ostreams.cc", - "src/utils/ostreams.h", - "src/utils/pointer-with-payload.h", - "src/utils/scoped-list.h", - "src/utils/utils-inl.h", "src/utils/utils.cc", - "src/utils/utils.h", - "src/utils/vector.h", "src/utils/version.cc", - "src/utils/version.h", - "src/wasm/baseline/liftoff-assembler-defs.h", - "src/wasm/baseline/liftoff-assembler.cc", - "src/wasm/baseline/liftoff-assembler.h", - "src/wasm/baseline/liftoff-compiler.cc", - "src/wasm/baseline/liftoff-compiler.h", - "src/wasm/baseline/liftoff-register.h", - "src/wasm/code-space-access.h", - "src/wasm/compilation-environment.h", - "src/wasm/decoder.h", - "src/wasm/function-body-decoder-impl.h", - "src/wasm/function-body-decoder.cc", - "src/wasm/function-body-decoder.h", - "src/wasm/function-compiler.cc", - "src/wasm/function-compiler.h", - "src/wasm/graph-builder-interface.cc", - "src/wasm/graph-builder-interface.h", - "src/wasm/jump-table-assembler.cc", - "src/wasm/jump-table-assembler.h", - "src/wasm/leb-helper.h", - "src/wasm/local-decl-encoder.cc", - "src/wasm/local-decl-encoder.h", - "src/wasm/memory-tracing.cc", - "src/wasm/memory-tracing.h", - "src/wasm/module-compiler.cc", - "src/wasm/module-compiler.h", - "src/wasm/module-decoder.cc", - "src/wasm/module-decoder.h", - "src/wasm/module-instantiate.cc", - "src/wasm/module-instantiate.h", - "src/wasm/object-access.h", - "src/wasm/signature-map.cc", - "src/wasm/signature-map.h", - "src/wasm/simd-shuffle.cc", - "src/wasm/simd-shuffle.h", - "src/wasm/streaming-decoder.cc", - "src/wasm/streaming-decoder.h", - "src/wasm/struct-types.h", - "src/wasm/sync-streaming-decoder.cc", - "src/wasm/value-type.cc", - "src/wasm/value-type.h", - "src/wasm/wasm-arguments.h", - "src/wasm/wasm-code-manager.cc", - "src/wasm/wasm-code-manager.h", - "src/wasm/wasm-constants.h", - "src/wasm/wasm-debug.cc", - "src/wasm/wasm-engine.cc", - "src/wasm/wasm-engine.h", - "src/wasm/wasm-external-refs.cc", - "src/wasm/wasm-external-refs.h", - "src/wasm/wasm-feature-flags.h", - "src/wasm/wasm-features.cc", - "src/wasm/wasm-features.h", - "src/wasm/wasm-import-wrapper-cache.cc", - "src/wasm/wasm-import-wrapper-cache.h", - "src/wasm/wasm-js.cc", - "src/wasm/wasm-js.h", - "src/wasm/wasm-limits.h", - "src/wasm/wasm-linkage.h", - "src/wasm/wasm-module-builder.cc", - "src/wasm/wasm-module-builder.h", - "src/wasm/wasm-module-sourcemap.cc", - "src/wasm/wasm-module-sourcemap.h", - "src/wasm/wasm-module.cc", - "src/wasm/wasm-module.h", - "src/wasm/wasm-objects-inl.h", - "src/wasm/wasm-objects.cc", - "src/wasm/wasm-objects.h", - "src/wasm/wasm-opcodes.cc", - "src/wasm/wasm-opcodes.h", - "src/wasm/wasm-result.cc", - "src/wasm/wasm-result.h", - "src/wasm/wasm-serialization.cc", - "src/wasm/wasm-serialization.h", - "src/wasm/wasm-subtyping.cc", - "src/wasm/wasm-subtyping.h", - "src/wasm/wasm-tier.h", - "src/wasm/wasm-value.h", + "src/web-snapshot/web-snapshot.cc", + "src/web-snapshot/web-snapshot.h", "src/zone/accounting-allocator.cc", - "src/zone/accounting-allocator.h", - "src/zone/compressed-zone-ptr.h", "src/zone/type-stats.cc", - "src/zone/type-stats.h", - "src/zone/zone-allocator.h", - "src/zone/zone-chunk-list.h", - "src/zone/zone-compression.h", - "src/zone/zone-containers.h", - "src/zone/zone-handle-set.h", - "src/zone/zone-hashmap.h", - "src/zone/zone-list-inl.h", - "src/zone/zone-list.h", "src/zone/zone-segment.cc", - "src/zone/zone-segment.h", - "src/zone/zone-type-traits.h", - "src/zone/zone-utils.h", "src/zone/zone.cc", - "src/zone/zone.h", ] if (v8_enable_webassembly) { sources += [ "src/asmjs/asm-js.cc", - "src/asmjs/asm-js.h", - "src/asmjs/asm-names.h", "src/asmjs/asm-parser.cc", - "src/asmjs/asm-parser.h", "src/asmjs/asm-scanner.cc", - "src/asmjs/asm-scanner.h", "src/asmjs/asm-types.cc", - "src/asmjs/asm-types.h", + "src/debug/debug-wasm-objects.cc", + "src/runtime/runtime-test-wasm.cc", + "src/runtime/runtime-wasm.cc", + "src/wasm/baseline/liftoff-assembler.cc", + "src/wasm/baseline/liftoff-compiler.cc", + "src/wasm/function-body-decoder.cc", + "src/wasm/function-compiler.cc", + "src/wasm/graph-builder-interface.cc", + "src/wasm/jump-table-assembler.cc", + "src/wasm/local-decl-encoder.cc", + "src/wasm/memory-tracing.cc", + "src/wasm/module-compiler.cc", + "src/wasm/module-decoder.cc", + "src/wasm/module-instantiate.cc", + "src/wasm/signature-map.cc", + "src/wasm/simd-shuffle.cc", + "src/wasm/streaming-decoder.cc", + "src/wasm/sync-streaming-decoder.cc", + "src/wasm/value-type.cc", + "src/wasm/wasm-code-manager.cc", + "src/wasm/wasm-debug.cc", + "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-js.cc", + "src/wasm/wasm-module-builder.cc", + "src/wasm/wasm-module-sourcemap.cc", + "src/wasm/wasm-module.cc", + "src/wasm/wasm-objects.cc", + "src/wasm/wasm-opcodes.cc", + "src/wasm/wasm-result.cc", + "src/wasm/wasm-serialization.cc", + "src/wasm/wasm-subtyping.cc", ] } - if (!v8_control_flow_integrity) { - sources += [ "src/execution/pointer-authentication-dummy.h" ] - } - if (v8_enable_third_party_heap) { sources += v8_third_party_heap_files } else { @@ -3683,31 +4011,19 @@ v8_source_set("v8_base_without_compiler") { } if (v8_enable_conservative_stack_scanning) { - sources += [ - "src/heap/conservative-stack-visitor.cc", - "src/heap/conservative-stack-visitor.h", - "src/heap/object-start-bitmap.h", - ] + sources += [ "src/heap/conservative-stack-visitor.cc" ] } if (v8_enable_wasm_gdb_remote_debugging) { sources += [ "src/debug/wasm/gdb-server/gdb-remote-util.cc", - "src/debug/wasm/gdb-server/gdb-remote-util.h", "src/debug/wasm/gdb-server/gdb-server-thread.cc", - "src/debug/wasm/gdb-server/gdb-server-thread.h", "src/debug/wasm/gdb-server/gdb-server.cc", - "src/debug/wasm/gdb-server/gdb-server.h", "src/debug/wasm/gdb-server/packet.cc", - "src/debug/wasm/gdb-server/packet.h", "src/debug/wasm/gdb-server/session.cc", - "src/debug/wasm/gdb-server/session.h", "src/debug/wasm/gdb-server/target.cc", - "src/debug/wasm/gdb-server/target.h", "src/debug/wasm/gdb-server/transport.cc", - "src/debug/wasm/gdb-server/transport.h", "src/debug/wasm/gdb-server/wasm-module-debug.cc", - "src/debug/wasm/gdb-server/wasm-module-debug.h", ] } @@ -3720,20 +4036,12 @@ v8_source_set("v8_base_without_compiler") { if (v8_current_cpu == "x86") { sources += [ ### gcmole(arch:ia32) ### - "src/baseline/ia32/baseline-assembler-ia32-inl.h", - "src/baseline/ia32/baseline-compiler-ia32-inl.h", - "src/codegen/ia32/assembler-ia32-inl.h", "src/codegen/ia32/assembler-ia32.cc", - "src/codegen/ia32/assembler-ia32.h", - "src/codegen/ia32/constants-ia32.h", "src/codegen/ia32/cpu-ia32.cc", "src/codegen/ia32/interface-descriptors-ia32.cc", "src/codegen/ia32/macro-assembler-ia32.cc", - "src/codegen/ia32/macro-assembler-ia32.h", - "src/codegen/ia32/register-ia32.h", - "src/codegen/ia32/sse-instr.h", + "src/codegen/shared-ia32-x64/macro-assembler-shared-ia32-x64.cc", "src/compiler/backend/ia32/code-generator-ia32.cc", - "src/compiler/backend/ia32/instruction-codes-ia32.h", "src/compiler/backend/ia32/instruction-scheduler-ia32.cc", "src/compiler/backend/ia32/instruction-selector-ia32.cc", "src/debug/ia32/debug-ia32.cc", @@ -3741,43 +4049,26 @@ v8_source_set("v8_base_without_compiler") { "src/diagnostics/ia32/disasm-ia32.cc", "src/diagnostics/ia32/unwinder-ia32.cc", "src/execution/ia32/frame-constants-ia32.cc", - "src/execution/ia32/frame-constants-ia32.h", "src/regexp/ia32/regexp-macro-assembler-ia32.cc", - "src/regexp/ia32/regexp-macro-assembler-ia32.h", - "src/wasm/baseline/ia32/liftoff-assembler-ia32.h", ] } else if (v8_current_cpu == "x64") { sources += [ ### gcmole(arch:x64) ### - "src/baseline/x64/baseline-assembler-x64-inl.h", - "src/baseline/x64/baseline-compiler-x64-inl.h", - "src/codegen/x64/assembler-x64-inl.h", + "src/codegen/shared-ia32-x64/macro-assembler-shared-ia32-x64.cc", "src/codegen/x64/assembler-x64.cc", - "src/codegen/x64/assembler-x64.h", - "src/codegen/x64/constants-x64.h", "src/codegen/x64/cpu-x64.cc", - "src/codegen/x64/fma-instr.h", "src/codegen/x64/interface-descriptors-x64.cc", "src/codegen/x64/macro-assembler-x64.cc", - "src/codegen/x64/macro-assembler-x64.h", - "src/codegen/x64/register-x64.h", - "src/codegen/x64/sse-instr.h", "src/compiler/backend/x64/code-generator-x64.cc", - "src/compiler/backend/x64/instruction-codes-x64.h", "src/compiler/backend/x64/instruction-scheduler-x64.cc", "src/compiler/backend/x64/instruction-selector-x64.cc", "src/compiler/backend/x64/unwinding-info-writer-x64.cc", - "src/compiler/backend/x64/unwinding-info-writer-x64.h", "src/debug/x64/debug-x64.cc", "src/deoptimizer/x64/deoptimizer-x64.cc", "src/diagnostics/x64/disasm-x64.cc", "src/diagnostics/x64/eh-frame-x64.cc", "src/diagnostics/x64/unwinder-x64.cc", "src/execution/x64/frame-constants-x64.cc", - "src/execution/x64/frame-constants-x64.h", "src/regexp/x64/regexp-macro-assembler-x64.cc", - "src/regexp/x64/regexp-macro-assembler-x64.h", - "src/third_party/valgrind/valgrind.h", - "src/wasm/baseline/x64/liftoff-assembler-x64.h", ] # iOS Xcode simulator builds run on an x64 target. iOS and macOS are both @@ -3785,129 +4076,79 @@ v8_source_set("v8_base_without_compiler") { if (is_linux || is_chromeos || is_mac || is_ios || target_os == "freebsd") { sources += [ "src/trap-handler/handler-inside-posix.cc", - "src/trap-handler/handler-inside-posix.h", "src/trap-handler/handler-outside-posix.cc", ] } if (is_win) { sources += [ "src/diagnostics/unwinding-info-win64.cc", - "src/diagnostics/unwinding-info-win64.h", "src/trap-handler/handler-inside-win.cc", - "src/trap-handler/handler-inside-win.h", "src/trap-handler/handler-outside-win.cc", ] } } else if (v8_current_cpu == "arm") { sources += [ ### gcmole(arch:arm) ### - "src/baseline/arm/baseline-assembler-arm-inl.h", - "src/baseline/arm/baseline-compiler-arm-inl.h", - "src/codegen/arm/assembler-arm-inl.h", "src/codegen/arm/assembler-arm.cc", - "src/codegen/arm/assembler-arm.h", "src/codegen/arm/constants-arm.cc", - "src/codegen/arm/constants-arm.h", "src/codegen/arm/cpu-arm.cc", "src/codegen/arm/interface-descriptors-arm.cc", "src/codegen/arm/macro-assembler-arm.cc", - "src/codegen/arm/macro-assembler-arm.h", - "src/codegen/arm/register-arm.h", "src/compiler/backend/arm/code-generator-arm.cc", - "src/compiler/backend/arm/instruction-codes-arm.h", "src/compiler/backend/arm/instruction-scheduler-arm.cc", "src/compiler/backend/arm/instruction-selector-arm.cc", "src/compiler/backend/arm/unwinding-info-writer-arm.cc", - "src/compiler/backend/arm/unwinding-info-writer-arm.h", "src/debug/arm/debug-arm.cc", "src/deoptimizer/arm/deoptimizer-arm.cc", "src/diagnostics/arm/disasm-arm.cc", "src/diagnostics/arm/eh-frame-arm.cc", "src/diagnostics/arm/unwinder-arm.cc", "src/execution/arm/frame-constants-arm.cc", - "src/execution/arm/frame-constants-arm.h", "src/execution/arm/simulator-arm.cc", - "src/execution/arm/simulator-arm.h", "src/regexp/arm/regexp-macro-assembler-arm.cc", - "src/regexp/arm/regexp-macro-assembler-arm.h", - "src/wasm/baseline/arm/liftoff-assembler-arm.h", ] } else if (v8_current_cpu == "arm64") { sources += [ ### gcmole(arch:arm64) ### - "src/baseline/arm64/baseline-assembler-arm64-inl.h", - "src/baseline/arm64/baseline-compiler-arm64-inl.h", - "src/codegen/arm64/assembler-arm64-inl.h", "src/codegen/arm64/assembler-arm64.cc", - "src/codegen/arm64/assembler-arm64.h", - "src/codegen/arm64/constants-arm64.h", "src/codegen/arm64/cpu-arm64.cc", - "src/codegen/arm64/decoder-arm64-inl.h", "src/codegen/arm64/decoder-arm64.cc", - "src/codegen/arm64/decoder-arm64.h", "src/codegen/arm64/instructions-arm64-constants.cc", "src/codegen/arm64/instructions-arm64.cc", - "src/codegen/arm64/instructions-arm64.h", "src/codegen/arm64/interface-descriptors-arm64.cc", - "src/codegen/arm64/macro-assembler-arm64-inl.h", "src/codegen/arm64/macro-assembler-arm64.cc", - "src/codegen/arm64/macro-assembler-arm64.h", "src/codegen/arm64/register-arm64.cc", - "src/codegen/arm64/register-arm64.h", "src/codegen/arm64/utils-arm64.cc", - "src/codegen/arm64/utils-arm64.h", "src/compiler/backend/arm64/code-generator-arm64.cc", - "src/compiler/backend/arm64/instruction-codes-arm64.h", "src/compiler/backend/arm64/instruction-scheduler-arm64.cc", "src/compiler/backend/arm64/instruction-selector-arm64.cc", "src/compiler/backend/arm64/unwinding-info-writer-arm64.cc", - "src/compiler/backend/arm64/unwinding-info-writer-arm64.h", "src/debug/arm64/debug-arm64.cc", "src/deoptimizer/arm64/deoptimizer-arm64.cc", "src/diagnostics/arm64/disasm-arm64.cc", - "src/diagnostics/arm64/disasm-arm64.h", "src/diagnostics/arm64/eh-frame-arm64.cc", "src/diagnostics/arm64/unwinder-arm64.cc", "src/execution/arm64/frame-constants-arm64.cc", - "src/execution/arm64/frame-constants-arm64.h", "src/execution/arm64/pointer-auth-arm64.cc", "src/execution/arm64/simulator-arm64.cc", - "src/execution/arm64/simulator-arm64.h", "src/execution/arm64/simulator-logic-arm64.cc", "src/regexp/arm64/regexp-macro-assembler-arm64.cc", - "src/regexp/arm64/regexp-macro-assembler-arm64.h", - "src/wasm/baseline/arm64/liftoff-assembler-arm64.h", ] - if (v8_control_flow_integrity) { - sources += [ "src/execution/arm64/pointer-authentication-arm64.h" ] - } if (current_cpu == "arm64" && is_mac) { sources += [ "src/trap-handler/handler-inside-posix.cc", - "src/trap-handler/handler-inside-posix.h", "src/trap-handler/handler-outside-posix.cc", ] } if (is_win) { - sources += [ - "src/diagnostics/unwinding-info-win64.cc", - "src/diagnostics/unwinding-info-win64.h", - ] + sources += [ "src/diagnostics/unwinding-info-win64.cc" ] } } else if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel") { sources += [ ### gcmole(arch:mipsel) ### - "src/baseline/mips/baseline-assembler-mips-inl.h", - "src/baseline/mips/baseline-compiler-mips-inl.h", - "src/codegen/mips/assembler-mips-inl.h", "src/codegen/mips/assembler-mips.cc", - "src/codegen/mips/assembler-mips.h", "src/codegen/mips/constants-mips.cc", - "src/codegen/mips/constants-mips.h", "src/codegen/mips/cpu-mips.cc", "src/codegen/mips/interface-descriptors-mips.cc", "src/codegen/mips/macro-assembler-mips.cc", - "src/codegen/mips/macro-assembler-mips.h", - "src/codegen/mips/register-mips.h", "src/compiler/backend/mips/code-generator-mips.cc", - "src/compiler/backend/mips/instruction-codes-mips.h", "src/compiler/backend/mips/instruction-scheduler-mips.cc", "src/compiler/backend/mips/instruction-selector-mips.cc", "src/debug/mips/debug-mips.cc", @@ -3915,29 +4156,17 @@ v8_source_set("v8_base_without_compiler") { "src/diagnostics/mips/disasm-mips.cc", "src/diagnostics/mips/unwinder-mips.cc", "src/execution/mips/frame-constants-mips.cc", - "src/execution/mips/frame-constants-mips.h", "src/execution/mips/simulator-mips.cc", - "src/execution/mips/simulator-mips.h", "src/regexp/mips/regexp-macro-assembler-mips.cc", - "src/regexp/mips/regexp-macro-assembler-mips.h", - "src/wasm/baseline/mips/liftoff-assembler-mips.h", ] } else if (v8_current_cpu == "mips64" || v8_current_cpu == "mips64el") { sources += [ ### gcmole(arch:mips64el) ### - "src/baseline/mips64/baseline-assembler-mips64-inl.h", - "src/baseline/mips64/baseline-compiler-mips64-inl.h", - "src/codegen/mips64/assembler-mips64-inl.h", "src/codegen/mips64/assembler-mips64.cc", - "src/codegen/mips64/assembler-mips64.h", "src/codegen/mips64/constants-mips64.cc", - "src/codegen/mips64/constants-mips64.h", "src/codegen/mips64/cpu-mips64.cc", "src/codegen/mips64/interface-descriptors-mips64.cc", "src/codegen/mips64/macro-assembler-mips64.cc", - "src/codegen/mips64/macro-assembler-mips64.h", - "src/codegen/mips64/register-mips64.h", "src/compiler/backend/mips64/code-generator-mips64.cc", - "src/compiler/backend/mips64/instruction-codes-mips64.h", "src/compiler/backend/mips64/instruction-scheduler-mips64.cc", "src/compiler/backend/mips64/instruction-selector-mips64.cc", "src/debug/mips64/debug-mips64.cc", @@ -3945,126 +4174,77 @@ v8_source_set("v8_base_without_compiler") { "src/diagnostics/mips64/disasm-mips64.cc", "src/diagnostics/mips64/unwinder-mips64.cc", "src/execution/mips64/frame-constants-mips64.cc", - "src/execution/mips64/frame-constants-mips64.h", "src/execution/mips64/simulator-mips64.cc", - "src/execution/mips64/simulator-mips64.h", "src/regexp/mips64/regexp-macro-assembler-mips64.cc", - "src/regexp/mips64/regexp-macro-assembler-mips64.h", - "src/wasm/baseline/mips64/liftoff-assembler-mips64.h", ] } 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.cc", - "src/codegen/ppc/assembler-ppc.h", "src/codegen/ppc/constants-ppc.cc", - "src/codegen/ppc/constants-ppc.h", "src/codegen/ppc/cpu-ppc.cc", "src/codegen/ppc/interface-descriptors-ppc.cc", "src/codegen/ppc/macro-assembler-ppc.cc", - "src/codegen/ppc/macro-assembler-ppc.h", - "src/codegen/ppc/register-ppc.h", "src/compiler/backend/ppc/code-generator-ppc.cc", - "src/compiler/backend/ppc/instruction-codes-ppc.h", "src/compiler/backend/ppc/instruction-scheduler-ppc.cc", "src/compiler/backend/ppc/instruction-selector-ppc.cc", "src/compiler/backend/ppc/unwinding-info-writer-ppc.cc", - "src/compiler/backend/ppc/unwinding-info-writer-ppc.h", "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", "src/diagnostics/ppc/unwinder-ppc.cc", "src/execution/ppc/frame-constants-ppc.cc", - "src/execution/ppc/frame-constants-ppc.h", "src/execution/ppc/simulator-ppc.cc", - "src/execution/ppc/simulator-ppc.h", "src/regexp/ppc/regexp-macro-assembler-ppc.cc", - "src/regexp/ppc/regexp-macro-assembler-ppc.h", - "src/wasm/baseline/ppc/liftoff-assembler-ppc.h", ] } 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.cc", - "src/codegen/ppc/assembler-ppc.h", "src/codegen/ppc/constants-ppc.cc", - "src/codegen/ppc/constants-ppc.h", "src/codegen/ppc/cpu-ppc.cc", "src/codegen/ppc/interface-descriptors-ppc.cc", "src/codegen/ppc/macro-assembler-ppc.cc", - "src/codegen/ppc/macro-assembler-ppc.h", - "src/codegen/ppc/register-ppc.h", "src/compiler/backend/ppc/code-generator-ppc.cc", - "src/compiler/backend/ppc/instruction-codes-ppc.h", "src/compiler/backend/ppc/instruction-scheduler-ppc.cc", "src/compiler/backend/ppc/instruction-selector-ppc.cc", "src/compiler/backend/ppc/unwinding-info-writer-ppc.cc", - "src/compiler/backend/ppc/unwinding-info-writer-ppc.h", "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", "src/diagnostics/ppc/unwinder-ppc.cc", "src/execution/ppc/frame-constants-ppc.cc", - "src/execution/ppc/frame-constants-ppc.h", "src/execution/ppc/simulator-ppc.cc", - "src/execution/ppc/simulator-ppc.h", "src/regexp/ppc/regexp-macro-assembler-ppc.cc", - "src/regexp/ppc/regexp-macro-assembler-ppc.h", - "src/wasm/baseline/ppc/liftoff-assembler-ppc.h", ] } else if (v8_current_cpu == "s390" || v8_current_cpu == "s390x") { sources += [ ### gcmole(arch:s390) ### - "src/baseline/s390/baseline-assembler-s390-inl.h", - "src/baseline/s390/baseline-compiler-s390-inl.h", - "src/codegen/s390/assembler-s390-inl.h", "src/codegen/s390/assembler-s390.cc", - "src/codegen/s390/assembler-s390.h", "src/codegen/s390/constants-s390.cc", - "src/codegen/s390/constants-s390.h", "src/codegen/s390/cpu-s390.cc", "src/codegen/s390/interface-descriptors-s390.cc", "src/codegen/s390/macro-assembler-s390.cc", - "src/codegen/s390/macro-assembler-s390.h", - "src/codegen/s390/register-s390.h", "src/compiler/backend/s390/code-generator-s390.cc", - "src/compiler/backend/s390/instruction-codes-s390.h", "src/compiler/backend/s390/instruction-scheduler-s390.cc", "src/compiler/backend/s390/instruction-selector-s390.cc", "src/compiler/backend/s390/unwinding-info-writer-s390.cc", - "src/compiler/backend/s390/unwinding-info-writer-s390.h", "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", "src/diagnostics/s390/unwinder-s390.cc", "src/execution/s390/frame-constants-s390.cc", - "src/execution/s390/frame-constants-s390.h", "src/execution/s390/simulator-s390.cc", - "src/execution/s390/simulator-s390.h", "src/regexp/s390/regexp-macro-assembler-s390.cc", - "src/regexp/s390/regexp-macro-assembler-s390.h", - "src/wasm/baseline/s390/liftoff-assembler-s390.h", ] } else if (v8_current_cpu == "riscv64") { sources += [ ### gcmole(arch:riscv64) ### - "src/codegen/riscv64/assembler-riscv64-inl.h", "src/codegen/riscv64/assembler-riscv64.cc", - "src/codegen/riscv64/assembler-riscv64.h", "src/codegen/riscv64/constants-riscv64.cc", - "src/codegen/riscv64/constants-riscv64.h", "src/codegen/riscv64/cpu-riscv64.cc", "src/codegen/riscv64/interface-descriptors-riscv64.cc", "src/codegen/riscv64/macro-assembler-riscv64.cc", - "src/codegen/riscv64/macro-assembler-riscv64.h", - "src/codegen/riscv64/register-riscv64.h", "src/compiler/backend/riscv64/code-generator-riscv64.cc", - "src/compiler/backend/riscv64/instruction-codes-riscv64.h", "src/compiler/backend/riscv64/instruction-scheduler-riscv64.cc", "src/compiler/backend/riscv64/instruction-selector-riscv64.cc", "src/debug/riscv64/debug-riscv64.cc", @@ -4072,15 +4252,22 @@ v8_source_set("v8_base_without_compiler") { "src/diagnostics/riscv64/disasm-riscv64.cc", "src/diagnostics/riscv64/unwinder-riscv64.cc", "src/execution/riscv64/frame-constants-riscv64.cc", - "src/execution/riscv64/frame-constants-riscv64.h", "src/execution/riscv64/simulator-riscv64.cc", - "src/execution/riscv64/simulator-riscv64.h", "src/regexp/riscv64/regexp-macro-assembler-riscv64.cc", - "src/regexp/riscv64/regexp-macro-assembler-riscv64.h", - "src/wasm/baseline/riscv64/liftoff-assembler-riscv64.h", ] } + # Architecture independent but platform-specific sources + if (is_win) { + if (v8_enable_system_instrumentation) { + sources += [ + "src/diagnostics/system-jit-metadata-win.h", + "src/diagnostics/system-jit-win.cc", + "src/diagnostics/system-jit-win.h", + ] + } + } + configs = [ ":internal_config", ":cppgc_base_config", @@ -4088,14 +4275,13 @@ v8_source_set("v8_base_without_compiler") { deps = [ ":torque_generated_definitions", + ":v8_bigint", ":v8_cppgc_shared", ":v8_headers", ":v8_libbase", - ":v8_libsampler", ":v8_shared_internal_headers", ":v8_tracing", ":v8_version", - ":v8_wrappers", "src/inspector:inspector", ] @@ -4104,6 +4290,7 @@ v8_source_set("v8_base_without_compiler") { ":generate_bytecode_builtins_list", ":run_torque", ":v8_headers", + ":v8_internal_headers", ":v8_maybe_icu", ] @@ -4117,43 +4304,18 @@ v8_source_set("v8_base_without_compiler") { sources -= [ "src/builtins/builtins-intl.cc", "src/objects/intl-objects.cc", - "src/objects/intl-objects.h", - "src/objects/js-break-iterator-inl.h", "src/objects/js-break-iterator.cc", - "src/objects/js-break-iterator.h", - "src/objects/js-collator-inl.h", "src/objects/js-collator.cc", - "src/objects/js-collator.h", - "src/objects/js-date-time-format-inl.h", "src/objects/js-date-time-format.cc", - "src/objects/js-date-time-format.h", - "src/objects/js-display-names-inl.h", "src/objects/js-display-names.cc", - "src/objects/js-display-names.h", - "src/objects/js-list-format-inl.h", "src/objects/js-list-format.cc", - "src/objects/js-list-format.h", - "src/objects/js-locale-inl.h", "src/objects/js-locale.cc", - "src/objects/js-locale.h", - "src/objects/js-number-format-inl.h", "src/objects/js-number-format.cc", - "src/objects/js-number-format.h", - "src/objects/js-plural-rules-inl.h", "src/objects/js-plural-rules.cc", - "src/objects/js-plural-rules.h", - "src/objects/js-relative-time-format-inl.h", "src/objects/js-relative-time-format.cc", - "src/objects/js-relative-time-format.h", - "src/objects/js-segment-iterator-inl.h", "src/objects/js-segment-iterator.cc", - "src/objects/js-segment-iterator.h", - "src/objects/js-segmenter-inl.h", "src/objects/js-segmenter.cc", - "src/objects/js-segmenter.h", - "src/objects/js-segments-inl.h", "src/objects/js-segments.cc", - "src/objects/js-segments.h", "src/runtime/runtime-intl.cc", "src/strings/char-predicates.cc", ] @@ -4194,7 +4356,6 @@ v8_source_set("v8_base_without_compiler") { } if (v8_use_perfetto) { - sources -= [ "//base/trace_event/common/trace_event_common.h" ] sources += [ "src/tracing/trace-categories.cc", "src/tracing/trace-categories.h", @@ -4261,13 +4422,13 @@ v8_source_set("torque_base") { "src/torque/utils.h", ] - deps = [ ":v8_shared_internal_headers" ] - - public_deps = [ - ":v8_libbase", - ":v8_wrappers", + deps = [ + ":v8_flags", + ":v8_shared_internal_headers", ] + public_deps = [ ":v8_libbase" ] + # The use of exceptions for Torque in violation of the Chromium style-guide # is justified by the fact that it is only used from the non-essential # language server and can be removed anytime if it causes problems. @@ -4366,6 +4527,7 @@ v8_component("v8_libbase") { "src/base/hashmap.h", "src/base/ieee754.cc", "src/base/ieee754.h", + "src/base/immediate-crash.h", "src/base/iterator.h", "src/base/lazy-instance.h", "src/base/logging.cc", @@ -4389,6 +4551,7 @@ v8_component("v8_libbase") { "src/base/platform/semaphore.h", "src/base/platform/time.cc", "src/base/platform/time.h", + "src/base/platform/wrappers.h", "src/base/region-allocator.cc", "src/base/region-allocator.h", "src/base/ring-buffer.h", @@ -4405,15 +4568,14 @@ v8_component("v8_libbase") { "src/base/utils/random-number-generator.h", "src/base/vlq-base64.cc", "src/base/vlq-base64.h", + "src/base/vlq.h", ] configs = [ ":internal_config_base" ] public_configs = [ ":libbase_config" ] - deps = [ ":v8_headers" ] - - public_deps = [ ":v8_wrappers" ] + deps = [ ":v8_config_headers" ] data = [] @@ -4582,16 +4744,16 @@ v8_component("v8_libplatform") { public_deps = [] deps = [ - ":v8_headers", + ":v8_config_headers", ":v8_libbase", ":v8_tracing", - ":v8_wrappers", ] 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", @@ -4612,19 +4774,6 @@ v8_component("v8_libplatform") { } } -v8_source_set("v8_libsampler") { - sources = [ - "src/libsampler/sampler.cc", - "src/libsampler/sampler.h", - ] - - configs = [ ":internal_config" ] - - public_configs = [ ":libsampler_config" ] - - deps = [ ":v8_libbase" ] -} - v8_source_set("fuzzer_support") { visibility = [ ":*" ] # Only targets in this file can depend on this. @@ -4643,6 +4792,15 @@ v8_source_set("fuzzer_support") { ] } +v8_source_set("v8_bigint") { + sources = [ + "src/bigint/bigint.h", + "src/bigint/vector-arithmetic.cc", + ] + + configs = [ ":internal_config" ] +} + v8_source_set("v8_cppgc_shared") { sources = [ "src/heap/base/stack.cc", @@ -4696,27 +4854,13 @@ v8_header_set("cppgc_headers") { ":cppgc_header_features", ] - sources = [ - "include/cppgc/garbage-collected.h", - "include/cppgc/member.h", - "include/cppgc/persistent.h", - "include/cppgc/type-traits.h", - "include/cppgc/visitor.h", - ] - - deps = [ ":cppgc_base" ] - public_deps = [ ":v8_headers" ] -} - -v8_source_set("cppgc_base") { - visibility = [ ":*" ] - sources = [ "include/cppgc/allocation.h", "include/cppgc/common.h", "include/cppgc/custom-space.h", "include/cppgc/default-platform.h", "include/cppgc/ephemeron-pair.h", + "include/cppgc/explicit-management.h", "include/cppgc/garbage-collected.h", "include/cppgc/heap-consistency.h", "include/cppgc/heap-state.h", @@ -4746,6 +4890,21 @@ v8_source_set("cppgc_base") { "include/cppgc/trace-trait.h", "include/cppgc/type-traits.h", "include/cppgc/visitor.h", + ] + + if (cppgc_enable_caged_heap) { + sources += [ "include/cppgc/internal/caged-heap-local-data.h" ] + } + + deps = [ ":v8_libplatform" ] + + public_deps = [ ":v8_config_headers" ] +} + +v8_source_set("cppgc_base") { + visibility = [ ":*" ] + + sources = [ "src/heap/cppgc/allocation.cc", "src/heap/cppgc/compaction-worklists.cc", "src/heap/cppgc/compaction-worklists.h", @@ -4754,6 +4913,7 @@ v8_source_set("cppgc_base") { "src/heap/cppgc/concurrent-marker.cc", "src/heap/cppgc/concurrent-marker.h", "src/heap/cppgc/default-platform.cc", + "src/heap/cppgc/explicit-management.cc", "src/heap/cppgc/free-list.cc", "src/heap/cppgc/free-list.h", "src/heap/cppgc/garbage-collector.h", @@ -4798,6 +4958,7 @@ v8_source_set("cppgc_base") { "src/heap/cppgc/name-trait.cc", "src/heap/cppgc/object-allocator.cc", "src/heap/cppgc/object-allocator.h", + "src/heap/cppgc/object-poisoner.h", "src/heap/cppgc/object-size-trait.cc", "src/heap/cppgc/object-start-bitmap.h", "src/heap/cppgc/page-memory.cc", @@ -4828,15 +4989,8 @@ v8_source_set("cppgc_base") { "src/heap/cppgc/write-barrier.h", ] - if (cppgc_is_standalone) { - sources += [ "//base/trace_event/common/trace_event_common.h" ] - } else { - deps = [ ":v8_tracing" ] - } - if (cppgc_enable_caged_heap) { sources += [ - "include/cppgc/internal/caged-heap-local-data.h", "src/heap/cppgc/caged-heap-local-data.cc", "src/heap/cppgc/caged-heap.cc", "src/heap/cppgc/caged-heap.h", @@ -4849,11 +5003,17 @@ v8_source_set("cppgc_base") { ] public_deps = [ - ":v8_config_headers", + ":cppgc_headers", ":v8_cppgc_shared", ":v8_libbase", ":v8_libplatform", ] + + if (cppgc_is_standalone && !v8_use_perfetto) { + sources += [ "//base/trace_event/common/trace_event_common.h" ] + } else { + public_deps += [ ":v8_tracing" ] + } } v8_source_set("cppgc_base_for_testing") { @@ -4887,7 +5047,6 @@ if (v8_monolithic) { ":v8", ":v8_libbase", ":v8_libplatform", - ":v8_libsampler", "//build/win:default_exe_manifest", ] @@ -4895,28 +5054,29 @@ if (v8_monolithic) { } } -v8_static_library("wee8") { - deps = [ - ":v8_base", - ":v8_libbase", - ":v8_libplatform", - ":v8_libsampler", - ":v8_shared_internal_headers", - ":v8_snapshot", - "//build/win:default_exe_manifest", - ] +if (v8_enable_webassembly) { + v8_static_library("wee8") { + deps = [ + ":v8_base", + ":v8_libbase", + ":v8_libplatform", + ":v8_shared_internal_headers", + ":v8_snapshot", + "//build/win:default_exe_manifest", + ] - # TODO: v8dll-main.cc equivalent for shared library builds + # TODO: v8dll-main.cc equivalent for shared library builds - configs = [ ":internal_config" ] + configs = [ ":internal_config" ] - sources = [ - ### gcmole(all) ### - "src/wasm/c-api.cc", - "src/wasm/c-api.h", - "third_party/wasm-api/wasm.h", - "third_party/wasm-api/wasm.hh", - ] + sources = [ + ### gcmole(all) ### + "src/wasm/c-api.cc", + "src/wasm/c-api.h", + "third_party/wasm-api/wasm.h", + "third_party/wasm-api/wasm.hh", + ] + } } ############################################################################### @@ -4985,7 +5145,6 @@ if (current_toolchain == v8_snapshot_toolchain) { ":v8_maybe_icu", ":v8_shared_internal_headers", ":v8_tracing", - ":v8_wrappers", "//build/win:default_exe_manifest", ] } @@ -5169,7 +5328,7 @@ if (is_fuchsia && !build_with_chromium) { cr_fuchsia_package("d8_fuchsia_pkg") { testonly = true binary = ":d8" - manifest = "//build/config/fuchsia/tests-with-exec.cmx" + manifest = "gni/v8.cmx" package_name_override = "d8" } @@ -5185,15 +5344,20 @@ group("v8_fuzzers") { data_deps = [ ":v8_simple_inspector_fuzzer", ":v8_simple_json_fuzzer", - ":v8_simple_multi_return_fuzzer", ":v8_simple_parser_fuzzer", ":v8_simple_regexp_builtins_fuzzer", ":v8_simple_regexp_fuzzer", - ":v8_simple_wasm_async_fuzzer", - ":v8_simple_wasm_code_fuzzer", - ":v8_simple_wasm_compile_fuzzer", - ":v8_simple_wasm_fuzzer", ] + + if (v8_enable_webassembly) { + data_deps += [ + ":v8_simple_multi_return_fuzzer", + ":v8_simple_wasm_async_fuzzer", + ":v8_simple_wasm_code_fuzzer", + ":v8_simple_wasm_compile_fuzzer", + ":v8_simple_wasm_fuzzer", + ] + } } if (is_component_build) { @@ -5329,6 +5493,7 @@ v8_executable("d8") { "src/d8/d8-js.cc", "src/d8/d8-platforms.cc", "src/d8/d8-platforms.h", + "src/d8/d8-test.cc", "src/d8/d8.cc", "src/d8/d8.h", ] @@ -5353,7 +5518,6 @@ v8_executable("d8") { ":v8_libbase", ":v8_libplatform", ":v8_tracing", - ":v8_wrappers", "//build/win:default_exe_manifest", ] @@ -5483,30 +5647,10 @@ v8_source_set("json_fuzzer") { v8_fuzzer("json_fuzzer") { } -v8_source_set("multi_return_fuzzer") { - sources = [ "test/fuzzer/multi-return.cc" ] - - deps = [ - ":fuzzer_support", - ":v8_wrappers", - ] - - configs = [ - ":external_config", - ":internal_config_base", - ] -} - -v8_fuzzer("multi_return_fuzzer") { -} - v8_source_set("parser_fuzzer") { sources = [ "test/fuzzer/parser.cc" ] - deps = [ - ":fuzzer_support", - ":v8_wrappers", - ] + deps = [ ":fuzzer_support" ] configs = [ ":external_config", @@ -5523,10 +5667,7 @@ v8_source_set("regexp_builtins_fuzzer") { "test/fuzzer/regexp_builtins/mjsunit.js.h", ] - deps = [ - ":fuzzer_support", - ":v8_wrappers", - ] + deps = [ ":fuzzer_support" ] configs = [ ":external_config", @@ -5540,10 +5681,7 @@ v8_fuzzer("regexp_builtins_fuzzer") { v8_source_set("regexp_fuzzer") { sources = [ "test/fuzzer/regexp.cc" ] - deps = [ - ":fuzzer_support", - ":v8_wrappers", - ] + deps = [ ":fuzzer_support" ] configs = [ ":external_config", @@ -5554,131 +5692,148 @@ v8_source_set("regexp_fuzzer") { v8_fuzzer("regexp_fuzzer") { } -v8_source_set("wasm_test_common") { - sources = [ - "test/common/wasm/wasm-interpreter.cc", - "test/common/wasm/wasm-interpreter.h", - "test/common/wasm/wasm-module-runner.cc", - "test/common/wasm/wasm-module-runner.h", - ] +if (v8_enable_webassembly) { + v8_source_set("multi_return_fuzzer") { + sources = [ "test/fuzzer/multi-return.cc" ] - deps = [ - ":generate_bytecode_builtins_list", - ":run_torque", - ":v8_libbase", - ":v8_shared_internal_headers", - ":v8_tracing", - ] + deps = [ ":fuzzer_support" ] - public_deps = [ ":v8_maybe_icu" ] + configs = [ + ":external_config", + ":internal_config_base", + ] + } - configs = [ - ":external_config", - ":internal_config_base", - ] -} + v8_fuzzer("multi_return_fuzzer") { + } -v8_source_set("wasm_fuzzer") { - sources = [ "test/fuzzer/wasm.cc" ] + v8_source_set("wasm_test_common") { + sources = [ + "test/common/flag-utils.h", + "test/common/wasm/flag-utils.h", + "test/common/wasm/wasm-interpreter.cc", + "test/common/wasm/wasm-interpreter.h", + "test/common/wasm/wasm-module-runner.cc", + "test/common/wasm/wasm-module-runner.h", + ] - deps = [ - ":fuzzer_support", - ":lib_wasm_fuzzer_common", - ":v8_wrappers", - ":wasm_test_common", - ] + deps = [ + ":generate_bytecode_builtins_list", + ":run_torque", + ":v8_internal_headers", + ":v8_libbase", + ":v8_shared_internal_headers", + ":v8_tracing", + ] - configs = [ - ":external_config", - ":internal_config_base", - ] -} + public_deps = [ ":v8_maybe_icu" ] -v8_fuzzer("wasm_fuzzer") { -} + configs = [ + ":external_config", + ":internal_config_base", + ] + } -v8_source_set("wasm_async_fuzzer") { - sources = [ "test/fuzzer/wasm-async.cc" ] + v8_source_set("wasm_fuzzer") { + sources = [ "test/fuzzer/wasm.cc" ] - deps = [ - ":fuzzer_support", - ":lib_wasm_fuzzer_common", - ":v8_wrappers", - ":wasm_test_common", - ] + deps = [ + ":fuzzer_support", + ":lib_wasm_fuzzer_common", + ":wasm_test_common", + ] - configs = [ - ":external_config", - ":internal_config_base", - ] -} + configs = [ + ":external_config", + ":internal_config_base", + ] + } -v8_fuzzer("wasm_async_fuzzer") { -} + v8_fuzzer("wasm_fuzzer") { + } -v8_source_set("wasm_code_fuzzer") { - sources = [ - "test/common/wasm/test-signatures.h", - "test/fuzzer/wasm-code.cc", - ] + v8_source_set("wasm_async_fuzzer") { + sources = [ "test/fuzzer/wasm-async.cc" ] - deps = [ - ":fuzzer_support", - ":lib_wasm_fuzzer_common", - ":v8_wrappers", - ":wasm_test_common", - ] + deps = [ + ":fuzzer_support", + ":lib_wasm_fuzzer_common", + ":wasm_test_common", + ] - configs = [ - ":external_config", - ":internal_config_base", - ] -} + configs = [ + ":external_config", + ":internal_config_base", + ] + } -v8_fuzzer("wasm_code_fuzzer") { -} + v8_fuzzer("wasm_async_fuzzer") { + } -v8_source_set("lib_wasm_fuzzer_common") { - sources = [ - "test/fuzzer/wasm-fuzzer-common.cc", - "test/fuzzer/wasm-fuzzer-common.h", - ] + v8_source_set("wasm_code_fuzzer") { + sources = [ + "test/common/wasm/test-signatures.h", + "test/fuzzer/wasm-code.cc", + ] - deps = [ - ":generate_bytecode_builtins_list", - ":run_torque", - ":v8_tracing", - ":wasm_test_common", - ] + deps = [ + ":fuzzer_support", + ":lib_wasm_fuzzer_common", + ":wasm_test_common", + ] - public_deps = [ ":v8_maybe_icu" ] + configs = [ + ":external_config", + ":internal_config_base", + ] + } - configs = [ - ":external_config", - ":internal_config_base", - ] -} + v8_fuzzer("wasm_code_fuzzer") { + } -v8_source_set("wasm_compile_fuzzer") { - sources = [ - "test/common/wasm/test-signatures.h", - "test/fuzzer/wasm-compile.cc", - ] + v8_source_set("lib_wasm_fuzzer_common") { + sources = [ + "test/fuzzer/wasm-fuzzer-common.cc", + "test/fuzzer/wasm-fuzzer-common.h", + ] - deps = [ - ":fuzzer_support", - ":lib_wasm_fuzzer_common", - ":v8_wrappers", - ":wasm_test_common", - ] + deps = [ + ":fuzzer_support", + ":generate_bytecode_builtins_list", + ":run_torque", + ":v8_internal_headers", + ":v8_tracing", + ":wasm_test_common", + ] - configs = [ - ":external_config", - ":internal_config_base", - ] -} + public_deps = [ ":v8_maybe_icu" ] + + configs = [ + ":external_config", + ":internal_config_base", + ] + } + + v8_source_set("wasm_compile_fuzzer") { + sources = [ + "test/common/wasm/test-signatures.h", + "test/fuzzer/wasm-compile.cc", + ] + + deps = [ + ":fuzzer_support", + ":lib_wasm_fuzzer_common", + ":wasm_test_common", + ] + + configs = [ + ":external_config", + ":internal_config_base", + ] + } -v8_fuzzer("wasm_compile_fuzzer") { + v8_fuzzer("wasm_compile_fuzzer") { + } } v8_source_set("inspector_fuzzer") { @@ -5686,7 +5841,6 @@ v8_source_set("inspector_fuzzer") { deps = [ ":fuzzer_support", - ":v8_wrappers", "test/inspector:inspector_test", ] diff --git a/deps/v8/COMMON_OWNERS b/deps/v8/COMMON_OWNERS index a6aff24098864d..8072df037bf0c5 100644 --- a/deps/v8/COMMON_OWNERS +++ b/deps/v8/COMMON_OWNERS @@ -1,7 +1,6 @@ adamk@chromium.org ahaas@chromium.org bbudge@chromium.org -binji@chromium.org bikineev@chromium.org bmeurer@chromium.org cbruni@chromium.org @@ -15,11 +14,11 @@ gsathya@chromium.org hablich@chromium.org hpayer@chromium.org ishell@chromium.org -jarin@chromium.org jgruber@chromium.org jkummerow@chromium.org leszeks@chromium.org machenbach@chromium.org +manoskouk@chromium.org mathias@chromium.org marja@chromium.org mlippautz@chromium.org @@ -27,8 +26,9 @@ mslekova@chromium.org mvstanton@chromium.org mythria@chromium.org neis@chromium.org +nicohartmann@chromium.org omerkatz@chromium.org -petermarshall@chromium.org +pthier@chromium.org rmcilroy@chromium.org sigurds@chromium.org solanes@chromium.org diff --git a/deps/v8/DEPS b/deps/v8/DEPS index 48ddbad6af96f1..b27a4e8e8fada7 100644 --- a/deps/v8/DEPS +++ b/deps/v8/DEPS @@ -47,10 +47,10 @@ vars = { 'checkout_google_benchmark' : False, # GN CIPD package version. - 'gn_version': 'git_revision:dfcbc6fed0a8352696f92d67ccad54048ad182b3', + 'gn_version': 'git_revision:dba01723a441c358d843a575cb7720d54ddcdf92', # luci-go CIPD package version. - 'luci_go': 'git_revision:fd10124659e991321df2f8a5d3749687b54ceb0a', + 'luci_go': 'git_revision:d6d24b11ecded4d89f3dfd1b2e5a0072a3d4ab15', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling android_sdk_build-tools_version @@ -88,15 +88,15 @@ vars = { deps = { 'build': - Var('chromium_url') + '/chromium/src/build.git' + '@' + '446bf3e5a00bfe4fd99d91cb76ec3b3a7b34d226', + Var('chromium_url') + '/chromium/src/build.git' + '@' + '77edba11e25386aa719d4f08c3ce2d8c4f868c15', 'third_party/depot_tools': - Var('chromium_url') + '/chromium/tools/depot_tools.git' + '@' + '5fe664f150beaf71104ce7787560fabdb55ebf5b', + Var('chromium_url') + '/chromium/tools/depot_tools.git' + '@' + '98a52e2e312dd10d7fcf281e322039a6b706b86b', 'third_party/icu': - Var('chromium_url') + '/chromium/deps/icu.git' + '@' + 'e05b663d1c50b4e9ecc3ff9325f5158f1d071471', + Var('chromium_url') + '/chromium/deps/icu.git' + '@' + '81d656878ec611cb0b42d52c82e9dae93920d9ba', 'third_party/instrumented_libraries': - Var('chromium_url') + '/chromium/src/third_party/instrumented_libraries.git' + '@' + '0964a78c832d1d0f2669b020b073c38f67509cf2', + Var('chromium_url') + '/chromium/src/third_party/instrumented_libraries.git' + '@' + '084aee04777db574038af9e9d33ca5caed577462', 'buildtools': - Var('chromium_url') + '/chromium/src/buildtools.git' + '@' + '4c78ef9c38b683c5c5cbac70445378c2362cebfc', + Var('chromium_url') + '/chromium/src/buildtools.git' + '@' + '5dbd89c9d9c0b0ff47cefdc2bc421b8c9a1c5a21', 'buildtools/clang_format/script': Var('chromium_url') + '/external/github.com/llvm/llvm-project/clang/tools/clang-format.git' + '@' + '99803d74e35962f63a775f29477882afd4d57d94', 'buildtools/linux64': { @@ -122,9 +122,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' + '@' + '196ba1aaa8ac285d94f4ea8d9836390a45360533', + Var('chromium_url') + '/external/github.com/llvm/llvm-project/libcxxabi.git' + '@' + 'd0f33885a2ffa7d5af74af6065b60eb48e3c70f5', 'buildtools/third_party/libunwind/trunk': - Var('chromium_url') + '/external/github.com/llvm/llvm-project/libunwind.git' + '@' + 'a2cc4f8c554dedcb0c64cac5511b19c43f1f3d32', + Var('chromium_url') + '/external/github.com/llvm/llvm-project/libunwind.git' + '@' + '08f35c8514a74817103121def05351186830d4b7', 'buildtools/win': { 'packages': [ { @@ -136,7 +136,7 @@ deps = { 'condition': 'host_os == "win"', }, 'base/trace_event/common': - Var('chromium_url') + '/chromium/src/base/trace_event/common.git' + '@' + '7af6071eddf11ad91fbd5df54138f9d3c6d980d5', + Var('chromium_url') + '/chromium/src/base/trace_event/common.git' + '@' + 'cab90cbdaaf4444d67aef6ce3cef09fc5fdeb560', 'third_party/android_ndk': { 'url': Var('chromium_url') + '/android_ndk.git' + '@' + '401019bf85744311b26c88ced255cd53401af8b7', 'condition': 'checkout_android', @@ -184,7 +184,7 @@ deps = { 'dep_type': 'cipd', }, 'third_party/catapult': { - 'url': Var('chromium_url') + '/catapult.git' + '@' + '81c9d30d7f1b3c1ab0f1856761f738cc81741322', + 'url': Var('chromium_url') + '/catapult.git' + '@' + '41a5e5e465ad93d6e08224613d3544334a6278bc', 'condition': 'checkout_android', }, 'third_party/colorama/src': { @@ -196,7 +196,7 @@ deps = { 'condition': 'checkout_fuchsia', }, 'third_party/googletest/src': - Var('chromium_url') + '/external/github.com/google/googletest.git' + '@' + '1e315c5b1a62707fac9b8f1d4e03180ee7507f98', + Var('chromium_url') + '/external/github.com/google/googletest.git' + '@' + '07f4869221012b16b7f9ee685d94856e1fc9f361', 'third_party/google_benchmark/src': { 'url': Var('chromium_url') + '/external/github.com/google/benchmark.git' + '@' + '7f27afe83b82f3a98baf58ef595814b9d42a5b2b', 'condition': 'checkout_google_benchmark', @@ -212,7 +212,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' + '@' + 'f6034ebe9fb92d4d3dea644b9225bdc18b44a7ab', + Var('chromium_url') + '/external/github.com/tc39/test262.git' + '@' + '31126581e7290f9233c29cefd93f66c6ac78f1c9', 'test/test262/harness': Var('chromium_url') + '/external/github.com/test262-utils/test262-harness-py.git' + '@' + '278bcfaed0dcaa13936831fb1769d15e7c1e3b2b', 'third_party/qemu-linux-x64': { @@ -239,7 +239,7 @@ deps = { 'packages': [ { 'package': 'fuchsia/third_party/aemu/linux-amd64', - 'version': 'qI8e328VwkWv64EapCvG3Xj9_hDpKQFuJWeVdUHz7W0C' + 'version': 'SeLS6a0f6IL-PCOUKbMTN5LYgjjJbDSnb3DGf5q9pwsC' }, ], 'condition': 'host_os == "linux" and checkout_fuchsia', @@ -256,7 +256,7 @@ deps = { 'dep_type': 'cipd', }, 'tools/clang': - Var('chromium_url') + '/chromium/src/tools/clang.git' + '@' + 'cfd0f628093b7382ac054fb33e23fa9d9a278bc3', + Var('chromium_url') + '/chromium/src/tools/clang.git' + '@' + 'a387faa2a6741f565e45d78804a49a0e55de5909', 'tools/luci-go': { 'packages': [ { @@ -290,7 +290,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'+ '@' + '348acca950b1d6de784a954f4fda0952046c652c', + Var('chromium_url') + '/chromium/src/third_party/zlib.git'+ '@' + '09490503d0f201b81e03f5ca0ab8ba8ee76d4a8e', 'third_party/jsoncpp/source': Var('chromium_url') + '/external/github.com/open-source-parsers/jsoncpp.git'+ '@' + '9059f5cad030ba11d37818847443a53918c327b1', 'third_party/ittapi': { @@ -300,7 +300,7 @@ deps = { 'condition': "checkout_ittapi or check_v8_header_includes", }, 'third_party/requests': { - 'url': Var('chromium_url') + '/external/github.com/kennethreitz/requests.git' + '@' + 'bfb93d4b7d269a8735f1b216093e7e9a9fdc4517', + 'url': Var('chromium_url') + '/external/github.com/kennethreitz/requests.git' + '@' + '2c2138e811487b13020eb331482fb991fd399d4e', 'condition': 'checkout_android', }, } @@ -475,12 +475,24 @@ hooks = [ '-s', 'third_party/instrumented_libraries/binaries/msan-no-origins-trusty.tgz.sha1', ], }, + { + # Case-insensitivity for the Win SDK. Must run before win_toolchain below. + 'name': 'ciopfs_linux', + 'pattern': '.', + 'condition': 'checkout_win and host_os == "linux"', + 'action': [ 'download_from_google_storage', + '--no_resume', + '--no_auth', + '--bucket', 'chromium-browser-clang/ciopfs', + '-s', 'build/ciopfs.sha1', + ] + }, { # Update the Windows toolchain if necessary. 'name': 'win_toolchain', 'pattern': '.', 'condition': 'checkout_win', - 'action': ['python', 'build/vs_toolchain.py', 'update'], + 'action': ['python', 'build/vs_toolchain.py', 'update', '--force'], }, { # Update the Mac toolchain if necessary. diff --git a/deps/v8/ENG_REVIEW_OWNERS b/deps/v8/ENG_REVIEW_OWNERS index 6b189307ad763d..173f6d6aeee69f 100644 --- a/deps/v8/ENG_REVIEW_OWNERS +++ b/deps/v8/ENG_REVIEW_OWNERS @@ -6,4 +6,3 @@ adamk@chromium.org danno@chromium.org hpayer@chromium.org rmcilroy@chromium.org -yangguo@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 9b6783bb3535ce..dcbb09bb663b0c 100644 --- a/deps/v8/base/trace_event/common/trace_event_common.h +++ b/deps/v8/base/trace_event/common/trace_event_common.h @@ -264,8 +264,10 @@ bool BASE_EXPORT ConvertThreadId(const ::base::PlatformThreadId& thread, } // namespace legacy template <> -BASE_EXPORT TraceTimestamp -ConvertTimestampToTraceTimeNs(const ::base::TimeTicks& ticks); +struct BASE_EXPORT TraceTimestampTraits<::base::TimeTicks> { + static TraceTimestamp ConvertTimestampToTraceTimeNs( + const ::base::TimeTicks& ticks); +}; } // namespace perfetto diff --git a/deps/v8/gni/snapshot_toolchain.gni b/deps/v8/gni/snapshot_toolchain.gni index 53963a048bf012..e855b88e430c86 100644 --- a/deps/v8/gni/snapshot_toolchain.gni +++ b/deps/v8/gni/snapshot_toolchain.gni @@ -60,6 +60,10 @@ if (v8_snapshot_toolchain == "") { # binaries built for the same OS, so build the snapshot with the current # toolchain here, too. v8_snapshot_toolchain = current_toolchain + } else if (current_os == host_os && host_cpu == "arm64" && + current_cpu == "arm") { + # Trying to compile 32-bit arm on arm64. Good luck! + v8_snapshot_toolchain = current_toolchain } else if (host_cpu == "x64" && (v8_current_cpu == "mips" || v8_current_cpu == "mips64")) { # We don't support snapshot generation for big-endian targets, diff --git a/deps/v8/gni/v8.cmx b/deps/v8/gni/v8.cmx new file mode 100644 index 00000000000000..8cd8b75fdfe37b --- /dev/null +++ b/deps/v8/gni/v8.cmx @@ -0,0 +1,44 @@ +{ + "sandbox": { + "dev": [ + "null", + "zero" + ], + "features": [ + "deprecated-ambient-replace-as-executable", + "isolated-cache-storage", + "isolated-persistent-storage", + "isolated-temp", + "root-ssl-certificates", + "vulkan" + ], + "services": [ + "fuchsia.accessibility.semantics.SemanticsManager", + "fuchsia.camera3.DeviceWatcher", + "fuchsia.device.NameProvider", + "fuchsia.fonts.Provider", + "fuchsia.intl.PropertyProvider", + "fuchsia.logger.Log", + "fuchsia.logger.LogSink", + "fuchsia.media.Audio", + "fuchsia.media.SessionAudioConsumerFactory", + "fuchsia.media.drm.Widevine", + "fuchsia.mediacodec.CodecFactory", + "fuchsia.memorypressure.Provider", + "fuchsia.net.NameLookup", + "fuchsia.net.interfaces.State", + "fuchsia.posix.socket.Provider", + "fuchsia.process.Launcher", + "fuchsia.sys.Environment", + "fuchsia.sys.Launcher", + "fuchsia.sys.Loader", + "fuchsia.sysmem.Allocator", + "fuchsia.ui.input.ImeService", + "fuchsia.ui.input.ImeVisibilityService", + "fuchsia.ui.scenic.Scenic", + "fuchsia.ui.policy.Presenter", + "fuchsia.vulkan.loader.Loader", + "fuchsia.web.ContextProvider" + ] + } +} diff --git a/deps/v8/include/OWNERS b/deps/v8/include/OWNERS index cd5fd0535e44cc..7d538da1aa6642 100644 --- a/deps/v8/include/OWNERS +++ b/deps/v8/include/OWNERS @@ -1,6 +1,6 @@ adamk@chromium.org cbruni@chromium.org -danno@chromium.org +leszeks@chromium.org mlippautz@chromium.org ulan@chromium.org verwaest@chromium.org @@ -8,15 +8,9 @@ yangguo@chromium.org per-file *DEPS=file:../COMMON_OWNERS per-file v8-internal.h=file:../COMMON_OWNERS -per-file v8-inspector.h=dgozman@chromium.org -per-file v8-inspector.h=pfeldman@chromium.org -per-file v8-inspector.h=kozyatinskiy@chromium.org -per-file v8-inspector-protocol.h=dgozman@chromium.org -per-file v8-inspector-protocol.h=pfeldman@chromium.org -per-file v8-inspector-protocol.h=kozyatinskiy@chromium.org -per-file js_protocol.pdl=dgozman@chromium.org -per-file js_protocol.pdl=pfeldman@chromium.org -per-file js_protocol.pdl=bmeurer@chromium.org +per-file v8-inspector.h=file:../src/inspector/OWNERS +per-file v8-inspector-protocol.h=file:../src/inspector/OWNERS +per-file js_protocol.pdl=file:../src/inspector/OWNERS # For branch updates: per-file v8-version.h=file:../INFRA_OWNERS diff --git a/deps/v8/include/cppgc/allocation.h b/deps/v8/include/cppgc/allocation.h index b6f9d3902ba1c4..f4f0e72bd512ae 100644 --- a/deps/v8/include/cppgc/allocation.h +++ b/deps/v8/include/cppgc/allocation.h @@ -43,6 +43,28 @@ class V8_EXPORT MakeGarbageCollectedTraitInternal { std::memory_order_release); } + template + struct SpacePolicy { + static void* Allocate(AllocationHandle& handle, size_t size) { + // Custom space. + static_assert(std::is_base_of::value, + "Custom space must inherit from CustomSpaceBase."); + return MakeGarbageCollectedTraitInternal::Allocate( + handle, size, internal::GCInfoTrait::Index(), + CustomSpace::kSpaceIndex); + } + }; + + template + struct SpacePolicy { + static void* Allocate(AllocationHandle& handle, size_t size) { + // Default space. + return MakeGarbageCollectedTraitInternal::Allocate( + handle, size, internal::GCInfoTrait::Index()); + } + }; + + private: static void* Allocate(cppgc::AllocationHandle& handle, size_t size, GCInfoIndex index); static void* Allocate(cppgc::AllocationHandle& handle, size_t size, @@ -71,27 +93,6 @@ class MakeGarbageCollectedTraitBase internal::api_constants::kLargeObjectSizeThreshold, "GarbageCollectedMixin may not be a large object"); - template - struct SpacePolicy { - static void* Allocate(AllocationHandle& handle, size_t size) { - // Custom space. - static_assert(std::is_base_of::value, - "Custom space must inherit from CustomSpaceBase."); - return internal::MakeGarbageCollectedTraitInternal::Allocate( - handle, size, internal::GCInfoTrait::Index(), - CustomSpace::kSpaceIndex); - } - }; - - template - struct SpacePolicy { - static void* Allocate(AllocationHandle& handle, size_t size) { - // Default space. - return internal::MakeGarbageCollectedTraitInternal::Allocate( - handle, size, internal::GCInfoTrait::Index()); - } - }; - protected: /** * Allocates memory for an object of type T. @@ -101,9 +102,11 @@ class MakeGarbageCollectedTraitBase * \param size The size that should be reserved for the object. * \returns the memory to construct an object of type T on. */ - static void* Allocate(AllocationHandle& handle, size_t size) { - return SpacePolicy::Space>::Allocate(handle, - size); + V8_INLINE static void* Allocate(AllocationHandle& handle, size_t size) { + return SpacePolicy< + typename internal::GCInfoFolding< + T, typename T::ParentMostGarbageCollectedType>::ResultType, + typename SpaceTrait::Space>::Allocate(handle, size); } /** @@ -112,7 +115,7 @@ class MakeGarbageCollectedTraitBase * * \param payload The base pointer the object is allocated at. */ - static void MarkObjectAsFullyConstructed(const void* payload) { + V8_INLINE static void MarkObjectAsFullyConstructed(const void* payload) { internal::MakeGarbageCollectedTraitInternal::MarkObjectAsFullyConstructed( payload); } diff --git a/deps/v8/include/cppgc/cross-thread-persistent.h b/deps/v8/include/cppgc/cross-thread-persistent.h index 1f509d4b007e14..9cfcd23fdf8e3b 100644 --- a/deps/v8/include/cppgc/cross-thread-persistent.h +++ b/deps/v8/include/cppgc/cross-thread-persistent.h @@ -44,7 +44,26 @@ class BasicCrossThreadPersistent final : public PersistentBase, T* raw, const SourceLocation& loc = SourceLocation::Current()) : PersistentBase(raw), LocationPolicy(loc) { if (!IsValid(raw)) return; - PersistentRegion& region = this->GetPersistentRegion(raw); + PersistentRegionLock guard; + CrossThreadPersistentRegion& region = this->GetPersistentRegion(raw); + SetNode(region.AllocateNode(this, &Trace)); + this->CheckPointer(raw); + } + + class UnsafeCtorTag { + private: + UnsafeCtorTag() = default; + template + friend class BasicCrossThreadPersistent; + }; + + BasicCrossThreadPersistent( // NOLINT + UnsafeCtorTag, T* raw, + const SourceLocation& loc = SourceLocation::Current()) + : PersistentBase(raw), LocationPolicy(loc) { + if (!IsValid(raw)) return; + CrossThreadPersistentRegion& region = this->GetPersistentRegion(raw); SetNode(region.AllocateNode(this, &Trace)); this->CheckPointer(raw); } @@ -173,9 +192,17 @@ class BasicCrossThreadPersistent final : public PersistentBase, const void* old_value = GetValue(); if (IsValid(old_value)) { PersistentRegionLock guard; - PersistentRegion& region = this->GetPersistentRegion(old_value); - region.FreeNode(GetNode()); - SetNode(nullptr); + old_value = GetValue(); + // The fast path check (IsValid()) does not acquire the lock. Reload + // the value to ensure the reference has not been cleared. + if (IsValid(old_value)) { + CrossThreadPersistentRegion& region = + this->GetPersistentRegion(old_value); + region.FreeNode(GetNode()); + SetNode(nullptr); + } else { + CPPGC_DCHECK(!GetNode()); + } } SetValue(nullptr); } @@ -225,9 +252,12 @@ class BasicCrossThreadPersistent final : public PersistentBase, BasicCrossThreadPersistent To() const { + using OtherBasicCrossThreadPersistent = + BasicCrossThreadPersistent; PersistentRegionLock guard; - return BasicCrossThreadPersistent( + return OtherBasicCrossThreadPersistent( + typename OtherBasicCrossThreadPersistent::UnsafeCtorTag(), static_cast(Get())); } @@ -254,14 +284,22 @@ class BasicCrossThreadPersistent final : public PersistentBase, const void* old_value = GetValue(); if (IsValid(old_value)) { PersistentRegionLock guard; - PersistentRegion& region = this->GetPersistentRegion(old_value); - if (IsValid(ptr) && (®ion == &this->GetPersistentRegion(ptr))) { - SetValue(ptr); - this->CheckPointer(ptr); - return; + old_value = GetValue(); + // The fast path check (IsValid()) does not acquire the lock. Reload + // the value to ensure the reference has not been cleared. + if (IsValid(old_value)) { + CrossThreadPersistentRegion& region = + this->GetPersistentRegion(old_value); + if (IsValid(ptr) && (®ion == &this->GetPersistentRegion(ptr))) { + SetValue(ptr); + this->CheckPointer(ptr); + return; + } + region.FreeNode(GetNode()); + SetNode(nullptr); + } else { + CPPGC_DCHECK(!GetNode()); } - region.FreeNode(GetNode()); - SetNode(nullptr); } SetValue(ptr); if (!IsValid(ptr)) return; @@ -274,7 +312,8 @@ class BasicCrossThreadPersistent final : public PersistentBase, PersistentRegionLock::AssertLocked(); const void* old_value = GetValue(); if (IsValid(old_value)) { - PersistentRegion& region = this->GetPersistentRegion(old_value); + CrossThreadPersistentRegion& region = + this->GetPersistentRegion(old_value); if (IsValid(ptr) && (®ion == &this->GetPersistentRegion(ptr))) { SetValue(ptr); this->CheckPointer(ptr); diff --git a/deps/v8/include/cppgc/explicit-management.h b/deps/v8/include/cppgc/explicit-management.h new file mode 100644 index 00000000000000..8fb321c08ca5e4 --- /dev/null +++ b/deps/v8/include/cppgc/explicit-management.h @@ -0,0 +1,73 @@ +// Copyright 2021 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef INCLUDE_CPPGC_EXPLICIT_MANAGEMENT_H_ +#define INCLUDE_CPPGC_EXPLICIT_MANAGEMENT_H_ + +#include + +#include "cppgc/allocation.h" +#include "cppgc/internal/logging.h" +#include "cppgc/type-traits.h" + +namespace cppgc { +namespace internal { + +V8_EXPORT void FreeUnreferencedObject(void*); +V8_EXPORT bool Resize(void*, size_t); + +} // namespace internal + +namespace subtle { + +/** + * Informs the garbage collector that `object` can be immediately reclaimed. The + * destructor may not be invoked immediately but only on next garbage + * collection. + * + * It is up to the embedder to guarantee that no other object holds a reference + * to `object` after calling `FreeUnreferencedObject()`. In case such a + * reference exists, it's use results in a use-after-free. + * + * \param object Reference to an object that is of type `GarbageCollected` and + * should be immediately reclaimed. + */ +template +void FreeUnreferencedObject(T* object) { + static_assert(IsGarbageCollectedTypeV, + "Object must be of type GarbageCollected."); + if (!object) return; + internal::FreeUnreferencedObject(object); +} + +/** + * Tries to resize `object` of type `T` with additional bytes on top of + * sizeof(T). Resizing is only useful with trailing inlined storage, see e.g. + * `MakeGarbageCollected(AllocationHandle&, AdditionalBytes)`. + * + * `Resize()` performs growing or shrinking as needed and may skip the operation + * for internal reasons, see return value. + * + * It is up to the embedder to guarantee that in case of shrinking a larger + * object down, the reclaimed area is not used anymore. Any subsequent use + * results in a use-after-free. + * + * \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 + * provide. + * \returns true when the operation was successful and the result can be relied + * on, and false otherwise. + */ +template +bool Resize(T& object, AdditionalBytes additional_bytes) { + static_assert(IsGarbageCollectedTypeV, + "Object must be of type GarbageCollected."); + return internal::Resize(&object, sizeof(T) + additional_bytes.value); +} + +} // namespace subtle +} // namespace cppgc + +#endif // INCLUDE_CPPGC_EXPLICIT_MANAGEMENT_H_ diff --git a/deps/v8/include/cppgc/garbage-collected.h b/deps/v8/include/cppgc/garbage-collected.h index d28a39074aeec0..a3839e1baa59bf 100644 --- a/deps/v8/include/cppgc/garbage-collected.h +++ b/deps/v8/include/cppgc/garbage-collected.h @@ -73,10 +73,11 @@ class GarbageCollectedBase { * }; * \endcode */ -template +template class GarbageCollected : public internal::GarbageCollectedBase { public: using IsGarbageCollectedTypeMarker = void; + using ParentMostGarbageCollectedType = T; protected: GarbageCollected() = default; diff --git a/deps/v8/include/cppgc/heap-state.h b/deps/v8/include/cppgc/heap-state.h index 0157282a5603fc..3fd6b54a8a2123 100644 --- a/deps/v8/include/cppgc/heap-state.h +++ b/deps/v8/include/cppgc/heap-state.h @@ -49,6 +49,17 @@ class V8_EXPORT HeapState final { */ static bool IsInAtomicPause(const HeapHandle& heap_handle); + /** + * Returns whether the last garbage collection was finalized conservatively + * (i.e., with a non-empty stack). This API is experimental and is expected to + * be removed in future. + * + * \param heap_handle The corresponding heap. + * \returns true if the last garbage collection was finalized conservatively, + * and false otherwise. + */ + static bool PreviousGCWasConservative(const HeapHandle& heap_handle); + private: HeapState() = delete; }; diff --git a/deps/v8/include/cppgc/internal/gc-info.h b/deps/v8/include/cppgc/internal/gc-info.h index 9c26d6aa5b42bb..b9074b1ad5d1b9 100644 --- a/deps/v8/include/cppgc/internal/gc-info.h +++ b/deps/v8/include/cppgc/internal/gc-info.h @@ -5,7 +5,8 @@ #ifndef INCLUDE_CPPGC_INTERNAL_GC_INFO_H_ #define INCLUDE_CPPGC_INTERNAL_GC_INFO_H_ -#include +#include +#include #include "cppgc/internal/finalizer-trait.h" #include "cppgc/internal/name-trait.h" @@ -17,27 +18,54 @@ namespace internal { using GCInfoIndex = uint16_t; -class V8_EXPORT RegisteredGCInfoIndex final { - public: - RegisteredGCInfoIndex(FinalizationCallback finalization_callback, - TraceCallback trace_callback, - NameCallback name_callback, bool has_v_table); - GCInfoIndex GetIndex() const { return index_; } +// Acquires a new GC info object and returns the index. In addition, also +// updates `registered_index` atomically. +V8_EXPORT GCInfoIndex +EnsureGCInfoIndex(std::atomic& registered_index, + FinalizationCallback, TraceCallback, NameCallback, bool); - private: - const GCInfoIndex index_; +// Fold types based on finalizer behavior. Note that finalizer characteristics +// align with trace behavior, i.e., destructors are virtual when trace methods +// are and vice versa. +template +struct GCInfoFolding { + static constexpr bool kHasVirtualDestructorAtBase = + std::has_virtual_destructor::value; + static constexpr bool kBothTypesAreTriviallyDestructible = + std::is_trivially_destructible::value && + std::is_trivially_destructible::value; + static constexpr bool kHasCustomFinalizerDispatchAtBase = + internal::HasFinalizeGarbageCollectedObject< + ParentMostGarbageCollectedType>::value; +#ifdef CPPGC_SUPPORTS_OBJECT_NAMES + static constexpr bool kWantsDetailedObjectNames = true; +#else // !CPPGC_SUPPORTS_OBJECT_NAMES + static constexpr bool kWantsDetailedObjectNames = false; +#endif // !CPPGC_SUPPORTS_OBJECT_NAMES + + // Folding would regresses name resolution when deriving names from C++ + // class names as it would just folds a name to the base class name. + using ResultType = std::conditional_t<(kHasVirtualDestructorAtBase || + kBothTypesAreTriviallyDestructible || + kHasCustomFinalizerDispatchAtBase) && + !kWantsDetailedObjectNames, + ParentMostGarbageCollectedType, T>; }; // Trait determines how the garbage collector treats objects wrt. to traversing, // finalization, and naming. template -struct GCInfoTrait { +struct GCInfoTrait final { static GCInfoIndex Index() { static_assert(sizeof(T), "T must be fully defined"); - static const RegisteredGCInfoIndex registered_index( - FinalizerTrait::kCallback, TraceTrait::Trace, - NameTrait::GetName, std::is_polymorphic::value); - return registered_index.GetIndex(); + static std::atomic + registered_index; // Uses zero initialization. + const GCInfoIndex index = registered_index.load(std::memory_order_acquire); + return index ? index + : EnsureGCInfoIndex( + registered_index, FinalizerTrait::kCallback, + TraceTrait::Trace, NameTrait::GetName, + std::is_polymorphic::value); } }; diff --git a/deps/v8/include/cppgc/internal/persistent-node.h b/deps/v8/include/cppgc/internal/persistent-node.h index 6524f326a56695..5626b17820b190 100644 --- a/deps/v8/include/cppgc/internal/persistent-node.h +++ b/deps/v8/include/cppgc/internal/persistent-node.h @@ -19,6 +19,8 @@ class Visitor; namespace internal { +class CrossThreadPersistentRegion; + // PersistentNode represents a variant of two states: // 1) traceable node with a back pointer to the Persistent object; // 2) freelist entry. @@ -30,6 +32,7 @@ class PersistentNode final { PersistentNode& operator=(const PersistentNode&) = delete; void InitializeAsUsedNode(void* owner, TraceCallback trace) { + CPPGC_DCHECK(trace); owner_ = owner; trace_ = trace; } @@ -89,12 +92,15 @@ class V8_EXPORT PersistentRegion final { } PersistentNode* node = free_list_head_; free_list_head_ = free_list_head_->FreeListNext(); + CPPGC_DCHECK(!node->IsUsed()); node->InitializeAsUsedNode(owner, trace); nodes_in_use_++; return node; } void FreeNode(PersistentNode* node) { + CPPGC_DCHECK(node); + CPPGC_DCHECK(node->IsUsed()); node->InitializeAsFreeNode(free_list_head_); free_list_head_ = node; CPPGC_DCHECK(nodes_in_use_ > 0); @@ -113,6 +119,8 @@ class V8_EXPORT PersistentRegion final { std::vector> nodes_; PersistentNode* free_list_head_ = nullptr; size_t nodes_in_use_ = 0; + + friend class CrossThreadPersistentRegion; }; // CrossThreadPersistent uses PersistentRegion but protects it using this lock @@ -125,6 +133,38 @@ class V8_EXPORT PersistentRegionLock final { static void AssertLocked(); }; +// Variant of PersistentRegion that checks whether the PersistentRegionLock is +// locked. +class V8_EXPORT CrossThreadPersistentRegion final { + public: + CrossThreadPersistentRegion() = default; + // Clears Persistent fields to avoid stale pointers after heap teardown. + ~CrossThreadPersistentRegion(); + + CrossThreadPersistentRegion(const CrossThreadPersistentRegion&) = delete; + CrossThreadPersistentRegion& operator=(const CrossThreadPersistentRegion&) = + delete; + + V8_INLINE PersistentNode* AllocateNode(void* owner, TraceCallback trace) { + PersistentRegionLock::AssertLocked(); + return persistent_region_.AllocateNode(owner, trace); + } + + V8_INLINE void FreeNode(PersistentNode* node) { + PersistentRegionLock::AssertLocked(); + persistent_region_.FreeNode(node); + } + + void Trace(Visitor*); + + size_t NodesInUse() const; + + void ClearAllUsedNodes(); + + private: + PersistentRegion persistent_region_; +}; + } // namespace internal } // namespace cppgc diff --git a/deps/v8/include/cppgc/internal/pointer-policies.h b/deps/v8/include/cppgc/internal/pointer-policies.h index ea86a0a7057f45..ceb002f02d555f 100644 --- a/deps/v8/include/cppgc/internal/pointer-policies.h +++ b/deps/v8/include/cppgc/internal/pointer-policies.h @@ -16,6 +16,7 @@ namespace cppgc { namespace internal { class PersistentRegion; +class CrossThreadPersistentRegion; // Tags to distinguish between strong and weak member types. class StrongMemberTag; @@ -115,12 +116,14 @@ struct WeakPersistentPolicy { struct StrongCrossThreadPersistentPolicy { using IsStrongPersistent = std::true_type; - static V8_EXPORT PersistentRegion& GetPersistentRegion(const void* object); + static V8_EXPORT CrossThreadPersistentRegion& GetPersistentRegion( + const void* object); }; struct WeakCrossThreadPersistentPolicy { using IsStrongPersistent = std::false_type; - static V8_EXPORT PersistentRegion& GetPersistentRegion(const void* object); + static V8_EXPORT CrossThreadPersistentRegion& GetPersistentRegion( + const void* object); }; // Forward declarations setting up the default policies. diff --git a/deps/v8/include/cppgc/testing.h b/deps/v8/include/cppgc/testing.h index f93897a9aafc81..229ce140f94277 100644 --- a/deps/v8/include/cppgc/testing.h +++ b/deps/v8/include/cppgc/testing.h @@ -44,6 +44,55 @@ class V8_EXPORT V8_NODISCARD OverrideEmbedderStackStateScope final { HeapHandle& heap_handle_; }; +/** + * Testing interface for managed heaps that allows for controlling garbage + * collection timings. Embedders should use this class when testing the + * interaction of their code with incremental/concurrent garbage collection. + */ +class V8_EXPORT StandaloneTestingHeap final { + public: + explicit StandaloneTestingHeap(HeapHandle&); + + /** + * Start an incremental garbage collection. + */ + void StartGarbageCollection(); + + /** + * Perform an incremental step. This will also schedule concurrent steps if + * needed. + * + * \param stack_state The state of the stack during the step. + */ + bool PerformMarkingStep(EmbedderStackState stack_state); + + /** + * Finalize the current garbage collection cycle atomically. + * Assumes that garbage collection is in progress. + * + * \param stack_state The state of the stack for finalizing the garbage + * collection cycle. + */ + void FinalizeGarbageCollection(EmbedderStackState stack_state); + + /** + * Toggle main thread marking on/off. Allows to stress concurrent marking + * (e.g. to better detect data races). + * + * \param should_mark Denotes whether the main thread should contribute to + * marking. Defaults to true. + */ + void ToggleMainThreadMarking(bool should_mark); + + /** + * Force enable compaction for the next garbage collection cycle. + */ + void ForceCompactionForNextGarbageCollection(); + + private: + HeapHandle& heap_handle_; +}; + } // namespace testing } // namespace cppgc diff --git a/deps/v8/include/cppgc/visitor.h b/deps/v8/include/cppgc/visitor.h index 95fd5fc842c1b2..98de9957bd66ac 100644 --- a/deps/v8/include/cppgc/visitor.h +++ b/deps/v8/include/cppgc/visitor.h @@ -158,22 +158,67 @@ class V8_EXPORT Visitor { } /** - * Trace method for ephemerons. Used for tracing raw ephemeron in which the - * key and value are kept separately. + * Trace method for a single ephemeron. Used for tracing a raw ephemeron in + * which the `key` and `value` are kept separately. * - * \param key WeakMember reference weakly retaining a key object. - * \param value Member reference weakly retaining a value object. + * \param weak_member_key WeakMember reference weakly retaining a key object. + * \param member_value Member reference with ephemeron semantics. */ - template - void TraceEphemeron(const WeakMember& key, const V* value) { - const K* k = key.GetRawAtomic(); - if (!k) return; - TraceDescriptor value_desc = TraceTrait::GetTraceDescriptor(value); - // `value` must always be non-null. `value_desc.base_object_payload` may be - // null in the case that value is not a garbage-collected object but only - // traceable. + template + void TraceEphemeron(const WeakMember& weak_member_key, + const Member* member_value) { + const KeyType* key = weak_member_key.GetRawAtomic(); + if (!key) return; + + // `value` must always be non-null. + CPPGC_DCHECK(member_value); + const ValueType* value = member_value->GetRawAtomic(); + if (!value) return; + + // KeyType and ValueType may refer to GarbageCollectedMixin. + TraceDescriptor value_desc = + TraceTrait::GetTraceDescriptor(value); + CPPGC_DCHECK(value_desc.base_object_payload); + const void* key_base_object_payload = + TraceTrait::GetTraceDescriptor(key).base_object_payload; + CPPGC_DCHECK(key_base_object_payload); + + VisitEphemeron(key_base_object_payload, value, value_desc); + } + + /** + * Trace method for a single ephemeron. Used for tracing a raw ephemeron in + * which the `key` and `value` are kept separately. Note that this overload + * is for non-GarbageCollected `value`s that can be traced though. + * + * \param key `WeakMember` reference weakly retaining a key object. + * \param value Reference weakly retaining a value object. Note that + * `ValueType` here should not be `Member`. It is expected that + * `TraceTrait::GetTraceDescriptor(value)` returns a + * `TraceDescriptor` with a null base pointer but a valid trace method. + */ + template + void TraceEphemeron(const WeakMember& weak_member_key, + const ValueType* value) { + static_assert(!IsGarbageCollectedOrMixinTypeV, + "garbage-collected types must use WeakMember and Member"); + const KeyType* key = weak_member_key.GetRawAtomic(); + if (!key) return; + + // `value` must always be non-null. CPPGC_DCHECK(value); - VisitEphemeron(key, value, value_desc); + TraceDescriptor value_desc = + TraceTrait::GetTraceDescriptor(value); + // `value_desc.base_object_payload` must be null as this override is only + // taken for non-garbage-collected values. + CPPGC_DCHECK(!value_desc.base_object_payload); + + // KeyType might be a GarbageCollectedMixin. + const void* key_base_object_payload = + TraceTrait::GetTraceDescriptor(key).base_object_payload; + CPPGC_DCHECK(key_base_object_payload); + + VisitEphemeron(key_base_object_payload, value, value_desc); } /** @@ -327,14 +372,6 @@ class V8_EXPORT Visitor { friend class internal::VisitorBase; }; -template -struct TraceTrait> { - static TraceDescriptor GetTraceDescriptor(const void* self) { - return TraceTrait::GetTraceDescriptor( - static_cast*>(self)->GetRawAtomic()); - } -}; - } // namespace cppgc #endif // INCLUDE_CPPGC_VISITOR_H_ diff --git a/deps/v8/include/v8-cppgc.h b/deps/v8/include/v8-cppgc.h index 2c22193046e4a6..fba35f71c9ae07 100644 --- a/deps/v8/include/v8-cppgc.h +++ b/deps/v8/include/v8-cppgc.h @@ -9,6 +9,7 @@ #include #include +#include "cppgc/common.h" #include "cppgc/custom-space.h" #include "cppgc/heap-statistics.h" #include "cppgc/internal/write-barrier.h" @@ -118,6 +119,20 @@ class V8_EXPORT CppHeap { cppgc::HeapStatistics CollectStatistics( cppgc::HeapStatistics::DetailLevel detail_level); + /** + * Enables a detached mode that allows testing garbage collection using + * `cppgc::testing` APIs. Once used, the heap cannot be attached to an + * `Isolate` anymore. + */ + void EnableDetachedGarbageCollectionsForTesting(); + + /** + * Performs a stop-the-world garbage collection for testing purposes. + * + * \param stack_state The stack state to assume for the garbage collection. + */ + void CollectGarbageForTesting(cppgc::EmbedderStackState stack_state); + private: CppHeap() = default; diff --git a/deps/v8/include/v8-fast-api-calls.h b/deps/v8/include/v8-fast-api-calls.h index ca5fc764a3d525..f8b5acb093456e 100644 --- a/deps/v8/include/v8-fast-api-calls.h +++ b/deps/v8/include/v8-fast-api-calls.h @@ -187,6 +187,9 @@ #include #include +#include +#include + #include "v8config.h" // NOLINT(build/include_directory) namespace v8 { @@ -205,39 +208,106 @@ class CTypeInfo { kV8Value, }; - // kCallbackOptionsType and kInvalidType are not part of the Type enum - // because they are only used internally. Use values 255 and 254 that - // are larger than any valid Type enum. + // kCallbackOptionsType is not part of the Type enum + // because it is only used internally. Use value 255 that is larger + // than any valid Type enum. static constexpr Type kCallbackOptionsType = Type(255); - static constexpr Type kInvalidType = Type(254); - enum class ArgFlags : uint8_t { + enum class Flags : uint8_t { kNone = 0, }; - explicit constexpr CTypeInfo(Type type, ArgFlags flags = ArgFlags::kNone) + explicit constexpr CTypeInfo(Type type, Flags flags = Flags::kNone) : type_(type), flags_(flags) {} constexpr Type GetType() const { return type_; } - constexpr ArgFlags GetFlags() const { return flags_; } + constexpr Flags GetFlags() const { return flags_; } + + private: + Type type_; + Flags flags_; +}; + +class V8_EXPORT CFunctionInfo { + public: + // Construct a struct to hold a CFunction's type information. + // |return_info| describes the function's return type. + // |arg_info| is an array of |arg_count| CTypeInfos describing the + // arguments. Only the last argument may be of the special type + // CTypeInfo::kCallbackOptionsType. + CFunctionInfo(const CTypeInfo& return_info, unsigned int arg_count, + const CTypeInfo* arg_info); + + const CTypeInfo& ReturnInfo() const { return return_info_; } + + // The argument count, not including the v8::FastApiCallbackOptions + // if present. + unsigned int ArgumentCount() const { + return HasOptions() ? arg_count_ - 1 : arg_count_; + } + + // |index| must be less than ArgumentCount(). + // Note: if the last argument passed on construction of CFunctionInfo + // has type CTypeInfo::kCallbackOptionsType, it is not included in + // ArgumentCount(). + const CTypeInfo& ArgumentInfo(unsigned int index) const; - static const CTypeInfo& Invalid() { - static CTypeInfo invalid = CTypeInfo(kInvalidType); - return invalid; + bool HasOptions() const { + // The options arg is always the last one. + return arg_count_ > 0 && arg_info_[arg_count_ - 1].GetType() == + CTypeInfo::kCallbackOptionsType; } private: - Type type_; - ArgFlags flags_; + const CTypeInfo return_info_; + const unsigned int arg_count_; + const CTypeInfo* arg_info_; }; -class CFunctionInfo { +class V8_EXPORT CFunction { public: - virtual const CTypeInfo& ReturnInfo() const = 0; - virtual unsigned int ArgumentCount() const = 0; - virtual const CTypeInfo& ArgumentInfo(unsigned int index) const = 0; - virtual bool HasOptions() const = 0; + constexpr CFunction() : address_(nullptr), type_info_(nullptr) {} + + const CTypeInfo& ReturnInfo() const { return type_info_->ReturnInfo(); } + + const CTypeInfo& ArgumentInfo(unsigned int index) const { + return type_info_->ArgumentInfo(index); + } + + unsigned int ArgumentCount() const { return type_info_->ArgumentCount(); } + + const void* GetAddress() const { return address_; } + const CFunctionInfo* GetTypeInfo() const { return type_info_; } + + template + static CFunction Make(F* func) { + return ArgUnwrap::Make(func); + } + + template + V8_DEPRECATED("Use CFunctionBuilder instead.") + static CFunction MakeWithFallbackSupport(F* func) { + return ArgUnwrap::Make(func); + } + + CFunction(const void* address, const CFunctionInfo* type_info); + + private: + const void* address_; + const CFunctionInfo* type_info_; + + template + class ArgUnwrap { + static_assert(sizeof(F) != sizeof(F), + "CFunction must be created from a function pointer."); + }; + + template + class ArgUnwrap { + public: + static CFunction Make(R (*func)(Args...)); + }; }; struct ApiObject { @@ -272,37 +342,6 @@ struct FastApiCallbackOptions { namespace internal { -template -struct GetCType; - -#define SPECIALIZE_GET_C_TYPE_FOR(ctype, ctypeinfo) \ - template <> \ - struct GetCType { \ - static constexpr CTypeInfo Get() { \ - return CTypeInfo(CTypeInfo::Type::ctypeinfo); \ - } \ - }; - -#define SUPPORTED_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) - -SUPPORTED_C_TYPES(SPECIALIZE_GET_C_TYPE_FOR) - -template <> -struct GetCType { - static constexpr CTypeInfo Get() { - return CTypeInfo(CTypeInfo::kCallbackOptionsType); - } -}; - // Helper to count the number of occurances of `T` in `List` template struct count : std::integral_constant {}; @@ -312,108 +351,179 @@ struct count template struct count : count {}; -template +template class CFunctionInfoImpl : public CFunctionInfo { - public: static constexpr int kOptionsArgCount = - count(); + count(); static constexpr int kReceiverCount = 1; - CFunctionInfoImpl() - : return_info_(internal::GetCType::Get()), - arg_count_(sizeof...(Args) - kOptionsArgCount), - arg_info_{internal::GetCType::Get()...} { - static_assert(kOptionsArgCount == 0 || kOptionsArgCount == 1, - "Only one options parameter is supported."); - static_assert(sizeof...(Args) >= kOptionsArgCount + kReceiverCount, - "The receiver or the fallback argument is missing."); - constexpr CTypeInfo::Type type = internal::GetCType::Get().GetType(); - static_assert(type == CTypeInfo::Type::kVoid || - type == CTypeInfo::Type::kBool || - type == CTypeInfo::Type::kInt32 || - type == CTypeInfo::Type::kUint32 || - type == CTypeInfo::Type::kFloat32 || - type == CTypeInfo::Type::kFloat64, + + static_assert(kOptionsArgCount == 0 || kOptionsArgCount == 1, + "Only one options parameter is supported."); + + static_assert(sizeof...(ArgBuilders) >= kOptionsArgCount + kReceiverCount, + "The receiver or the options argument is missing."); + + public: + constexpr CFunctionInfoImpl() + : CFunctionInfo(RetBuilder::Build(), sizeof...(ArgBuilders), + arg_info_storage_), + arg_info_storage_{ArgBuilders::Build()...} { + constexpr CTypeInfo::Type kReturnType = RetBuilder::Build().GetType(); + static_assert(kReturnType == CTypeInfo::Type::kVoid || + kReturnType == CTypeInfo::Type::kBool || + kReturnType == CTypeInfo::Type::kInt32 || + kReturnType == CTypeInfo::Type::kUint32 || + kReturnType == CTypeInfo::Type::kFloat32 || + kReturnType == CTypeInfo::Type::kFloat64, "64-bit int and api object values are not currently " "supported return types."); } - const CTypeInfo& ReturnInfo() const override { return return_info_; } - unsigned int ArgumentCount() const override { return arg_count_; } - const CTypeInfo& ArgumentInfo(unsigned int index) const override { - if (index >= ArgumentCount()) { - return CTypeInfo::Invalid(); - } - return arg_info_[index]; - } - bool HasOptions() const override { return kOptionsArgCount == 1; } - private: - const CTypeInfo return_info_; - const unsigned int arg_count_; - const CTypeInfo arg_info_[sizeof...(Args)]; + const CTypeInfo arg_info_storage_[sizeof...(ArgBuilders)]; }; -} // namespace internal +template +struct TypeInfoHelper { + static_assert(sizeof(T) != sizeof(T), "This type is not supported"); +}; -class V8_EXPORT CFunction { - public: - constexpr CFunction() : address_(nullptr), type_info_(nullptr) {} +#define SPECIALIZE_GET_TYPE_INFO_HELPER_FOR(T, Enum) \ + template <> \ + struct TypeInfoHelper { \ + static constexpr CTypeInfo::Flags Flags() { \ + return CTypeInfo::Flags::kNone; \ + } \ + \ + static constexpr CTypeInfo::Type Type() { return CTypeInfo::Type::Enum; } \ + }; - const CTypeInfo& ReturnInfo() const { return type_info_->ReturnInfo(); } +#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) - const CTypeInfo& ArgumentInfo(unsigned int index) const { - return type_info_->ArgumentInfo(index); +BASIC_C_TYPES(SPECIALIZE_GET_TYPE_INFO_HELPER_FOR) + +#undef BASIC_C_TYPES + +template <> +struct TypeInfoHelper { + static constexpr CTypeInfo::Flags Flags() { return CTypeInfo::Flags::kNone; } + + static constexpr CTypeInfo::Type Type() { + return CTypeInfo::kCallbackOptionsType; } +}; - unsigned int ArgumentCount() const { return type_info_->ArgumentCount(); } +template +class CTypeInfoBuilder { + public: + using BaseType = T; + + static constexpr CTypeInfo Build() { + // Get the flags and merge in any additional flags. + uint8_t flags = uint8_t(TypeInfoHelper::Flags()); + int unused[] = {0, (flags |= uint8_t(Flags), 0)...}; + // With C++17, we could use a "..." fold expression over a parameter pack. + // Since we're still using C++14, we have to evaluate an OR expresion while + // constructing an unused list of 0's. This applies the binary operator + // for each value in Flags. + (void)unused; + + // Return the same type with the merged flags. + return CTypeInfo(TypeInfoHelper::Type(), CTypeInfo::Flags(flags)); + } +}; - const void* GetAddress() const { return address_; } - const CFunctionInfo* GetTypeInfo() const { return type_info_; } +template +class CFunctionBuilderWithFunction { + public: + explicit constexpr CFunctionBuilderWithFunction(const void* fn) : fn_(fn) {} - template - static CFunction Make(F* func) { - return ArgUnwrap::Make(func); + template + constexpr auto Ret() { + return CFunctionBuilderWithFunction< + CTypeInfoBuilder, + ArgBuilders...>(fn_); } - template - V8_DEPRECATED("Use CFunction::Make instead.") - static CFunction MakeWithFallbackSupport(F* func) { - return ArgUnwrap::Make(func); + template + constexpr auto Arg() { + // Return a copy of the builder with the Nth arg builder merged with + // template parameter pack Flags. + return ArgImpl( + std::make_index_sequence()); } - template - static CFunction Make(F* func, const CFunctionInfo* type_info) { - return CFunction(reinterpret_cast(func), type_info); + auto Build() { + static CFunctionInfoImpl instance; + return CFunction(fn_, &instance); } private: - const void* address_; - const CFunctionInfo* type_info_; + template + struct GetArgBuilder; + + // Returns the same ArgBuilder as the one at index N, including its flags. + // Flags in the template parameter pack are ignored. + template + struct GetArgBuilder { + using type = + typename std::tuple_element>::type; + }; - CFunction(const void* address, const CFunctionInfo* type_info); + // Returns an ArgBuilder with the same base type as the one at index N, + // but merges the flags with the flags in the template parameter pack. + template + struct GetArgBuilder { + using type = CTypeInfoBuilder< + typename std::tuple_element>::type::BaseType, + std::tuple_element>::type::Build() + .GetFlags(), + Flags...>; + }; - template - static CFunctionInfo* GetCFunctionInfo() { - static internal::CFunctionInfoImpl instance; - return &instance; + // Return a copy of the CFunctionBuilder, but merges the Flags on ArgBuilder + // index N with the new Flags passed in the template parameter pack. + template + constexpr auto ArgImpl(std::index_sequence) { + return CFunctionBuilderWithFunction< + RetBuilder, typename GetArgBuilder::type...>(fn_); } - template - class ArgUnwrap { - static_assert(sizeof(F) != sizeof(F), - "CFunction must be created from a function pointer."); - }; + const void* fn_; +}; + +class CFunctionBuilder { + public: + constexpr CFunctionBuilder() {} template - class ArgUnwrap { - public: - static CFunction Make(R (*func)(Args...)) { - return CFunction(reinterpret_cast(func), - GetCFunctionInfo()); - } - }; + constexpr auto Fn(R (*fn)(Args...)) { + return CFunctionBuilderWithFunction, + CTypeInfoBuilder...>( + reinterpret_cast(fn)); + } }; +} // namespace internal + +// static +template +CFunction CFunction::ArgUnwrap::Make(R (*func)(Args...)) { + return internal::CFunctionBuilder().Fn(func).Build(); +} + +using CFunctionBuilder = internal::CFunctionBuilder; + } // namespace v8 #endif // INCLUDE_V8_FAST_API_CALLS_H_ diff --git a/deps/v8/include/v8-internal.h b/deps/v8/include/v8-internal.h index 8abbcfb416b2a6..eb18f76504d6fa 100644 --- a/deps/v8/include/v8-internal.h +++ b/deps/v8/include/v8-internal.h @@ -358,8 +358,9 @@ class Internals { internal::Address heap_object_ptr, int offset) { #ifdef V8_COMPRESS_POINTERS uint32_t value = ReadRawField(heap_object_ptr, offset); - internal::Address root = GetRootFromOnHeapAddress(heap_object_ptr); - return root + static_cast(static_cast(value)); + internal::Address base = + GetPtrComprCageBaseFromOnHeapAddress(heap_object_ptr); + return base + static_cast(static_cast(value)); #else return ReadRawField(heap_object_ptr, offset); #endif @@ -411,18 +412,19 @@ class Internals { #ifdef V8_COMPRESS_POINTERS // See v8:7703 or src/ptr-compr.* for details about pointer compression. - static constexpr size_t kPtrComprHeapReservationSize = size_t{1} << 32; - static constexpr size_t kPtrComprIsolateRootAlignment = size_t{1} << 32; + static constexpr size_t kPtrComprCageReservationSize = size_t{1} << 32; + static constexpr size_t kPtrComprCageBaseAlignment = size_t{1} << 32; - V8_INLINE static internal::Address GetRootFromOnHeapAddress( + V8_INLINE static internal::Address GetPtrComprCageBaseFromOnHeapAddress( internal::Address addr) { - return addr & -static_cast(kPtrComprIsolateRootAlignment); + return addr & -static_cast(kPtrComprCageBaseAlignment); } V8_INLINE static internal::Address DecompressTaggedAnyField( internal::Address heap_object_ptr, uint32_t value) { - internal::Address root = GetRootFromOnHeapAddress(heap_object_ptr); - return root + static_cast(static_cast(value)); + internal::Address base = + GetPtrComprCageBaseFromOnHeapAddress(heap_object_ptr); + return base + static_cast(static_cast(value)); } #endif // V8_COMPRESS_POINTERS diff --git a/deps/v8/include/v8-platform.h b/deps/v8/include/v8-platform.h index e27d26cb692e46..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; } }; /** @@ -408,7 +394,6 @@ class PageAllocator { kNoAccess, kRead, kReadWrite, - // TODO(hpayer): Remove this flag. Memory should never be rwx. kReadWriteExecute, kReadExecute, // Set this when reserving memory that will later require kReadWriteExecute diff --git a/deps/v8/include/v8-version.h b/deps/v8/include/v8-version.h index 0e562ccd6f47a9..747b33f6da13e6 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 0 -#define V8_BUILD_NUMBER 257 -#define V8_PATCH_LEVEL 25 +#define V8_MINOR_VERSION 1 +#define V8_BUILD_NUMBER 269 +#define V8_PATCH_LEVEL 36 // 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 e4448db1910069..6b672ca750cec5 100644 --- a/deps/v8/include/v8.h +++ b/deps/v8/include/v8.h @@ -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