From 013370ec55bd744818c62eb1881b34495b7fbb21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Wed, 11 Jun 2025 11:11:55 +0200 Subject: [PATCH 01/12] deps: update V8 to 13.8.258.14 --- deps/v8/.gitignore | 3 + deps/v8/.ycm_extra_conf.py | 6 +- deps/v8/AUTHORS | 2 + deps/v8/BUILD.bazel | 73 +- deps/v8/BUILD.gn | 155 +- deps/v8/DEPS | 269 +- deps/v8/bazel/defs.bzl | 1 - deps/v8/gni/v8.gni | 14 + deps/v8/include/cppgc/allocation.h | 6 +- .../include/cppgc/cross-thread-persistent.h | 12 +- .../include/cppgc/internal/finalizer-trait.h | 2 +- deps/v8/include/cppgc/internal/gc-info.h | 6 +- deps/v8/include/cppgc/internal/name-trait.h | 2 +- deps/v8/include/cppgc/member.h | 14 +- deps/v8/include/cppgc/persistent.h | 8 +- deps/v8/include/cppgc/tagged-member.h | 6 +- deps/v8/include/cppgc/trace-trait.h | 3 +- deps/v8/include/cppgc/visitor.h | 19 +- deps/v8/include/v8-array-buffer.h | 2 +- deps/v8/include/v8-context.h | 8 +- deps/v8/include/v8-fast-api-calls.h | 9 +- deps/v8/include/v8-function-callback.h | 50 +- deps/v8/include/v8-internal.h | 65 +- deps/v8/include/v8-isolate.h | 35 + deps/v8/include/v8-local-handle.h | 34 +- deps/v8/include/v8-maybe.h | 18 +- deps/v8/include/v8-message.h | 3 + deps/v8/include/v8-object.h | 11 +- deps/v8/include/v8-persistent-handle.h | 8 +- deps/v8/include/v8-platform.h | 45 +- deps/v8/include/v8-primitive.h | 16 +- deps/v8/include/v8-profiler.h | 4 + deps/v8/include/v8-traced-handle.h | 12 +- deps/v8/include/v8-version.h | 6 +- deps/v8/include/v8config.h | 6 - deps/v8/infra/mb/mb_config.pyl | 44 +- deps/v8/infra/testing/builders.pyl | 204 +- deps/v8/infra/whitespace.txt | 2 +- deps/v8/src/DEPS | 2 + deps/v8/src/api/api-inl.h | 320 +- deps/v8/src/api/api-macros-undef.h | 19 - deps/v8/src/api/api-macros.h | 112 - deps/v8/src/api/api-natives.cc | 9 +- deps/v8/src/api/api.cc | 2230 +- deps/v8/src/api/api.h | 130 +- deps/v8/src/asmjs/asm-js.cc | 2 +- deps/v8/src/ast/ast-value-factory.h | 2 +- deps/v8/src/ast/ast.cc | 3 +- deps/v8/src/ast/scopes.cc | 99 +- deps/v8/src/ast/scopes.h | 23 +- deps/v8/src/base/address-region.h | 4 +- deps/v8/src/base/atomic-utils.h | 37 +- deps/v8/src/base/bit-field.h | 5 +- deps/v8/src/base/bits-iterator.h | 2 +- deps/v8/src/base/bits.h | 26 +- deps/v8/src/base/bounded-page-allocator.cc | 15 +- deps/v8/src/base/bounded-page-allocator.h | 4 + deps/v8/src/base/bounds.h | 6 +- deps/v8/src/base/build_config.h | 14 +- deps/v8/src/base/contextual.h | 2 +- deps/v8/src/base/enum-set.h | 4 +- deps/v8/src/base/hashing.h | 2 +- deps/v8/src/base/hashmap-entry.h | 2 +- deps/v8/src/base/hashmap.h | 14 +- deps/v8/src/base/logging.h | 23 +- deps/v8/src/base/macros.h | 20 +- deps/v8/src/base/memory.h | 2 +- deps/v8/src/base/numerics/checked_math_impl.h | 12 +- .../src/base/numerics/safe_conversions_impl.h | 2 +- .../src/base/numerics/safe_math_shared_impl.h | 6 +- deps/v8/src/base/overflowing-math.h | 8 +- .../base/platform/memory-protection-key.cc | 64 +- .../src/base/platform/memory-protection-key.h | 61 +- deps/v8/src/base/platform/platform-posix.cc | 2 - .../src/base/platform/platform-starboard.cc | 2 - deps/v8/src/base/platform/platform.h | 19 +- deps/v8/src/base/pointer-with-payload.h | 2 +- deps/v8/src/base/region-allocator.cc | 25 +- deps/v8/src/base/region-allocator.h | 14 +- deps/v8/src/base/sanitizer/asan.h | 9 +- deps/v8/src/base/sanitizer/lsan.h | 4 +- deps/v8/src/base/template-utils.h | 14 +- deps/v8/src/base/vlq.h | 3 +- deps/v8/src/baseline/baseline-compiler.cc | 9 + deps/v8/src/bigint/util.h | 2 +- deps/v8/src/builtins/accessors.cc | 52 +- deps/v8/src/builtins/accessors.h | 61 +- deps/v8/src/builtins/arm/builtins-arm.cc | 54 + deps/v8/src/builtins/arm64/builtins-arm64.cc | 60 + deps/v8/src/builtins/array-join.tq | 138 +- deps/v8/src/builtins/base.tq | 18 +- deps/v8/src/builtins/builtins-array-gen.cc | 39 +- deps/v8/src/builtins/builtins-array.cc | 78 +- .../src/builtins/builtins-collections-gen.cc | 11 +- .../src/builtins/builtins-constructor-gen.cc | 63 +- .../src/builtins/builtins-constructor-gen.h | 4 +- .../src/builtins/builtins-conversion-gen.cc | 5 + deps/v8/src/builtins/builtins-date-gen.cc | 4 +- deps/v8/src/builtins/builtins-date.cc | 16 +- deps/v8/src/builtins/builtins-definitions.h | 176 +- .../src/builtins/builtins-effects-analyzer.cc | 146 + .../src/builtins/builtins-effects-analyzer.h | 73 + deps/v8/src/builtins/builtins-function.cc | 63 + deps/v8/src/builtins/builtins-inl.h | 7 + deps/v8/src/builtins/builtins-internal-gen.cc | 18 +- deps/v8/src/builtins/builtins-internal.cc | 3 - deps/v8/src/builtins/builtins-lazy-gen.cc | 37 +- deps/v8/src/builtins/builtins-lazy-gen.h | 11 +- .../builtins/builtins-sharedarraybuffer.cc | 8 +- deps/v8/src/builtins/builtins-string-gen.cc | 219 +- deps/v8/src/builtins/builtins-string-gen.h | 5 + deps/v8/src/builtins/builtins-temporal-gen.cc | 126 - deps/v8/src/builtins/builtins-temporal.cc | 148 +- .../src/builtins/builtins-typed-array-gen.h | 2 - deps/v8/src/builtins/builtins-typed-array.cc | 88 +- deps/v8/src/builtins/builtins-wasm-gen.cc | 37 +- deps/v8/src/builtins/builtins-wasm-gen.h | 2 + deps/v8/src/builtins/builtins.cc | 5 + deps/v8/src/builtins/builtins.h | 14 +- deps/v8/src/builtins/cast.tq | 35 +- deps/v8/src/builtins/constructor.tq | 15 +- deps/v8/src/builtins/ia32/builtins-ia32.cc | 50 + deps/v8/src/builtins/js-to-wasm.tq | 75 +- deps/v8/src/builtins/number.tq | 13 +- deps/v8/src/builtins/ppc/builtins-ppc.cc | 49 + deps/v8/src/builtins/promise-misc.tq | 8 +- deps/v8/src/builtins/riscv/builtins-riscv.cc | 48 + deps/v8/src/builtins/s390/builtins-s390.cc | 49 + .../src/builtins/setup-builtins-internal.cc | 14 +- .../builtins/typed-array-createtypedarray.tq | 27 +- deps/v8/src/builtins/typed-array-from.tq | 16 +- deps/v8/src/builtins/wasm.tq | 94 +- deps/v8/src/builtins/x64/builtins-x64.cc | 55 + deps/v8/src/codegen/arm/constants-arm.h | 4 + .../v8/src/codegen/arm/macro-assembler-arm.cc | 73 +- deps/v8/src/codegen/arm/macro-assembler-arm.h | 5 +- deps/v8/src/codegen/arm/register-arm.h | 5 + .../src/codegen/arm64/assembler-arm64-inl.h | 4 +- deps/v8/src/codegen/arm64/constants-arm64.h | 4 + .../codegen/arm64/macro-assembler-arm64.cc | 131 +- .../src/codegen/arm64/macro-assembler-arm64.h | 10 +- deps/v8/src/codegen/arm64/register-arm64.h | 5 + deps/v8/src/codegen/arm64/utils-arm64.h | 2 +- deps/v8/src/codegen/bailout-reason.h | 68 +- deps/v8/src/codegen/code-stub-assembler.cc | 659 +- deps/v8/src/codegen/code-stub-assembler.h | 102 +- deps/v8/src/codegen/compilation-cache.cc | 50 +- deps/v8/src/codegen/compilation-cache.h | 14 +- deps/v8/src/codegen/compiler.cc | 98 +- deps/v8/src/codegen/cpu-features.h | 2 + deps/v8/src/codegen/external-reference.cc | 14 +- deps/v8/src/codegen/external-reference.h | 6 +- deps/v8/src/codegen/heap-object-list.h | 4 +- deps/v8/src/codegen/ia32/constants-ia32.h | 4 + .../src/codegen/ia32/macro-assembler-ia32.cc | 57 +- .../src/codegen/ia32/macro-assembler-ia32.h | 5 +- deps/v8/src/codegen/ia32/register-ia32.h | 3 + deps/v8/src/codegen/interface-descriptors.h | 14 + .../loong64/macro-assembler-loong64.cc | 18 +- .../codegen/loong64/macro-assembler-loong64.h | 3 +- .../codegen/mips64/macro-assembler-mips64.cc | 9 +- .../src/codegen/optimized-compilation-info.cc | 9 +- deps/v8/src/codegen/ppc/assembler-ppc.h | 16 +- deps/v8/src/codegen/ppc/constants-ppc.h | 4 + .../v8/src/codegen/ppc/macro-assembler-ppc.cc | 105 +- deps/v8/src/codegen/ppc/macro-assembler-ppc.h | 9 +- deps/v8/src/codegen/ppc/register-ppc.h | 9 + deps/v8/src/codegen/register-configuration.cc | 2 - deps/v8/src/codegen/reglist-base.h | 11 +- deps/v8/src/codegen/reloc-info.h | 3 +- deps/v8/src/codegen/riscv/assembler-riscv.cc | 6 +- deps/v8/src/codegen/riscv/assembler-riscv.h | 9 +- deps/v8/src/codegen/riscv/constant-riscv-f.h | 4 +- .../v8/src/codegen/riscv/constant-riscv-zfh.h | 81 + deps/v8/src/codegen/riscv/constants-riscv.h | 7 +- .../src/codegen/riscv/extension-riscv-zfh.cc | 180 + .../src/codegen/riscv/extension-riscv-zfh.h | 76 + .../codegen/riscv/macro-assembler-riscv.cc | 122 +- .../src/codegen/riscv/macro-assembler-riscv.h | 75 +- deps/v8/src/codegen/riscv/register-riscv.h | 7 + deps/v8/src/codegen/riscv/reglist-riscv.h | 16 +- deps/v8/src/codegen/s390/assembler-s390.cc | 22 +- deps/v8/src/codegen/s390/constants-s390.h | 8 +- .../src/codegen/s390/macro-assembler-s390.cc | 153 +- .../src/codegen/s390/macro-assembler-s390.h | 5 +- deps/v8/src/codegen/s390/register-s390.h | 5 + deps/v8/src/codegen/signature.h | 2 +- deps/v8/src/codegen/tnode.h | 8 +- deps/v8/src/codegen/x64/assembler-x64.h | 8 +- deps/v8/src/codegen/x64/constants-x64.h | 4 + .../v8/src/codegen/x64/macro-assembler-x64.cc | 67 +- deps/v8/src/codegen/x64/macro-assembler-x64.h | 7 +- deps/v8/src/codegen/x64/register-x64.h | 10 + deps/v8/src/common/code-memory-access.cc | 26 +- deps/v8/src/common/code-memory-access.h | 10 +- deps/v8/src/common/globals.h | 62 +- deps/v8/src/common/message-template.h | 1 + deps/v8/src/common/ptr-compr-inl.h | 1 + deps/v8/src/common/ptr-compr.h | 4 +- deps/v8/src/common/segmented-table-inl.h | 117 +- deps/v8/src/common/segmented-table.h | 37 +- .../optimizing-compile-dispatcher.cc | 25 +- .../optimizing-compile-dispatcher.h | 6 +- deps/v8/src/compiler/access-builder.cc | 18 +- deps/v8/src/compiler/access-info.cc | 72 +- deps/v8/src/compiler/access-info.h | 3 + .../backend/arm/code-generator-arm.cc | 23 +- .../backend/arm/instruction-selector-arm.cc | 260 +- .../backend/arm64/code-generator-arm64.cc | 34 +- .../arm64/instruction-selector-arm64.cc | 389 +- .../v8/src/compiler/backend/code-generator.cc | 23 +- deps/v8/src/compiler/backend/frame-elider.cc | 3 +- .../backend/ia32/code-generator-ia32.cc | 21 +- .../backend/ia32/instruction-selector-ia32.cc | 4 +- .../src/compiler/backend/instruction-codes.h | 9 +- .../compiler/backend/instruction-scheduler.cc | 2 - .../backend/instruction-selector-adapter.h | 22 - .../compiler/backend/instruction-selector.cc | 35 +- .../compiler/backend/instruction-selector.h | 1 - deps/v8/src/compiler/backend/instruction.cc | 3 +- deps/v8/src/compiler/backend/instruction.h | 3 - .../backend/loong64/code-generator-loong64.cc | 61 +- .../loong64/instruction-selector-loong64.cc | 196 +- .../backend/mips64/code-generator-mips64.cc | 43 +- .../mips64/instruction-scheduler-mips64.cc | 1 - .../mips64/instruction-selector-mips64.cc | 172 +- .../backend/ppc/code-generator-ppc.cc | 24 +- .../backend/ppc/instruction-selector-ppc.cc | 236 +- .../compiler/backend/register-allocator.cc | 8 + .../src/compiler/backend/register-allocator.h | 2 +- .../backend/riscv/code-generator-riscv.cc | 23 +- .../riscv/instruction-scheduler-riscv.cc | 1 - .../riscv/instruction-selector-riscv.h | 392 +- .../riscv/instruction-selector-riscv32.cc | 195 +- .../riscv/instruction-selector-riscv64.cc | 253 +- .../backend/s390/code-generator-s390.cc | 24 +- .../backend/s390/instruction-codes-s390.h | 1 + .../s390/instruction-scheduler-s390.cc | 1 + .../backend/s390/instruction-selector-s390.cc | 232 +- .../backend/x64/code-generator-x64.cc | 31 +- .../backend/x64/instruction-selector-x64.cc | 14 +- .../v8/src/compiler/bytecode-graph-builder.cc | 33 +- deps/v8/src/compiler/c-linkage.cc | 40 +- deps/v8/src/compiler/code-assembler.cc | 5 +- deps/v8/src/compiler/code-assembler.h | 20 +- .../src/compiler/compilation-dependencies.cc | 14 +- .../src/compiler/compilation-dependencies.h | 2 +- deps/v8/src/compiler/control-path-state.h | 7 +- deps/v8/src/compiler/escape-analysis.cc | 10 +- deps/v8/src/compiler/frame-states.cc | 5 + deps/v8/src/compiler/globals.h | 22 - deps/v8/src/compiler/graph-assembler.cc | 9 + deps/v8/src/compiler/graph-assembler.h | 2 + deps/v8/src/compiler/heap-refs.cc | 44 +- deps/v8/src/compiler/heap-refs.h | 17 +- deps/v8/src/compiler/js-call-reducer.cc | 184 +- deps/v8/src/compiler/js-call-reducer.h | 6 +- .../src/compiler/js-context-specialization.cc | 8 +- deps/v8/src/compiler/js-generic-lowering.cc | 156 +- deps/v8/src/compiler/js-graph.cc | 1 + deps/v8/src/compiler/js-heap-broker.cc | 9 +- deps/v8/src/compiler/js-heap-broker.h | 2 +- deps/v8/src/compiler/js-inlining-heuristic.cc | 132 +- deps/v8/src/compiler/js-inlining-heuristic.h | 9 +- deps/v8/src/compiler/js-inlining.cc | 2 +- .../js-native-context-specialization.cc | 66 +- deps/v8/src/compiler/js-operator.cc | 26 + deps/v8/src/compiler/js-operator.h | 17 +- deps/v8/src/compiler/js-typed-lowering.cc | 48 +- deps/v8/src/compiler/load-elimination.cc | 4 + deps/v8/src/compiler/load-elimination.h | 8 + .../src/compiler/machine-operator-reducer.h | 2 +- deps/v8/src/compiler/memory-lowering.cc | 2 +- deps/v8/src/compiler/opcodes.h | 271 +- deps/v8/src/compiler/operation-typer.cc | 21 +- deps/v8/src/compiler/operation-typer.h | 1 + deps/v8/src/compiler/operator-properties.cc | 3 + deps/v8/src/compiler/pipeline-data-inl.h | 2 +- deps/v8/src/compiler/pipeline.cc | 19 +- deps/v8/src/compiler/processed-feedback.h | 2 + deps/v8/src/compiler/representation-change.cc | 96 +- .../compiler/simplified-lowering-verifier.cc | 3 + deps/v8/src/compiler/simplified-lowering.cc | 136 +- .../compiler/simplified-operator-reducer.cc | 12 + deps/v8/src/compiler/simplified-operator.cc | 315 +- deps/v8/src/compiler/simplified-operator.h | 9 +- deps/v8/src/compiler/turbofan-typer.cc | 15 + deps/v8/src/compiler/turbofan-types.cc | 3 +- deps/v8/src/compiler/turbofan-types.h | 1 + deps/v8/src/compiler/turboshaft/assembler.h | 70 +- .../turboshaft/builtin-call-descriptors.h | 12 + .../csa-branch-elimination-phase.cc | 20 + .../turboshaft/csa-branch-elimination-phase.h | 20 + .../csa-early-machine-optimization-phase.cc | 20 + .../csa-early-machine-optimization-phase.h | 20 + .../turboshaft/csa-effects-computation.cc | 177 + .../turboshaft/csa-effects-computation.h | 45 + .../csa-late-escape-analysis-phase.cc | 20 + .../csa-late-escape-analysis-phase.h | 20 + .../turboshaft/csa-load-elimination-phase.cc | 20 + .../turboshaft/csa-load-elimination-phase.h | 20 + .../csa-memory-optimization-phase.cc | 25 + .../csa-memory-optimization-phase.h | 20 + .../compiler/turboshaft/csa-optimize-phase.cc | 55 - .../compiler/turboshaft/csa-optimize-phase.h | 44 - .../fast-api-call-lowering-reducer.h | 9 +- deps/v8/src/compiler/turboshaft/fast-hash.h | 10 +- .../src/compiler/turboshaft/graph-builder.cc | 94 +- deps/v8/src/compiler/turboshaft/graph.h | 15 +- .../turboshaft/int64-lowering-reducer.h | 14 +- .../late-load-elimination-reducer.cc | 28 +- .../late-load-elimination-reducer.h | 23 +- .../load-store-simplification-reducer.h | 6 + .../v8/src/compiler/turboshaft/loop-finder.cc | 14 + deps/v8/src/compiler/turboshaft/loop-finder.h | 12 +- .../turboshaft/loop-peeling-reducer.h | 21 +- .../turboshaft/loop-unrolling-reducer.h | 39 +- .../turboshaft/machine-lowering-phase.cc | 5 +- .../turboshaft/machine-lowering-reducer-inl.h | 234 +- .../turboshaft/machine-optimization-reducer.h | 38 +- .../maglev-early-lowering-reducer-inl.h | 2 +- .../turboshaft/memory-optimization-reducer.cc | 13 + .../turboshaft/memory-optimization-reducer.h | 38 +- deps/v8/src/compiler/turboshaft/operations.cc | 119 +- deps/v8/src/compiler/turboshaft/operations.h | 239 +- deps/v8/src/compiler/turboshaft/opmasks.h | 1 + deps/v8/src/compiler/turboshaft/pipelines.cc | 17 +- .../turboshaft/turbolev-graph-builder.cc | 150 +- deps/v8/src/compiler/turboshaft/types.h | 8 +- deps/v8/src/compiler/turboshaft/use-map.cc | 4 +- deps/v8/src/compiler/turboshaft/use-map.h | 61 +- .../turboshaft/value-numbering-reducer.h | 88 +- .../wasm-gc-typed-optimization-reducer.cc | 8 +- .../wasm-gc-typed-optimization-reducer.h | 24 +- .../wasm-in-js-inlining-reducer-inl.h | 37 +- .../wasm-load-elimination-reducer.h | 49 +- .../turboshaft/wasm-lowering-reducer.h | 198 +- .../compiler/turboshaft/wasm-revec-reducer.cc | 30 +- .../compiler/turboshaft/wasm-revec-reducer.h | 9 +- deps/v8/src/compiler/type-cache.h | 12 + deps/v8/src/compiler/use-info.h | 48 +- deps/v8/src/compiler/verifier.cc | 33 + deps/v8/src/compiler/wasm-compiler.cc | 32 +- deps/v8/src/compiler/wasm-compiler.h | 7 +- .../src/compiler/wasm-gc-operator-reducer.cc | 40 +- deps/v8/src/compiler/wasm-graph-assembler.h | 2 +- deps/v8/src/compiler/wasm-inlining-into-js.cc | 1 + deps/v8/src/compiler/wasm-load-elimination.cc | 14 +- deps/v8/src/compiler/wasm-typer.cc | 13 +- deps/v8/src/d8/async-hooks-wrapper.cc | 2 +- deps/v8/src/d8/d8-console.cc | 38 +- deps/v8/src/d8/d8-test.cc | 48 +- deps/v8/src/d8/d8.cc | 50 +- deps/v8/src/d8/d8.h | 3 +- deps/v8/src/date/date.cc | 9 +- deps/v8/src/date/date.h | 12 - deps/v8/src/debug/debug-evaluate.cc | 9 +- deps/v8/src/debug/debug-interface.cc | 239 +- deps/v8/src/debug/debug-interface.h | 9 +- deps/v8/src/debug/debug-property-iterator.cc | 2 +- deps/v8/src/debug/debug-scopes.cc | 44 +- deps/v8/src/debug/debug-scopes.h | 1 + deps/v8/src/debug/debug.cc | 38 +- deps/v8/src/debug/debug.h | 2 - deps/v8/src/debug/interface-types.h | 5 +- deps/v8/src/debug/liveedit.cc | 53 +- .../src/debug/wasm/gdb-server/gdb-server.cc | 2 +- .../v8/src/deoptimizer/arm/deoptimizer-arm.cc | 15 +- .../deoptimizer/arm64/deoptimizer-arm64.cc | 17 +- deps/v8/src/deoptimizer/deoptimize-reason.h | 1 + deps/v8/src/deoptimizer/deoptimizer.cc | 80 +- deps/v8/src/deoptimizer/deoptimizer.h | 8 +- .../src/deoptimizer/ia32/deoptimizer-ia32.cc | 13 +- .../v8/src/deoptimizer/ppc/deoptimizer-ppc.cc | 15 +- .../deoptimizer/riscv/deoptimizer-riscv.cc | 13 +- .../src/deoptimizer/s390/deoptimizer-s390.cc | 17 +- deps/v8/src/deoptimizer/translated-state.cc | 15 +- .../v8/src/deoptimizer/x64/deoptimizer-x64.cc | 7 +- deps/v8/src/diagnostics/gdb-jit.cc | 2 - deps/v8/src/diagnostics/objects-debug.cc | 21 +- deps/v8/src/diagnostics/objects-printer.cc | 153 +- deps/v8/src/diagnostics/riscv/disasm-riscv.cc | 186 +- deps/v8/src/execution/arguments.h | 31 +- deps/v8/src/execution/arm/simulator-arm.h | 2 +- deps/v8/src/execution/arm64/simulator-arm64.h | 9 +- deps/v8/src/execution/execution.cc | 6 + deps/v8/src/execution/frames-inl.h | 4 - deps/v8/src/execution/frames.cc | 67 +- deps/v8/src/execution/frames.h | 17 +- deps/v8/src/execution/isolate-data.h | 110 +- deps/v8/src/execution/isolate-utils.h | 2 - deps/v8/src/execution/isolate.cc | 202 +- deps/v8/src/execution/isolate.h | 33 +- .../execution/loong64/simulator-loong64.cc | 4 +- .../src/execution/loong64/simulator-loong64.h | 9 +- .../src/execution/mips64/simulator-mips64.cc | 34 +- .../src/execution/mips64/simulator-mips64.h | 9 +- deps/v8/src/execution/ppc/simulator-ppc.cc | 13 +- deps/v8/src/execution/ppc/simulator-ppc.h | 2 +- deps/v8/src/execution/protectors.cc | 2 +- deps/v8/src/execution/protectors.h | 4 +- .../v8/src/execution/riscv/simulator-riscv.cc | 26 +- deps/v8/src/execution/riscv/simulator-riscv.h | 31 +- deps/v8/src/execution/s390/simulator-s390.cc | 20 +- deps/v8/src/execution/s390/simulator-s390.h | 4 +- deps/v8/src/execution/simulator-base.h | 18 +- deps/v8/src/execution/simulator.h | 4 +- deps/v8/src/execution/stack-guard.h | 2 +- deps/v8/src/execution/tiering-manager.cc | 15 +- deps/v8/src/execution/vm-state.h | 2 +- deps/v8/src/flags/flag-definitions.h | 113 +- deps/v8/src/flags/flags.cc | 3 + deps/v8/src/handles/global-handles-inl.h | 2 +- deps/v8/src/handles/handles-inl.h | 12 +- deps/v8/src/handles/handles.h | 5 +- deps/v8/src/heap/base/stack.cc | 17 +- deps/v8/src/heap/base/stack.h | 15 +- deps/v8/src/heap/code-range.h | 2 +- deps/v8/src/heap/concurrent-marking.cc | 9 +- deps/v8/src/heap/cppgc-js/cpp-heap.cc | 6 +- deps/v8/src/heap/cppgc-js/cpp-snapshot.cc | 41 +- deps/v8/src/heap/cppgc-js/cpp-snapshot.h | 5 +- .../cppgc-js/unified-heap-marking-verifier.h | 2 +- .../cppgc-js/unified-heap-marking-visitor.h | 1 + deps/v8/src/heap/cppgc/marking-visitor.h | 1 + deps/v8/src/heap/cppgc/name-trait.cc | 2 +- deps/v8/src/heap/cppgc/trace-event.h | 13 +- deps/v8/src/heap/ephemeron-remembered-set.h | 9 - deps/v8/src/heap/evacuation-allocator-inl.h | 20 +- deps/v8/src/heap/factory-base.cc | 128 +- deps/v8/src/heap/factory-base.h | 25 +- deps/v8/src/heap/factory-inl.h | 32 - deps/v8/src/heap/factory.cc | 68 +- deps/v8/src/heap/factory.h | 26 +- .../finalization-registry-cleanup-task.cc | 4 +- deps/v8/src/heap/gc-callbacks-inl.h | 10 +- deps/v8/src/heap/gc-callbacks.h | 13 +- deps/v8/src/heap/gc-tracer.cc | 6 +- deps/v8/src/heap/heap-allocator-inl.h | 63 +- deps/v8/src/heap/heap-allocator.cc | 37 +- deps/v8/src/heap/heap-allocator.h | 21 +- deps/v8/src/heap/heap-inl.h | 26 +- deps/v8/src/heap/heap-verifier.cc | 17 +- deps/v8/src/heap/heap-visitor-inl.h | 4 - deps/v8/src/heap/heap-visitor.h | 2 + deps/v8/src/heap/heap-write-barrier.cc | 6 +- deps/v8/src/heap/heap.cc | 217 +- deps/v8/src/heap/heap.h | 91 +- deps/v8/src/heap/large-spaces.cc | 35 +- deps/v8/src/heap/large-spaces.h | 12 +- deps/v8/src/heap/linear-allocation-area.h | 13 - deps/v8/src/heap/local-factory.cc | 16 +- deps/v8/src/heap/local-factory.h | 16 +- deps/v8/src/heap/local-heap-inl.h | 16 +- deps/v8/src/heap/local-heap.cc | 4 +- deps/v8/src/heap/local-heap.h | 11 +- deps/v8/src/heap/main-allocator-inl.h | 5 +- deps/v8/src/heap/main-allocator.cc | 52 +- deps/v8/src/heap/main-allocator.h | 52 +- deps/v8/src/heap/mark-compact-inl.h | 16 + deps/v8/src/heap/mark-compact.cc | 90 +- deps/v8/src/heap/mark-compact.h | 8 + deps/v8/src/heap/memory-allocator.cc | 51 +- deps/v8/src/heap/memory-allocator.h | 24 +- deps/v8/src/heap/memory-balancer.cc | 2 +- deps/v8/src/heap/minor-mark-sweep-inl.h | 4 +- deps/v8/src/heap/minor-mark-sweep.cc | 6 +- deps/v8/src/heap/mutable-page-metadata-inl.h | 6 +- deps/v8/src/heap/new-spaces.cc | 5 +- deps/v8/src/heap/new-spaces.h | 3 +- deps/v8/src/heap/object-stats.cc | 4 +- deps/v8/src/heap/paged-spaces.cc | 22 +- deps/v8/src/heap/paged-spaces.h | 8 +- deps/v8/src/heap/read-only-heap.cc | 4 +- deps/v8/src/heap/read-only-spaces.cc | 2 +- deps/v8/src/heap/scavenger-inl.h | 85 +- deps/v8/src/heap/scavenger.cc | 24 +- deps/v8/src/heap/setup-heap-internal.cc | 61 +- deps/v8/src/heap/slot-set.h | 6 +- deps/v8/src/heap/sweeper.cc | 74 +- deps/v8/src/heap/sweeper.h | 10 +- deps/v8/src/heap/trusted-range.h | 2 +- deps/v8/src/ic/accessor-assembler.cc | 42 +- deps/v8/src/ic/handler-configuration-inl.h | 11 + deps/v8/src/ic/handler-configuration.cc | 86 + deps/v8/src/ic/handler-configuration.h | 7 + deps/v8/src/ic/ic.cc | 60 +- deps/v8/src/ic/ic.h | 5 +- deps/v8/src/ic/keyed-store-generic.cc | 60 +- deps/v8/src/init/bootstrapper.cc | 96 +- deps/v8/src/init/heap-symbols.h | 4 +- deps/v8/src/init/isolate-group.cc | 8 +- deps/v8/src/init/isolate-group.h | 1 - deps/v8/src/init/setup-isolate-full.cc | 2 +- deps/v8/src/init/setup-isolate.h | 3 +- deps/v8/src/init/v8.cc | 12 +- deps/v8/src/inspector/custom-preview.cc | 10 +- deps/v8/src/inspector/injected-script.cc | 12 +- deps/v8/src/inspector/inspected-context.cc | 8 +- deps/v8/src/inspector/v8-console-message.cc | 31 +- deps/v8/src/inspector/v8-console.cc | 14 +- deps/v8/src/inspector/v8-debugger.cc | 6 +- deps/v8/src/inspector/v8-deep-serializer.cc | 10 +- .../inspector/v8-heap-profiler-agent-impl.cc | 2 +- .../v8-serialization-duplicate-tracker.cc | 5 +- deps/v8/src/inspector/v8-value-utils.cc | 12 +- deps/v8/src/inspector/value-mirror.cc | 175 +- .../src/interpreter/bytecode-array-builder.cc | 8 +- deps/v8/src/interpreter/bytecode-generator.cc | 57 +- deps/v8/src/interpreter/bytecode-generator.h | 2 + deps/v8/src/interpreter/bytecodes.h | 2 + .../src/interpreter/interpreter-generator.cc | 20 +- deps/v8/src/json/json-parser.cc | 236 +- deps/v8/src/json/json-parser.h | 11 +- deps/v8/src/json/json-stringifier.cc | 5 +- deps/v8/src/libsampler/sampler.cc | 9 +- deps/v8/src/logging/counters-definitions.h | 24 +- deps/v8/src/logging/counters.h | 2 + deps/v8/src/logging/log.cc | 16 +- deps/v8/src/logging/runtime-call-stats.cc | 2 +- deps/v8/src/logging/runtime-call-stats.h | 236 +- .../src/maglev/arm/maglev-assembler-arm-inl.h | 15 + .../v8/src/maglev/arm/maglev-assembler-arm.cc | 41 +- deps/v8/src/maglev/arm/maglev-ir-arm.cc | 31 + .../maglev/arm64/maglev-assembler-arm64-inl.h | 15 + .../maglev/arm64/maglev-assembler-arm64.cc | 45 +- deps/v8/src/maglev/arm64/maglev-ir-arm64.cc | 31 + deps/v8/src/maglev/maglev-assembler-inl.h | 79 +- deps/v8/src/maglev/maglev-assembler.h | 14 + deps/v8/src/maglev/maglev-code-generator.cc | 18 + deps/v8/src/maglev/maglev-compilation-info.cc | 13 +- deps/v8/src/maglev/maglev-compiler.cc | 2 +- .../maglev/maglev-concurrent-dispatcher.cc | 13 +- .../src/maglev/maglev-concurrent-dispatcher.h | 21 - deps/v8/src/maglev/maglev-graph-builder.cc | 643 +- deps/v8/src/maglev/maglev-graph-builder.h | 64 +- deps/v8/src/maglev/maglev-graph.h | 5 +- .../maglev/maglev-interpreter-frame-state.cc | 17 +- .../maglev/maglev-interpreter-frame-state.h | 21 +- deps/v8/src/maglev/maglev-ir.cc | 295 +- deps/v8/src/maglev/maglev-ir.h | 519 +- .../maglev-phi-representation-selector.cc | 19 +- ...maglev-post-hoc-optimizations-processors.h | 10 +- deps/v8/src/maglev/maglev-regalloc.h | 6 +- .../maglev/riscv/maglev-assembler-riscv.cc | 38 +- .../src/maglev/s390/maglev-assembler-s390.cc | 38 +- .../src/maglev/x64/maglev-assembler-x64-inl.h | 15 + .../v8/src/maglev/x64/maglev-assembler-x64.cc | 40 +- deps/v8/src/maglev/x64/maglev-ir-x64.cc | 30 + deps/v8/src/numbers/conversions.cc | 246 +- deps/v8/src/numbers/integer-literal.h | 8 +- deps/v8/src/objects/DEPS | 4 + deps/v8/src/objects/all-objects-inl.h | 2 + deps/v8/src/objects/allocation-site-inl.h | 4 +- deps/v8/src/objects/allocation-site.h | 1 - deps/v8/src/objects/backing-store.cc | 15 +- deps/v8/src/objects/bigint.cc | 6 +- deps/v8/src/objects/bytecode-array.cc | 6 +- deps/v8/src/objects/call-site-info-inl.h | 1 - deps/v8/src/objects/call-site-info.cc | 36 +- deps/v8/src/objects/call-site-info.h | 1 - deps/v8/src/objects/casting-inl.h | 7 +- .../src/objects/compilation-cache-table-inl.h | 15 +- .../v8/src/objects/compilation-cache-table.cc | 146 +- deps/v8/src/objects/compilation-cache-table.h | 25 +- deps/v8/src/objects/contexts-inl.h | 7 +- deps/v8/src/objects/contexts.cc | 27 +- deps/v8/src/objects/contexts.h | 11 +- deps/v8/src/objects/contexts.tq | 38 +- deps/v8/src/objects/debug-objects-inl.h | 5 - deps/v8/src/objects/debug-objects.cc | 2 +- deps/v8/src/objects/debug-objects.h | 7 - deps/v8/src/objects/descriptor-array-inl.h | 10 +- deps/v8/src/objects/dictionary.h | 17 +- deps/v8/src/objects/elements.cc | 50 +- deps/v8/src/objects/feedback-vector-inl.h | 29 +- deps/v8/src/objects/feedback-vector.cc | 2 +- deps/v8/src/objects/feedback-vector.h | 9 +- deps/v8/src/objects/fixed-array-inl.h | 16 +- deps/v8/src/objects/fixed-array.cc | 4 +- deps/v8/src/objects/fixed-array.h | 12 +- deps/v8/src/objects/hash-table-inl.h | 14 +- deps/v8/src/objects/hash-table.h | 23 +- deps/v8/src/objects/heap-number-inl.h | 8 - deps/v8/src/objects/heap-number.h | 3 +- deps/v8/src/objects/heap-object.h | 7 +- deps/v8/src/objects/instance-type-checker.h | 4 +- deps/v8/src/objects/instance-type-inl.h | 105 +- deps/v8/src/objects/instruction-stream-inl.h | 1 - deps/v8/src/objects/instruction-stream.h | 2 - deps/v8/src/objects/intl-objects.cc | 12 +- deps/v8/src/objects/js-array-buffer.cc | 5 +- deps/v8/src/objects/js-array-buffer.h | 2 +- deps/v8/src/objects/js-collection.h | 2 +- deps/v8/src/objects/js-date-time-format.cc | 76 +- deps/v8/src/objects/js-duration-format.cc | 2 +- deps/v8/src/objects/js-function.cc | 7 +- deps/v8/src/objects/js-objects-inl.h | 49 +- deps/v8/src/objects/js-objects.cc | 112 +- deps/v8/src/objects/js-objects.h | 20 +- deps/v8/src/objects/js-objects.tq | 16 +- deps/v8/src/objects/js-regexp.cc | 43 +- deps/v8/src/objects/js-regexp.h | 7 +- deps/v8/src/objects/js-struct.cc | 3 +- deps/v8/src/objects/js-temporal-helpers.cc | 317 + deps/v8/src/objects/js-temporal-helpers.h | 97 + deps/v8/src/objects/js-temporal-objects-inl.h | 8 +- deps/v8/src/objects/js-temporal-objects.cc | 18133 +--------------- deps/v8/src/objects/js-temporal-objects.h | 302 +- deps/v8/src/objects/js-temporal-objects.tq | 9 +- deps/v8/src/objects/keys.cc | 8 +- deps/v8/src/objects/lookup-inl.h | 5 +- deps/v8/src/objects/lookup.cc | 11 +- deps/v8/src/objects/lookup.h | 4 - deps/v8/src/objects/map-inl.h | 35 +- deps/v8/src/objects/map.cc | 59 +- deps/v8/src/objects/map.h | 24 +- deps/v8/src/objects/maybe-object-inl.h | 4 +- deps/v8/src/objects/module-inl.h | 5 - deps/v8/src/objects/module.h | 1 - deps/v8/src/objects/number-string-cache-inl.h | 221 + deps/v8/src/objects/number-string-cache.cc | 57 + deps/v8/src/objects/number-string-cache.h | 160 + deps/v8/src/objects/object-list-macros.h | 69 +- deps/v8/src/objects/object-macros-undef.h | 2 - deps/v8/src/objects/object-macros.h | 16 +- .../objects/objects-body-descriptors-inl.h | 42 +- deps/v8/src/objects/objects-definitions.h | 20 +- deps/v8/src/objects/objects-inl.h | 60 +- deps/v8/src/objects/objects.cc | 128 +- deps/v8/src/objects/objects.h | 3 +- deps/v8/src/objects/ordered-hash-table.cc | 7 +- deps/v8/src/objects/property-cell.h | 2 +- deps/v8/src/objects/prototype-info-inl.h | 3 + deps/v8/src/objects/prototype-info.h | 12 + deps/v8/src/objects/prototype-info.tq | 7 + deps/v8/src/objects/scope-info-inl.h | 4 + deps/v8/src/objects/scope-info.cc | 20 +- deps/v8/src/objects/scope-info.h | 2 + deps/v8/src/objects/scope-info.tq | 14 +- deps/v8/src/objects/script-inl.h | 2 - deps/v8/src/objects/script.h | 1 - .../v8/src/objects/shared-function-info-inl.h | 39 +- deps/v8/src/objects/shared-function-info.cc | 11 +- deps/v8/src/objects/shared-function-info.h | 26 +- deps/v8/src/objects/simd.cc | 78 +- deps/v8/src/objects/simd.h | 6 +- deps/v8/src/objects/smi.h | 2 +- deps/v8/src/objects/source-text-module.h | 2 - deps/v8/src/objects/string-inl.h | 612 +- deps/v8/src/objects/string-table.cc | 6 +- deps/v8/src/objects/string.cc | 151 +- deps/v8/src/objects/string.h | 53 +- deps/v8/src/objects/struct-inl.h | 2 - deps/v8/src/objects/struct.h | 1 - .../v8/src/objects/swiss-hash-table-helpers.h | 2 +- .../src/objects/swiss-name-dictionary-inl.h | 10 +- deps/v8/src/objects/synthetic-module.h | 1 - deps/v8/src/objects/tagged-field.h | 4 +- deps/v8/src/objects/tagged-impl.h | 24 +- deps/v8/src/objects/template-objects.cc | 2 +- deps/v8/src/objects/templates-inl.h | 3 - deps/v8/src/objects/templates.cc | 2 +- deps/v8/src/objects/templates.h | 4 - deps/v8/src/objects/transitions-inl.h | 4 +- deps/v8/src/objects/value-serializer.cc | 8 +- deps/v8/src/parsing/parser-base.h | 33 +- deps/v8/src/parsing/parser.cc | 10 +- deps/v8/src/profiler/allocation-tracker.cc | 2 +- deps/v8/src/profiler/cpu-profiler.cc | 21 +- deps/v8/src/profiler/heap-profiler.cc | 47 +- deps/v8/src/profiler/heap-profiler.h | 21 +- deps/v8/src/profiler/heap-snapshot-common.h | 21 + .../src/profiler/heap-snapshot-generator.cc | 49 +- .../v8/src/profiler/heap-snapshot-generator.h | 15 + deps/v8/src/profiler/profile-generator-inl.h | 10 +- deps/v8/src/profiler/profile-generator.cc | 208 +- deps/v8/src/profiler/profile-generator.h | 101 +- deps/v8/src/profiler/profiler-listener.cc | 58 +- deps/v8/src/profiler/symbolizer.cc | 66 +- deps/v8/src/profiler/symbolizer.h | 2 +- deps/v8/src/profiler/tick-sample.cc | 3 +- .../regexp/arm/regexp-macro-assembler-arm.cc | 2 +- .../regexp/arm/regexp-macro-assembler-arm.h | 4 +- .../arm64/regexp-macro-assembler-arm64.cc | 2 +- .../arm64/regexp-macro-assembler-arm64.h | 4 +- .../ia32/regexp-macro-assembler-ia32.cc | 2 +- .../regexp/ia32/regexp-macro-assembler-ia32.h | 4 +- .../loong64/regexp-macro-assembler-loong64.cc | 2 +- .../loong64/regexp-macro-assembler-loong64.h | 4 +- .../mips64/regexp-macro-assembler-mips64.cc | 2 +- .../mips64/regexp-macro-assembler-mips64.h | 4 +- .../regexp/ppc/regexp-macro-assembler-ppc.cc | 2 +- .../regexp/ppc/regexp-macro-assembler-ppc.h | 4 +- .../src/regexp/regexp-bytecode-generator.cc | 4 +- .../v8/src/regexp/regexp-bytecode-generator.h | 2 +- .../v8/src/regexp/regexp-bytecode-peephole.cc | 2 +- deps/v8/src/regexp/regexp-bytecodes.h | 68 +- deps/v8/src/regexp/regexp-compiler-tonode.cc | 6 +- deps/v8/src/regexp/regexp-compiler.cc | 324 +- deps/v8/src/regexp/regexp-compiler.h | 206 +- deps/v8/src/regexp/regexp-dotprinter.cc | 22 +- deps/v8/src/regexp/regexp-interpreter.cc | 4 +- .../regexp/regexp-macro-assembler-tracer.cc | 8 +- .../regexp/regexp-macro-assembler-tracer.h | 2 +- deps/v8/src/regexp/regexp-macro-assembler.h | 2 +- deps/v8/src/regexp/regexp-nodes.h | 83 +- .../riscv/regexp-macro-assembler-riscv.cc | 2 +- .../riscv/regexp-macro-assembler-riscv.h | 4 +- .../s390/regexp-macro-assembler-s390.cc | 2 +- .../regexp/s390/regexp-macro-assembler-s390.h | 4 +- .../regexp/x64/regexp-macro-assembler-x64.cc | 2 +- .../regexp/x64/regexp-macro-assembler-x64.h | 4 +- deps/v8/src/roots/roots-inl.h | 8 +- deps/v8/src/roots/roots.h | 21 +- deps/v8/src/roots/static-roots.h | 1952 +- deps/v8/src/runtime/runtime-atomics.cc | 20 +- deps/v8/src/runtime/runtime-classes.cc | 76 +- deps/v8/src/runtime/runtime-compiler.cc | 141 +- deps/v8/src/runtime/runtime-debug.cc | 16 +- deps/v8/src/runtime/runtime-forin.cc | 2 - deps/v8/src/runtime/runtime-function.cc | 4 - deps/v8/src/runtime/runtime-futex.cc | 8 +- deps/v8/src/runtime/runtime-internal.cc | 28 +- deps/v8/src/runtime/runtime-literals.cc | 7 - deps/v8/src/runtime/runtime-numbers.cc | 18 +- deps/v8/src/runtime/runtime-operators.cc | 1 - deps/v8/src/runtime/runtime-regexp.cc | 99 +- deps/v8/src/runtime/runtime-scopes.cc | 14 +- deps/v8/src/runtime/runtime-strings.cc | 5 + deps/v8/src/runtime/runtime-symbol.cc | 1 - deps/v8/src/runtime/runtime-temporal.cc | 21 - deps/v8/src/runtime/runtime-test-wasm.cc | 11 +- deps/v8/src/runtime/runtime-test.cc | 35 +- deps/v8/src/runtime/runtime-typedarray.cc | 2 +- deps/v8/src/runtime/runtime-wasm.cc | 162 +- deps/v8/src/runtime/runtime.cc | 33 +- deps/v8/src/runtime/runtime.h | 331 +- deps/v8/src/sandbox/check.h | 27 +- .../src/sandbox/external-entity-table-inl.h | 119 +- deps/v8/src/sandbox/external-entity-table.h | 19 +- deps/v8/src/sandbox/hardware-support.cc | 148 +- deps/v8/src/sandbox/hardware-support.h | 95 +- deps/v8/src/sandbox/js-dispatch-table-inl.h | 47 +- deps/v8/src/sandbox/js-dispatch-table.h | 29 +- deps/v8/src/sandbox/sandbox.cc | 20 + .../v8/src/snapshot/builtins-effects-dummy.cc | 18 + deps/v8/src/snapshot/deserializer.cc | 8 +- .../v8/src/snapshot/embedded/embedded-data.cc | 16 +- deps/v8/src/snapshot/mksnapshot.cc | 11 + deps/v8/src/snapshot/snapshot.cc | 12 +- deps/v8/src/strings/string-hasher.cc | 6 +- deps/v8/src/strings/unicode-inl.h | 19 +- deps/v8/src/strings/unicode.cc | 37 +- deps/v8/src/torque/ast.h | 6 +- deps/v8/src/torque/implementation-visitor.cc | 12 +- deps/v8/src/torque/ls/json-parser.cc | 2 +- deps/v8/src/torque/runtime-support.h | 7 +- deps/v8/src/tracing/trace-event-no-perfetto.h | 7 - deps/v8/src/tracing/trace-event.h | 11 +- .../src/trap-handler/handler-inside-posix.cc | 3 +- .../v8/src/trap-handler/handler-inside-win.cc | 3 +- deps/v8/src/trap-handler/handler-inside.cc | 3 +- .../src/trap-handler/handler-outside-posix.cc | 3 +- .../src/trap-handler/handler-outside-win.cc | 3 +- deps/v8/src/trap-handler/handler-outside.cc | 3 +- deps/v8/src/trap-handler/handler-shared.cc | 3 +- deps/v8/src/utils/allocation.cc | 24 +- deps/v8/src/utils/allocation.h | 12 +- deps/v8/src/utils/boxed-float.h | 3 + deps/v8/src/utils/identity-map.h | 4 +- deps/v8/src/utils/memcopy.h | 8 +- deps/v8/src/utils/ostreams.h | 6 +- deps/v8/src/utils/output-stream.cc | 24 + deps/v8/src/utils/output-stream.h | 41 + deps/v8/src/utils/scoped-list.h | 5 +- deps/v8/src/utils/utils.h | 60 +- .../baseline/arm/liftoff-assembler-arm-inl.h | 20 +- .../arm64/liftoff-assembler-arm64-inl.h | 65 +- .../ia32/liftoff-assembler-ia32-inl.h | 38 +- .../wasm/baseline/liftoff-assembler-defs.h | 8 - .../v8/src/wasm/baseline/liftoff-assembler.cc | 7 + deps/v8/src/wasm/baseline/liftoff-assembler.h | 11 + deps/v8/src/wasm/baseline/liftoff-compiler.cc | 608 +- deps/v8/src/wasm/baseline/liftoff-register.h | 10 +- .../loong64/liftoff-assembler-loong64-inl.h | 65 +- .../mips64/liftoff-assembler-mips64-inl.h | 32 +- .../baseline/ppc/liftoff-assembler-ppc-inl.h | 59 +- .../riscv/liftoff-assembler-riscv-inl.h | 2 +- .../riscv/liftoff-assembler-riscv32-inl.h | 30 + .../riscv/liftoff-assembler-riscv64-inl.h | 68 + .../s390/liftoff-assembler-s390-inl.h | 20 +- .../baseline/x64/liftoff-assembler-x64-inl.h | 72 +- deps/v8/src/wasm/basic-block-calculator.cc | 111 + deps/v8/src/wasm/basic-block-calculator.h | 48 + deps/v8/src/wasm/c-api.cc | 4 +- deps/v8/src/wasm/canonical-types.cc | 27 +- deps/v8/src/wasm/canonical-types.h | 9 +- .../src/wasm/constant-expression-interface.cc | 47 +- .../src/wasm/constant-expression-interface.h | 2 + deps/v8/src/wasm/decoder.h | 6 +- deps/v8/src/wasm/function-body-decoder-impl.h | 528 +- deps/v8/src/wasm/function-compiler.cc | 23 +- deps/v8/src/wasm/function-compiler.h | 7 +- .../wasm/fuzzing/random-module-generation.cc | 228 +- .../wasm/fuzzing/random-module-generation.h | 3 + .../interpreter/wasm-interpreter-objects.cc | 2 +- .../interpreter/wasm-interpreter-runtime.cc | 3 +- .../src/wasm/interpreter/wasm-interpreter.cc | 13 +- .../src/wasm/interpreter/wasm-interpreter.h | 1 + deps/v8/src/wasm/jump-table-assembler.h | 5 - deps/v8/src/wasm/memory-tracing.h | 7 +- deps/v8/src/wasm/module-compiler.cc | 21 +- deps/v8/src/wasm/module-compiler.h | 9 +- deps/v8/src/wasm/module-decoder-impl.h | 587 +- deps/v8/src/wasm/module-decoder.cc | 4 +- deps/v8/src/wasm/module-instantiate.cc | 939 +- deps/v8/src/wasm/module-instantiate.h | 20 +- deps/v8/src/wasm/stacks.cc | 55 +- deps/v8/src/wasm/stacks.h | 30 +- deps/v8/src/wasm/struct-types.h | 40 +- .../v8/src/wasm/turboshaft-graph-interface.cc | 267 +- deps/v8/src/wasm/value-type.cc | 26 +- deps/v8/src/wasm/value-type.h | 58 +- deps/v8/src/wasm/wasm-builtin-list.h | 6 + deps/v8/src/wasm/wasm-code-coverage.h | 33 + deps/v8/src/wasm/wasm-code-manager.cc | 20 +- deps/v8/src/wasm/wasm-code-manager.h | 16 +- .../v8/src/wasm/wasm-code-pointer-table-inl.h | 6 + deps/v8/src/wasm/wasm-code-pointer-table.h | 2 + deps/v8/src/wasm/wasm-constants.h | 1 + deps/v8/src/wasm/wasm-disassembler.cc | 12 + deps/v8/src/wasm/wasm-engine.cc | 20 +- deps/v8/src/wasm/wasm-engine.h | 5 +- deps/v8/src/wasm/wasm-export-wrapper-cache.cc | 163 + deps/v8/src/wasm/wasm-export-wrapper-cache.h | 93 + deps/v8/src/wasm/wasm-external-refs.cc | 5 +- deps/v8/src/wasm/wasm-features.h | 1 + deps/v8/src/wasm/wasm-import-wrapper-cache.cc | 312 +- deps/v8/src/wasm/wasm-import-wrapper-cache.h | 84 +- deps/v8/src/wasm/wasm-js.cc | 6 +- deps/v8/src/wasm/wasm-module-builder.cc | 1 + deps/v8/src/wasm/wasm-module.cc | 37 +- deps/v8/src/wasm/wasm-module.h | 63 +- deps/v8/src/wasm/wasm-objects-inl.h | 30 +- deps/v8/src/wasm/wasm-objects.cc | 673 +- deps/v8/src/wasm/wasm-objects.h | 181 +- deps/v8/src/wasm/wasm-objects.tq | 8 + deps/v8/src/wasm/wasm-opcodes.h | 22 + deps/v8/src/wasm/wasm-result.h | 4 +- deps/v8/src/wasm/wasm-serialization.h | 1 - deps/v8/src/wasm/wasm-subtyping.cc | 253 +- deps/v8/src/wasm/wasm-subtyping.h | 49 +- deps/v8/src/wasm/wasm-value.h | 2 +- deps/v8/src/wasm/wrappers.cc | 29 +- deps/v8/src/zone/accounting-allocator.cc | 10 +- deps/v8/src/zone/compressed-zone-ptr.h | 2 +- deps/v8/src/zone/type-stats.h | 4 +- deps/v8/src/zone/zone-chunk-list.h | 4 +- deps/v8/src/zone/zone-list-inl.h | 4 +- deps/v8/src/zone/zone-type-traits.h | 4 +- deps/v8/src/zone/zone-utils.h | 2 +- deps/v8/src/zone/zone.h | 5 +- .../v8/test/benchmarks/cpp/benchmark-utils.cc | 1 - deps/v8/test/cctest/OWNERS | 4 +- deps/v8/test/cctest/cctest.cc | 11 +- deps/v8/test/cctest/cctest.h | 19 +- deps/v8/test/cctest/cctest.status | 5 +- .../test-calls-with-arraylike-or-spread.cc | 4 +- .../cctest/compiler/test-code-assembler.cc | 44 + deps/v8/test/cctest/compiler/test-linkage.cc | 6 +- .../cctest/heap/test-array-buffer-tracker.cc | 20 +- .../heap/test-external-string-tracker.cc | 10 +- deps/v8/test/cctest/heap/test-heap.cc | 28 +- deps/v8/test/cctest/heap/test-spaces.cc | 55 +- .../v8/test/cctest/setup-isolate-for-tests.cc | 2 +- deps/v8/test/cctest/test-accessors.cc | 36 +- deps/v8/test/cctest/test-allocation.cc | 8 +- deps/v8/test/cctest/test-api-array-buffer.cc | 56 +- deps/v8/test/cctest/test-api-interceptors.cc | 43 +- deps/v8/test/cctest/test-api-stack-traces.cc | 66 +- deps/v8/test/cctest/test-api-typed-array.cc | 34 +- deps/v8/test/cctest/test-api.cc | 1539 +- deps/v8/test/cctest/test-assembler-loong64.cc | 4 +- deps/v8/test/cctest/test-assembler-mips64.cc | 16 +- deps/v8/test/cctest/test-assembler-riscv32.cc | 20 +- deps/v8/test/cctest/test-assembler-riscv64.cc | 20 +- .../test/cctest/test-code-stub-assembler.cc | 146 +- deps/v8/test/cctest/test-cpu-profiler.cc | 214 +- deps/v8/test/cctest/test-debug-helper.cc | 4 +- deps/v8/test/cctest/test-debug.cc | 897 +- deps/v8/test/cctest/test-heap-profiler.cc | 802 +- deps/v8/test/cctest/test-helper-riscv32.h | 117 +- deps/v8/test/cctest/test-helper-riscv64.h | 119 +- deps/v8/test/cctest/test-icache.cc | 7 - .../cctest/test-inobject-slack-tracking.cc | 24 +- deps/v8/test/cctest/test-javascript-arm64.cc | 20 +- .../v8/test/cctest/test-js-arm64-variables.cc | 12 +- deps/v8/test/cctest/test-js-to-wasm.cc | 2 +- deps/v8/test/cctest/test-js-weak-refs.cc | 4 +- deps/v8/test/cctest/test-liveedit.cc | 76 +- deps/v8/test/cctest/test-lockers.cc | 18 +- deps/v8/test/cctest/test-log-stack-tracer.cc | 12 +- deps/v8/test/cctest/test-orderedhashtable.cc | 84 +- deps/v8/test/cctest/test-profile-generator.cc | 91 +- deps/v8/test/cctest/test-regexp.cc | 6 +- deps/v8/test/cctest/test-serialize.cc | 10 +- deps/v8/test/cctest/test-shared-strings.cc | 96 + deps/v8/test/cctest/test-strings.cc | 5 +- .../cctest/test-swiss-name-dictionary-infra.h | 2 +- .../test-swiss-name-dictionary-shared-tests.h | 4 +- deps/v8/test/cctest/test-typedarrays.cc | 8 +- .../test-unscopables-hidden-prototype.cc | 2 +- .../test/cctest/test-unwinder-code-pages.cc | 24 +- deps/v8/test/cctest/wasm/test-c-wasm-entry.cc | 2 +- deps/v8/test/cctest/wasm/test-gc.cc | 2 +- .../cctest/wasm/test-jump-table-assembler.cc | 5 - .../cctest/wasm/test-run-wasm-relaxed-simd.cc | 2 +- .../v8/test/cctest/wasm/test-run-wasm-simd.cc | 416 +- .../cctest/wasm/test-run-wasm-wrappers.cc | 58 +- .../wasm/test-wasm-import-wrapper-cache.cc | 100 +- deps/v8/test/cctest/wasm/test-wasm-stack.cc | 6 +- .../cctest/wasm/test-wasm-trap-position.cc | 4 +- deps/v8/test/cctest/wasm/wasm-run-utils.cc | 39 +- deps/v8/test/cctest/wasm/wasm-run-utils.h | 7 +- deps/v8/test/cctest/wasm/wasm-simd-utils.cc | 4 +- deps/v8/test/cctest/wasm/wasm-simd-utils.h | 4 +- deps/v8/test/common/assembler-tester.h | 3 +- deps/v8/test/common/c-signature.h | 4 +- deps/v8/test/common/code-assembler-tester.h | 2 +- deps/v8/test/common/wasm/wasm-macro-gen.h | 61 + .../debugger/debug/debug-liveedit-eval.js | 23 + ...-step-into-explicit-resource-management.js | 45 + .../debugger/debug/es6/debug-stepnext-for.js | 269 +- .../wasm-deopt-multi-instance.js} | 13 +- deps/v8/test/fuzzer/fuzzer-support.cc | 6 + deps/v8/test/fuzzer/fuzzer.status | 6 + .../fuzzer/inspector/regress-391921979.js | 30 + deps/v8/test/fuzzer/testcfg.py | 1 + deps/v8/test/fuzzer/wasm/compile-revec.cc | 31 + deps/v8/test/fuzzer/wasm/fuzzer-common.cc | 29 +- deps/v8/test/fuzzer/wasm/module.cc | 5 + .../fuzzer/wasm/module/regress-406925416.wasm | Bin 0 -> 280 bytes .../fuzzer/wasm/module/regress-419085592.wasm | Bin 0 -> 276 bytes .../debugger/for-of-loops-expected.txt | 258 +- .../test/inspector/debugger/for-of-loops.js | 20 + ...get-possible-breakpoints-main-expected.txt | 13 +- .../debugger/resources/break-locations.js | 7 + .../inspector/debugger/step-into-expected.txt | 37 +- .../inspector/debugger/step-over-expected.txt | 584 + deps/v8/test/inspector/debugger/step-over.js | 38 + deps/v8/test/inspector/isolate-data.cc | 8 +- .../regress-crbug-399002824-expected.txt | 5 + .../regress/regress-crbug-399002824.js | 35 + .../error-preview-sideeffects-expected.txt | 8 + .../runtime/error-preview-sideeffects.js | 67 + ...-explicit-resource-management-expected.txt | 61 + ...rror-stack-explicit-resource-management.js | 113 + .../runtime/exception-thrown-expected.txt | 2 + .../exception-thrown-metadata-expected.txt | 4 + .../runtime/preview-sideeffects-expected.txt | 6 + .../inspector/runtime/preview-sideeffects.js | 35 + .../test/inspector/runtime/query-objects.js | 2 +- .../runtime-evaluate-exception-expected.txt | 8 + deps/v8/test/inspector/tasks.cc | 11 +- deps/v8/test/intl/intl.status | 4 + deps/v8/test/js-perf-test/Array/run.js | 24 +- .../message/fail/regress-crbug-417373146.js | 5 + .../message/fail/regress-crbug-417373146.out | 4 + .../v8/test/message/wasm-inlining-into-js.out | 2 +- deps/v8/test/message/wasm-trace-liftoff.js | 2 +- deps/v8/test/message/wasm-trace-turbofan.js | 2 +- deps/v8/test/mjsunit/BUILD.gn | 1 + .../mjsunit/array-concat-to-holey-double.js | 42 + .../v8/test/mjsunit/array-natives-elements.js | 66 +- .../baseline/loadic-transition-elements.js | 42 + .../call-with-arraylike-or-spread-3.js | 5 +- .../call-with-arraylike-or-spread-4.js | 5 +- .../call-with-arraylike-or-spread-5.js | 6 +- .../call-with-arraylike-or-spread-6.js | 5 +- .../call-with-arraylike-or-spread-7.js | 5 +- .../compiler/call-with-arraylike-or-spread.js | 136 +- .../dont-flush-code-marked-for-opt.js | 2 +- .../mjsunit/compiler/inlining-exponential.js | 50 + .../mjsunit/compiler/regress-419744895.js | 15 + .../test/mjsunit/compiler/smi-bitwise-ops.js | 53 + .../v8/test/mjsunit/compiler/string-charAt.js | 6 - deps/v8/test/mjsunit/es6/array-from.js | 7 +- .../mjsunit/es6/classes-subclass-builtins.js | 1 - .../throw-type-error-function-restrictions.js | 28 - deps/v8/test/mjsunit/frozen-array-reduce.js | 10 +- deps/v8/test/mjsunit/function-bind.js | 4 - .../harmony/for-using-of-await-using-of.js | 2 - .../harmony/regress/regress-416166113.js | 13 + .../harmony/regress/regress-416302802.js | 10 + .../harmony/regress/regress-418804470.js | 10 + ...-set-from-base64-on-shared-array-buffer.js | 59 + ...ray-set-from-hex-on-shared-array-buffer.js | 59 + ...-array-to-base64-on-shared-array-buffer.js | 56 + ...nt8-array-to-hex-on-shared-array-buffer.js | 56 + .../mjsunit/loadic-transition-elements.js | 41 + deps/v8/test/mjsunit/maglev/math-clz32.js | 102 + .../test/mjsunit/maglev/regress-410867001.js | 23 + .../test/mjsunit/maglev/regress-414750469.js | 44 + .../test/mjsunit/maglev/regress-414840455.js | 20 + .../test/mjsunit/maglev/regress-415523530.js | 22 + .../test/mjsunit/maglev/regress-419744895.js | 15 + .../store-oddball-to-double-elements.js | 1 + deps/v8/test/mjsunit/mjsunit.status | 46 +- .../mjsunit/non-extensible-array-reduce.js | 8 +- deps/v8/test/mjsunit/object-freeze.js | 15 +- .../test/mjsunit/object-prevent-extensions.js | 10 +- deps/v8/test/mjsunit/object-seal.js | 15 +- .../protector-cell/typedarray-length-1.js | 17 - .../protector-cell/typedarray-length-2.js | 16 - .../protector-cell/typedarray-length-3.js | 16 - .../protector-cell/typedarray-length-4.js | 17 - .../protector-cell/typedarray-length-5.js | 21 - .../protector-cell/typedarray-length-6.js | 17 - .../protector-cell/typedarray-length-7.js | 16 - deps/v8/test/mjsunit/regexp-global.js | 24 + deps/v8/test/mjsunit/regress-406332759.js | 20 + deps/v8/test/mjsunit/regress-408370964.js | 26 + deps/v8/test/mjsunit/regress-409911706.js | 37 + deps/v8/test/mjsunit/regress-411770057.js | 27 + deps/v8/test/mjsunit/regress-414738826.js | 19 + deps/v8/test/mjsunit/regress-415627214.js | 16 + deps/v8/test/mjsunit/regress-416179216.js | 14 + deps/v8/test/mjsunit/regress-416293771.js | 25 + deps/v8/test/mjsunit/regress-416442673.js | 20 + deps/v8/test/mjsunit/regress-417251443.js | 13 + deps/v8/test/mjsunit/regress-417385084.js | 30 + deps/v8/test/mjsunit/regress-417624826.js | 24 + deps/v8/test/mjsunit/regress-417768368.js | 36 + deps/v8/test/mjsunit/regress-418396718.js | 31 + deps/v8/test/mjsunit/regress-41882029.js | 10 + deps/v8/test/mjsunit/regress-419081101.js | 15 + deps/v8/test/mjsunit/regress-419099999.js | 27 + deps/v8/test/mjsunit/regress-419350536.js | 27 + deps/v8/test/mjsunit/regress-419601412.js | 28 + deps/v8/test/mjsunit/regress-419622700.js | 20 + .../test/mjsunit/regress/regress-1385368.js | 10 - deps/v8/test/mjsunit/regress/regress-1530.js | 2 - .../test/mjsunit/regress/regress-408820921.js | 20 + .../test/mjsunit/regress/regress-414962716.js | 9 + .../test/mjsunit/regress/regress-416913840.js | 9 + .../test/mjsunit/regress/regress-417256364.js | 14 + .../test/mjsunit/regress/regress-417326263.js | 21 + .../test/mjsunit/regress/regress-417369007.js | 15 + .../test/mjsunit/regress/regress-417518228.js | 14 + .../test/mjsunit/regress/regress-417576784.js | 17 + .../test/mjsunit/regress/regress-418478214.js | 15 + .../test/mjsunit/regress/regress-419501740.js | 9 + .../regress/regress-crbug-413161347.js | 21 + .../regress/regress-crbug-413633048.js | 17 + .../regress/regress-crbug-418520151.js | 17 + .../mjsunit/regress/wasm/regress-12874.js | 2 +- .../mjsunit/regress/wasm/regress-347961785.js | 2 +- .../mjsunit/regress/wasm/regress-413633038.js | 15 + .../mjsunit/regress/wasm/regress-413963387.js | 22 + .../mjsunit/regress/wasm/regress-415062511.js | 15 + .../mjsunit/regress/wasm/regress-985154.js | 2 +- .../sandbox/liftoff-wasmarray-i64-indexing.js | 108 + deps/v8/test/mjsunit/sealed-array-reduce.js | 10 +- deps/v8/test/mjsunit/strict-mode.js | 10 +- deps/v8/test/mjsunit/testcfg.py | 4 +- .../mjsunit/tools/foozzie_arch_specific.js | 6 +- .../v8/test/mjsunit/tools/foozzie_printing.js | 55 + .../mjsunit/turbolev/regress-411802156.js | 29 + .../array-prototype-map-elements-kinds.js | 45 +- .../maglev-frontend/store-jsarray.js | 5 +- deps/v8/test/mjsunit/undefined-double.js | 194 + .../mjsunit/wasm/array-bulk-operations.js | 2 +- .../wasm/code-flushing-single-isolate.js | 4 +- .../wasm/custom-descriptors-inlining.js | 102 + deps/v8/test/mjsunit/wasm/gc-casts-exnref.js | 2 +- deps/v8/test/mjsunit/wasm/gc-casts-invalid.js | 8 +- .../mjsunit/wasm/gc-optimization-array-get.js | 2 +- deps/v8/test/mjsunit/wasm/gc-optimizations.js | 2 +- deps/v8/test/mjsunit/wasm/growable-stacks.js | 38 +- .../shared-everything/atomic-instructions.js | 802 + .../mjsunit/wasm/shared-everything/basic.js | 2 +- .../gc-casts-shared-to-unshared.js | 297 + .../gc-casts-subtypes-shared.js | 985 + .../not-shared-everything.js | 26 + .../shared-extended-instructions.js | 236 + deps/v8/test/mjsunit/wasm/wasm-interpreter.js | 200 + .../test/mjsunit/wasm/wasm-module-builder.js | 49 +- .../local-tests/test/staging/features.txt | 4 + deps/v8/test/test262/test262.status | 1636 +- deps/v8/test/unittests/BUILD.gn | 7 +- .../test/unittests/api/accessor-unittest.cc | 6 +- .../unittests/api/gc-callbacks-unittest.cc | 2 +- .../test/unittests/api/v8-array-unittest.cc | 32 + .../assembler/disasm-riscv-unittest.cc | 55 +- .../test/unittests/base/iterator-unittest.cc | 2 +- .../base/region-allocator-unittest.cc | 26 + .../optimizing-compile-dispatcher-unittest.cc | 3 +- ...aft-instruction-selector-arm64-unittest.cc | 347 +- ...turboshaft-instruction-selector-unittest.h | 9 + .../unittests/compiler/compiler-unittest.cc | 24 +- ...t-instruction-selector-riscv64-unittest.cc | 3 +- .../loop-unrolling-analyzer-unittest.cc | 8 +- .../wasm-shuffle-reducer-unittest.cc | 61 +- .../deoptimizer/deoptimization-unittest.cc | 2 +- .../execution/pointer-auth-arm64-unittest.cc | 8 +- .../execution/thread-termination-unittest.cc | 4 +- .../unified-heap-snapshot-unittest.cc | 66 +- .../heap/cppgc-js/unified-heap-utils.cc | 13 +- .../heap/cppgc/custom-spaces-unittest.cc | 2 +- .../heap/cppgc/finalizer-trait-unittest.cc | 4 +- .../unittests/heap/cppgc/gc-info-unittest.cc | 91 +- .../unittests/heap/direct-handles-unittest.cc | 14 + deps/v8/test/unittests/heap/heap-unittest.cc | 183 +- .../heap/inner-pointer-resolution-unittest.cc | 12 +- .../unittests/heap/local-factory-unittest.cc | 10 +- .../v8/test/unittests/heap/spaces-unittest.cc | 10 +- .../bytecode-array-builder-unittest.cc | 30 +- .../bytecode-expectations-printer.cc | 4 +- .../bytecode-generator-unittest.cc | 1 + .../AsyncGenerators.golden | 4 +- .../bytecode_expectations/AsyncModules.golden | 16 +- .../ElideRedundantHoleChecks.golden | 10 +- .../bytecode_expectations/ForAwaitOf.golden | 18 +- .../bytecode_expectations/ForIn.golden | 16 +- .../bytecode_expectations/ForOf.golden | 18 +- .../bytecode_expectations/ForOfLoop.golden | 32 +- .../bytecode_expectations/Generators.golden | 4 +- .../bytecode_expectations/Modules.golden | 75 +- .../PrivateAccessorAccess.golden | 8 +- .../PrivateMethodAccess.golden | 4 +- .../StaticPrivateMethodAccess.golden | 30 +- .../WideRegisters.golden | 4 +- .../generate-bytecode-expectations.cc | 3 +- .../interpreter/interpreter-unittest.cc | 8 +- .../unittests/libsampler/sampler-unittest.cc | 6 +- .../unittests/maglev/node-type-unittest.cc | 43 +- .../objects/feedback-vector-unittest.cc | 4 +- .../objects/global-object-unittest.cc | 4 +- .../unittests/objects/modules-unittest.cc | 14 +- .../test/unittests/objects/object-unittest.cc | 18 +- .../test/unittests/parser/decls-unittest.cc | 8 +- .../parser/parse-decision-unittest.cc | 10 +- .../test/unittests/parser/parsing-unittest.cc | 2 +- .../unittests/parser/preparser-unittest.cc | 3 +- .../profiler/heap-snapshot-unittest.cc | 43 + .../test/unittests/regexp/regexp-unittest.cc | 2 +- .../sandbox-hardware-support-unittest.cc | 167 + deps/v8/test/unittests/test-helpers.cc | 2 +- deps/v8/test/unittests/testcfg.py | 2 +- .../unittests/utils/allocation-unittest.cc | 37 +- .../wasm/basic-block-calculator-unittest.cc | 689 + .../wasm/function-body-decoder-unittest.cc | 428 +- .../unittests/wasm/module-decoder-unittest.cc | 56 + .../unittests/wasm/struct-types-unittest.cc | 36 +- .../test/unittests/wasm/subtyping-unittest.cc | 1212 +- .../wasm/trap-handler-simulator-unittest.cc | 3 +- .../wasm/trap-handler-win-unittest.cc | 3 +- .../wasm/type-canonicalization-fuzztest.cc | 3 +- .../fast/js/basic-strict-mode-expected.txt | 8 +- .../test/webkit/fast/js/basic-strict-mode.js | 6 +- deps/v8/third_party/abseil-cpp/BUILD.gn | 2 + deps/v8/third_party/abseil-cpp/MODULE.bazel | 2 +- .../v8/third_party/abseil-cpp/README.chromium | 2 +- .../abseil-cpp/absl/algorithm/BUILD.bazel | 1 + .../abseil-cpp/absl/algorithm/BUILD.gn | 1 + .../abseil-cpp/absl/algorithm/CMakeLists.txt | 1 + .../abseil-cpp/absl/algorithm/container.h | 21 +- .../absl/algorithm/container_test.cc | 15 +- .../abseil-cpp/absl/base/BUILD.bazel | 1 - .../third_party/abseil-cpp/absl/base/config.h | 16 +- .../abseil-cpp/absl/container/BUILD.bazel | 4 + .../abseil-cpp/absl/container/BUILD.gn | 2 + .../abseil-cpp/absl/container/CMakeLists.txt | 4 + .../abseil-cpp/absl/container/btree_map.h | 8 +- .../abseil-cpp/absl/container/btree_set.h | 8 +- .../abseil-cpp/absl/container/flat_hash_map.h | 26 +- .../absl/container/flat_hash_map_test.cc | 9 - .../abseil-cpp/absl/container/flat_hash_set.h | 22 +- .../container/internal/container_memory.h | 52 +- .../internal/hash_function_defaults.h | 9 +- .../internal/hash_function_defaults_test.cc | 53 +- .../internal/hash_generator_testing.cc | 40 +- .../internal/hash_generator_testing.h | 45 +- .../container/internal/hash_policy_testing.h | 6 +- .../container/internal/hash_policy_traits.h | 12 +- .../internal/hashtablez_sampler_test.cc | 4 +- .../absl/container/internal/raw_hash_set.cc | 783 +- .../absl/container/internal/raw_hash_set.h | 461 +- .../internal/raw_hash_set_benchmark.cc | 21 +- .../container/internal/raw_hash_set_test.cc | 139 +- .../abseil-cpp/absl/container/node_hash_map.h | 26 +- .../abseil-cpp/absl/container/node_hash_set.h | 22 +- .../absl/copts/GENERATED_AbseilCopts.cmake | 3 +- .../abseil-cpp/absl/copts/GENERATED_copts.bzl | 3 +- .../abseil-cpp/absl/copts/copts.py | 1 + .../debugging/internal/decode_rust_punycode.h | 8 +- .../absl/debugging/internal/demangle.cc | 32 +- .../absl/debugging/internal/demangle_test.cc | 17 +- .../internal/stacktrace_aarch64-inl.inc | 37 +- .../debugging/internal/stacktrace_x86-inl.inc | 11 +- .../absl/debugging/stacktrace_test.cc | 73 + .../abseil-cpp/absl/hash/BUILD.bazel | 2 + .../abseil-cpp/absl/hash/hash_test.cc | 17 +- .../abseil-cpp/absl/hash/internal/hash.cc | 9 +- .../abseil-cpp/absl/hash/internal/hash.h | 81 +- .../absl/hash/internal/low_level_hash.cc | 27 +- .../absl/hash/internal/low_level_hash.h | 11 +- .../absl/hash/internal/low_level_hash_test.cc | 74 +- .../abseil-cpp/absl/log/CMakeLists.txt | 2 + .../third_party/abseil-cpp/absl/log/check.h | 3 +- .../abseil-cpp/absl/log/check_test_impl.inc | 11 +- .../abseil-cpp/absl/log/internal/BUILD.bazel | 6 +- .../abseil-cpp/absl/log/internal/BUILD.gn | 2 + .../absl/log/internal/append_truncated.h | 28 + .../abseil-cpp/absl/log/internal/check_op.h | 31 +- .../absl/log/internal/log_message.cc | 78 +- .../absl/log/internal/log_message.h | 49 +- .../abseil-cpp/absl/log/log_format_test.cc | 295 +- .../abseil-cpp/absl/meta/type_traits.h | 34 +- .../abseil-cpp/absl/meta/type_traits_test.cc | 52 +- .../abseil-cpp/absl/numeric/BUILD.bazel | 1 + .../abseil-cpp/absl/numeric/bits_test.cc | 21 + .../absl/numeric/int128_benchmark.cc | 27 +- .../abseil-cpp/absl/profiling/BUILD.bazel | 1 + .../abseil-cpp/absl/profiling/BUILD.gn | 14 + .../abseil-cpp/absl/profiling/CMakeLists.txt | 1 + .../internal/sample_recorder_test.cc | 10 +- .../absl/status/internal/statusor_internal.h | 3 +- .../abseil-cpp/absl/status/statusor.h | 4 +- .../abseil-cpp/absl/strings/BUILD.bazel | 5 + .../abseil-cpp/absl/strings/BUILD.gn | 2 + .../abseil-cpp/absl/strings/CMakeLists.txt | 3 + .../absl/strings/ascii_benchmark.cc | 8 +- .../abseil-cpp/absl/strings/cord.h | 2 +- .../absl/strings/cordz_test_helpers.h | 9 +- .../absl/strings/internal/cord_internal.h | 2 +- .../absl/strings/internal/str_format/arg.cc | 70 +- .../absl/strings/internal/str_format/arg.h | 12 +- .../internal/str_format/convert_test.cc | 7 +- .../internal/str_format/extension_test.cc | 5 +- .../abseil-cpp/absl/strings/internal/utf8.cc | 97 +- .../abseil-cpp/absl/strings/internal/utf8.h | 16 +- .../absl/strings/internal/utf8_test.cc | 199 +- .../abseil-cpp/absl/strings/numbers_test.cc | 32 +- .../abseil-cpp/absl/strings/str_cat.h | 22 +- .../abseil-cpp/absl/strings/str_cat_test.cc | 7 +- .../absl/strings/string_view_benchmark.cc | 5 +- .../absl/strings/string_view_test.cc | 2 +- .../abseil-cpp/absl/strings/substitute.h | 15 +- .../absl/synchronization/BUILD.bazel | 2 + .../abseil-cpp/absl/synchronization/BUILD.gn | 1 + .../absl/synchronization/CMakeLists.txt | 2 +- .../absl/synchronization/mutex_test.cc | 4 +- .../abseil-cpp/absl/time/BUILD.bazel | 1 + .../third_party/abseil-cpp/absl/time/BUILD.gn | 1 + .../abseil-cpp/absl/time/CMakeLists.txt | 3 +- .../abseil-cpp/absl/time/duration_test.cc | 5 +- .../cctz/include/cctz/civil_time_detail.h | 12 + .../internal/cctz/src/time_zone_lookup.cc | 201 +- .../third_party/abseil-cpp/absl/types/span.h | 9 +- .../abseil-cpp/generate_def_files.py | 3 +- .../abseil-cpp/symbols_arm64_dbg.def | 110 +- .../abseil-cpp/symbols_arm64_rel.def | 21 +- .../abseil-cpp/symbols_x64_dbg.def | 110 +- .../abseil-cpp/symbols_x64_rel.def | 22 +- .../abseil-cpp/symbols_x64_rel_asan.def | 29 +- .../abseil-cpp/symbols_x86_dbg.def | 110 +- .../abseil-cpp/symbols_x86_rel.def | 24 +- deps/v8/third_party/dragonbox/BUILD.gn | 18 + deps/v8/third_party/dragonbox/OWNERS | 3 + deps/v8/third_party/dragonbox/README.v8 | 15 + .../src/include/dragonbox/dragonbox.h | 4205 ++++ .../include/dragonbox/dragonbox_to_chars.h | 388 + .../fp16/src/include/fp16/bitcasts.h | 10 +- deps/v8/third_party/simdutf/README.chromium | 2 +- deps/v8/third_party/simdutf/simdutf.cpp | 8305 ++++--- deps/v8/third_party/simdutf/simdutf.h | 333 +- deps/v8/third_party/zlib/OWNERS | 5 +- deps/v8/third_party/zlib/chromeconf.h | 3 - .../zlib/contrib/minizip/README.chromium | 5 + .../third_party/zlib/contrib/minizip/unzip.c | 42 + deps/v8/third_party/zlib/deflate.c | 8 +- deps/v8/third_party/zlib/google/OWNERS | 1 - .../zlib/google/test_data.filelist | 7 + deps/v8/third_party/zlib/google/zip.cc | 209 +- deps/v8/third_party/zlib/google/zip.h | 30 +- .../v8/third_party/zlib/google/zip_internal.h | 8 +- deps/v8/third_party/zlib/google/zip_reader.cc | 12 +- deps/v8/third_party/zlib/google/zip_reader.h | 3 + .../zlib/google/zip_reader_unittest.cc | 25 + .../third_party/zlib/google/zip_unittest.cc | 103 +- .../zlib/patches/0006-fix-check_match.patch | 42 - ...nizip-parse-unicode-path-extra-field.patch | 16 + .../patches/0018-support-prefixed-zip64.patch | 82 + deps/v8/tools/callstats.html | 15 +- .../clusterfuzz/foozzie/v8_fuzz_flags.json | 5 +- .../clusterfuzz/foozzie/v8_mock_archs.js | 3 +- .../tools/clusterfuzz/js_fuzzer/exceptions.js | 3 + .../mutators/allocation_timeout_mutator.js | 92 + .../mutators/differential_fuzz_mutator.js | 7 + .../mutators/variable_or_object_mutation.js | 2 +- .../js_fuzzer/resources/fuzz_library.js | 11 + .../clusterfuzz/js_fuzzer/script_mutator.js | 9 +- .../clusterfuzz/js_fuzzer/test/helpers.js | 12 + .../js_fuzzer/test/test_differential_fuzz.js | 6 +- .../clusterfuzz/js_fuzzer/test/test_flags.js | 7 +- .../js_fuzzer/test/test_mutation_order.js | 17 +- .../js_fuzzer/test/test_regressions.js | 21 +- .../js_fuzzer/test_data/alloc/alloc.js | 23 + .../alloc/alloc_always_chosen_expected.js | 34 + .../alloc/alloc_not_chosen_expected.js | 20 + .../alloc/alloc_not_enabled_expected.js | 20 + .../differential_fuzz/suppressions.js | 4 +- .../suppressions_expected.js | 2 + .../CallExpression/113f1844.json | 1 + .../regress/db/assign_expected/index.json | 6 + .../trials/clusterfuzz_trials_config.json | 5 +- deps/v8/tools/debug_helper/OWNERS | 2 +- deps/v8/tools/gcmole/BUILD.gn | 2 + deps/v8/tools/gcmole/gcmole-test.cc | 14 + deps/v8/tools/gcmole/gcmole-tools.tar.gz.sha1 | 2 +- deps/v8/tools/gcmole/gcmole.cc | 75 +- deps/v8/tools/grokdump.py | 100 +- deps/v8/tools/mb/mb.py | 9 +- deps/v8/tools/release/merge_to_branch.py | 2 +- .../tools/sanitizers/linux/arm64/.gitignore | 1 + .../linux/arm64/llvm-symbolizer.sha1 | 1 + deps/v8/tools/testrunner/base_runner.py | 14 +- deps/v8/tools/testrunner/local/statusfile.py | 9 +- deps/v8/tools/testrunner/local/variants.py | 3 +- deps/v8/tools/testrunner/num_fuzzer.py | 27 +- deps/v8/tools/testrunner/objects/testcase.py | 4 + deps/v8/tools/testrunner/outproc/filecheck.py | 4 +- .../tools/testrunner/standard_runner_test.py | 41 +- .../testdata/testroot8/out/build/d8_mocked.py | 21 + .../testroot8/test/sweet/sweet.status | 9 + .../testdata/testroot8/test/sweet/testcfg.py | 34 + deps/v8/tools/testrunner/testproc/filter.py | 12 + deps/v8/tools/testrunner/testproc/fuzzer.py | 37 +- .../testrunner/utils/augmented_options.py | 1 + deps/v8/tools/torque/format-torque.py | 2 +- deps/v8/tools/v8windbg/OWNERS | 2 +- .../wasm/mjsunit-module-disassembler-impl.h | 22 +- deps/v8/tools/whitespace.txt | 2 +- 1345 files changed, 53189 insertions(+), 41691 deletions(-) delete mode 100644 deps/v8/src/api/api-macros-undef.h delete mode 100644 deps/v8/src/api/api-macros.h create mode 100644 deps/v8/src/builtins/builtins-effects-analyzer.cc create mode 100644 deps/v8/src/builtins/builtins-effects-analyzer.h create mode 100644 deps/v8/src/codegen/riscv/constant-riscv-zfh.h create mode 100644 deps/v8/src/codegen/riscv/extension-riscv-zfh.cc create mode 100644 deps/v8/src/codegen/riscv/extension-riscv-zfh.h create mode 100644 deps/v8/src/compiler/turboshaft/csa-branch-elimination-phase.cc create mode 100644 deps/v8/src/compiler/turboshaft/csa-branch-elimination-phase.h create mode 100644 deps/v8/src/compiler/turboshaft/csa-early-machine-optimization-phase.cc create mode 100644 deps/v8/src/compiler/turboshaft/csa-early-machine-optimization-phase.h create mode 100644 deps/v8/src/compiler/turboshaft/csa-effects-computation.cc create mode 100644 deps/v8/src/compiler/turboshaft/csa-effects-computation.h create mode 100644 deps/v8/src/compiler/turboshaft/csa-late-escape-analysis-phase.cc create mode 100644 deps/v8/src/compiler/turboshaft/csa-late-escape-analysis-phase.h create mode 100644 deps/v8/src/compiler/turboshaft/csa-load-elimination-phase.cc create mode 100644 deps/v8/src/compiler/turboshaft/csa-load-elimination-phase.h create mode 100644 deps/v8/src/compiler/turboshaft/csa-memory-optimization-phase.cc create mode 100644 deps/v8/src/compiler/turboshaft/csa-memory-optimization-phase.h delete mode 100644 deps/v8/src/compiler/turboshaft/csa-optimize-phase.cc delete mode 100644 deps/v8/src/compiler/turboshaft/csa-optimize-phase.h create mode 100644 deps/v8/src/objects/js-temporal-helpers.cc create mode 100644 deps/v8/src/objects/js-temporal-helpers.h create mode 100644 deps/v8/src/objects/number-string-cache-inl.h create mode 100644 deps/v8/src/objects/number-string-cache.cc create mode 100644 deps/v8/src/objects/number-string-cache.h create mode 100644 deps/v8/src/profiler/heap-snapshot-common.h delete mode 100644 deps/v8/src/runtime/runtime-temporal.cc create mode 100644 deps/v8/src/snapshot/builtins-effects-dummy.cc create mode 100644 deps/v8/src/utils/output-stream.cc create mode 100644 deps/v8/src/utils/output-stream.h create mode 100644 deps/v8/src/wasm/basic-block-calculator.cc create mode 100644 deps/v8/src/wasm/basic-block-calculator.h create mode 100644 deps/v8/src/wasm/wasm-code-coverage.h create mode 100644 deps/v8/src/wasm/wasm-export-wrapper-cache.cc create mode 100644 deps/v8/src/wasm/wasm-export-wrapper-cache.h create mode 100644 deps/v8/test/debugger/debug/debug-liveedit-eval.js create mode 100644 deps/v8/test/debugger/debug/debug-step-into-explicit-resource-management.js rename deps/v8/test/{mjsunit/wasm/deopt/deopt-multi-instance.js => filecheck/wasm-deopt-multi-instance.js} (84%) create mode 100644 deps/v8/test/fuzzer/inspector/regress-391921979.js create mode 100644 deps/v8/test/fuzzer/wasm/compile-revec.cc create mode 100644 deps/v8/test/fuzzer/wasm/module/regress-406925416.wasm create mode 100644 deps/v8/test/fuzzer/wasm/module/regress-419085592.wasm create mode 100644 deps/v8/test/inspector/debugger/step-over-expected.txt create mode 100644 deps/v8/test/inspector/debugger/step-over.js create mode 100644 deps/v8/test/inspector/regress/regress-crbug-399002824-expected.txt create mode 100644 deps/v8/test/inspector/regress/regress-crbug-399002824.js create mode 100644 deps/v8/test/inspector/runtime/error-preview-sideeffects-expected.txt create mode 100644 deps/v8/test/inspector/runtime/error-preview-sideeffects.js create mode 100644 deps/v8/test/inspector/runtime/error-stack-explicit-resource-management-expected.txt create mode 100644 deps/v8/test/inspector/runtime/error-stack-explicit-resource-management.js create mode 100644 deps/v8/test/inspector/runtime/preview-sideeffects-expected.txt create mode 100644 deps/v8/test/inspector/runtime/preview-sideeffects.js create mode 100644 deps/v8/test/message/fail/regress-crbug-417373146.js create mode 100644 deps/v8/test/message/fail/regress-crbug-417373146.out create mode 100644 deps/v8/test/mjsunit/array-concat-to-holey-double.js create mode 100644 deps/v8/test/mjsunit/baseline/loadic-transition-elements.js create mode 100644 deps/v8/test/mjsunit/compiler/inlining-exponential.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-419744895.js create mode 100644 deps/v8/test/mjsunit/compiler/smi-bitwise-ops.js delete mode 100644 deps/v8/test/mjsunit/es6/throw-type-error-function-restrictions.js create mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-416166113.js create mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-416302802.js create mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-418804470.js create mode 100644 deps/v8/test/mjsunit/harmony/uint8-array-set-from-base64-on-shared-array-buffer.js create mode 100644 deps/v8/test/mjsunit/harmony/uint8-array-set-from-hex-on-shared-array-buffer.js create mode 100644 deps/v8/test/mjsunit/harmony/uint8-array-to-base64-on-shared-array-buffer.js create mode 100644 deps/v8/test/mjsunit/harmony/uint8-array-to-hex-on-shared-array-buffer.js create mode 100644 deps/v8/test/mjsunit/loadic-transition-elements.js create mode 100644 deps/v8/test/mjsunit/maglev/math-clz32.js create mode 100644 deps/v8/test/mjsunit/maglev/regress-410867001.js create mode 100644 deps/v8/test/mjsunit/maglev/regress-414750469.js create mode 100644 deps/v8/test/mjsunit/maglev/regress-414840455.js create mode 100644 deps/v8/test/mjsunit/maglev/regress-415523530.js create mode 100644 deps/v8/test/mjsunit/maglev/regress-419744895.js delete mode 100644 deps/v8/test/mjsunit/protector-cell/typedarray-length-1.js delete mode 100644 deps/v8/test/mjsunit/protector-cell/typedarray-length-2.js delete mode 100644 deps/v8/test/mjsunit/protector-cell/typedarray-length-3.js delete mode 100644 deps/v8/test/mjsunit/protector-cell/typedarray-length-4.js delete mode 100644 deps/v8/test/mjsunit/protector-cell/typedarray-length-5.js delete mode 100644 deps/v8/test/mjsunit/protector-cell/typedarray-length-6.js delete mode 100644 deps/v8/test/mjsunit/protector-cell/typedarray-length-7.js create mode 100644 deps/v8/test/mjsunit/regress-406332759.js create mode 100644 deps/v8/test/mjsunit/regress-408370964.js create mode 100644 deps/v8/test/mjsunit/regress-409911706.js create mode 100644 deps/v8/test/mjsunit/regress-411770057.js create mode 100644 deps/v8/test/mjsunit/regress-414738826.js create mode 100644 deps/v8/test/mjsunit/regress-415627214.js create mode 100644 deps/v8/test/mjsunit/regress-416179216.js create mode 100644 deps/v8/test/mjsunit/regress-416293771.js create mode 100644 deps/v8/test/mjsunit/regress-416442673.js create mode 100644 deps/v8/test/mjsunit/regress-417251443.js create mode 100644 deps/v8/test/mjsunit/regress-417385084.js create mode 100644 deps/v8/test/mjsunit/regress-417624826.js create mode 100644 deps/v8/test/mjsunit/regress-417768368.js create mode 100644 deps/v8/test/mjsunit/regress-418396718.js create mode 100644 deps/v8/test/mjsunit/regress-41882029.js create mode 100644 deps/v8/test/mjsunit/regress-419081101.js create mode 100644 deps/v8/test/mjsunit/regress-419099999.js create mode 100644 deps/v8/test/mjsunit/regress-419350536.js create mode 100644 deps/v8/test/mjsunit/regress-419601412.js create mode 100644 deps/v8/test/mjsunit/regress-419622700.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-1385368.js create mode 100644 deps/v8/test/mjsunit/regress/regress-408820921.js create mode 100644 deps/v8/test/mjsunit/regress/regress-414962716.js create mode 100644 deps/v8/test/mjsunit/regress/regress-416913840.js create mode 100644 deps/v8/test/mjsunit/regress/regress-417256364.js create mode 100644 deps/v8/test/mjsunit/regress/regress-417326263.js create mode 100644 deps/v8/test/mjsunit/regress/regress-417369007.js create mode 100644 deps/v8/test/mjsunit/regress/regress-417518228.js create mode 100644 deps/v8/test/mjsunit/regress/regress-417576784.js create mode 100644 deps/v8/test/mjsunit/regress/regress-418478214.js create mode 100644 deps/v8/test/mjsunit/regress/regress-419501740.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-413161347.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-413633048.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-418520151.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-413633038.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-413963387.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-415062511.js create mode 100644 deps/v8/test/mjsunit/sandbox/liftoff-wasmarray-i64-indexing.js create mode 100644 deps/v8/test/mjsunit/tools/foozzie_printing.js create mode 100644 deps/v8/test/mjsunit/turbolev/regress-411802156.js create mode 100644 deps/v8/test/mjsunit/undefined-double.js create mode 100644 deps/v8/test/mjsunit/wasm/custom-descriptors-inlining.js create mode 100644 deps/v8/test/mjsunit/wasm/shared-everything/atomic-instructions.js create mode 100644 deps/v8/test/mjsunit/wasm/shared-everything/gc-casts-shared-to-unshared.js create mode 100644 deps/v8/test/mjsunit/wasm/shared-everything/gc-casts-subtypes-shared.js create mode 100644 deps/v8/test/mjsunit/wasm/shared-everything/not-shared-everything.js create mode 100644 deps/v8/test/mjsunit/wasm/shared-everything/shared-extended-instructions.js create mode 100644 deps/v8/test/unittests/profiler/heap-snapshot-unittest.cc create mode 100644 deps/v8/test/unittests/sandbox/sandbox-hardware-support-unittest.cc create mode 100644 deps/v8/test/unittests/wasm/basic-block-calculator-unittest.cc create mode 100644 deps/v8/third_party/dragonbox/BUILD.gn create mode 100644 deps/v8/third_party/dragonbox/OWNERS create mode 100644 deps/v8/third_party/dragonbox/README.v8 create mode 100644 deps/v8/third_party/dragonbox/src/include/dragonbox/dragonbox.h create mode 100644 deps/v8/third_party/dragonbox/src/include/dragonbox/dragonbox_to_chars.h delete mode 100644 deps/v8/third_party/zlib/patches/0006-fix-check_match.patch create mode 100644 deps/v8/third_party/zlib/patches/0018-support-prefixed-zip64.patch create mode 100644 deps/v8/tools/clusterfuzz/js_fuzzer/mutators/allocation_timeout_mutator.js create mode 100644 deps/v8/tools/clusterfuzz/js_fuzzer/test_data/alloc/alloc.js create mode 100644 deps/v8/tools/clusterfuzz/js_fuzzer/test_data/alloc/alloc_always_chosen_expected.js create mode 100644 deps/v8/tools/clusterfuzz/js_fuzzer/test_data/alloc/alloc_not_chosen_expected.js create mode 100644 deps/v8/tools/clusterfuzz/js_fuzzer/test_data/alloc/alloc_not_enabled_expected.js create mode 100644 deps/v8/tools/clusterfuzz/js_fuzzer/test_data/regress/db/assign_expected/CallExpression/113f1844.json create mode 100644 deps/v8/tools/clusterfuzz/js_fuzzer/test_data/regress/db/assign_expected/index.json create mode 100644 deps/v8/tools/sanitizers/linux/arm64/.gitignore create mode 100644 deps/v8/tools/sanitizers/linux/arm64/llvm-symbolizer.sha1 create mode 100644 deps/v8/tools/testrunner/testdata/testroot8/out/build/d8_mocked.py create mode 100644 deps/v8/tools/testrunner/testdata/testroot8/test/sweet/sweet.status create mode 100644 deps/v8/tools/testrunner/testdata/testroot8/test/sweet/testcfg.py diff --git a/deps/v8/.gitignore b/deps/v8/.gitignore index 423eaa77fae43c..95320469518045 100644 --- a/deps/v8/.gitignore +++ b/deps/v8/.gitignore @@ -68,6 +68,9 @@ /third_party/colorama/src !/third_party/cpu_features /third_party/cpu_features/src +!/third_party/dragonbox +/third_party/dragonbox/src/* +!/third_party/dragonbox/src/include !/third_party/fast_float /third_party/fast_float/src/* !/third_party/fast_float/src/include diff --git a/deps/v8/.ycm_extra_conf.py b/deps/v8/.ycm_extra_conf.py index 793beda7955990..382abaea15d114 100644 --- a/deps/v8/.ycm_extra_conf.py +++ b/deps/v8/.ycm_extra_conf.py @@ -132,7 +132,11 @@ def GetClangCommandFromNinjaForFilename(v8_root, filename): # Ninja might execute several commands to build something. We want the last # clang command. clang_line = None - for line in reversed(stdout.decode('utf-8').splitlines()): + for line in reversed(stdout.splitlines()): + try: + line = line.decode('utf-8') + except UnicodeDecodeError: + continue if 'clang' in line: clang_line = line break diff --git a/deps/v8/AUTHORS b/deps/v8/AUTHORS index 280e33e6841cc1..e4a53207d6ed25 100644 --- a/deps/v8/AUTHORS +++ b/deps/v8/AUTHORS @@ -189,6 +189,7 @@ Keyhan Vakil Kris Selden Kyounga Ra Levi Zim +LN Liberda Loo Rong Jie Lu Yahan Ludovic Mermod @@ -335,3 +336,4 @@ Jing Peiyang magic-akari Ryuhei Shima Domagoj Stolfa +Zhijin Zeng diff --git a/deps/v8/BUILD.bazel b/deps/v8/BUILD.bazel index 920ed94829fdb8..3f5a87d054e1f1 100644 --- a/deps/v8/BUILD.bazel +++ b/deps/v8/BUILD.bazel @@ -1176,7 +1176,8 @@ filegroup( "src/objects/js-shadow-realm.tq", "src/objects/js-shared-array.tq", "src/objects/js-struct.tq", - "src/objects/js-temporal-objects.tq", + # Temporal is currently gn-only + # "src/objects/js-temporal-objects.tq", "src/objects/js-weak-refs.tq", "src/objects/literal-objects.tq", "src/objects/map.tq", @@ -1318,8 +1319,6 @@ filegroup( "src/api/api-arguments.h", "src/api/api-arguments-inl.h", "src/api/api-inl.h", - "src/api/api-macros.h", - "src/api/api-macros-undef.h", "src/api/api-natives.cc", "src/api/api-natives.h", "src/asmjs/asm-js.h", @@ -1381,6 +1380,8 @@ filegroup( "src/builtins/builtins-definitions.h", "src/builtins/builtins-descriptors.h", "src/builtins/builtins-disposable-stack.cc", + "src/builtins/builtins-effects-analyzer.cc", + "src/builtins/builtins-effects-analyzer.h", "src/builtins/builtins-error.cc", "src/builtins/builtins-function.cc", "src/builtins/builtins-global.cc", @@ -1397,7 +1398,8 @@ filegroup( "src/builtins/builtins-string.cc", "src/builtins/builtins-struct.cc", "src/builtins/builtins-symbol.cc", - "src/builtins/builtins-temporal.cc", + # Temporal is currently gn-only + # "src/builtins/builtins-temporal.cc", "src/builtins/builtins-trace.cc", "src/builtins/builtins-typed-array.cc", "src/builtins/builtins-utils.h", @@ -1718,6 +1720,7 @@ filegroup( "src/heap/free-list.h", "src/heap/free-list-inl.h", "src/heap/gc-callbacks.h", + "src/heap/gc-callbacks-inl.h", "src/heap/gc-tracer.cc", "src/heap/gc-tracer.h", "src/heap/gc-tracer-inl.h", @@ -2105,9 +2108,12 @@ filegroup( "src/objects/js-struct.cc", "src/objects/js-struct.h", "src/objects/js-struct-inl.h", - "src/objects/js-temporal-objects.cc", - "src/objects/js-temporal-objects.h", - "src/objects/js-temporal-objects-inl.h", + # Temporal is currently gn-only + # "src/objects/js-temporal-objects.cc", + # "src/objects/js-temporal-objects.h", + # "src/objects/js-temporal-objects-inl.h", + "src/objects/js-temporal-helpers.h", + "src/objects/js-temporal-helpers.cc", "src/objects/js-weak-refs.cc", "src/objects/js-weak-refs.h", "src/objects/js-weak-refs-inl.h", @@ -2141,6 +2147,9 @@ filegroup( "src/objects/module-inl.h", "src/objects/name.h", "src/objects/name-inl.h", + "src/objects/number-string-cache.cc", + "src/objects/number-string-cache.h", + "src/objects/number-string-cache-inl.h", "src/objects/object-list-macros.h", "src/objects/object-macros.h", "src/objects/object-macros-undef.h", @@ -2303,6 +2312,7 @@ filegroup( "src/profiler/cpu-profiler-inl.h", "src/profiler/heap-profiler.cc", "src/profiler/heap-profiler.h", + "src/profiler/heap-snapshot-common.h", "src/profiler/heap-snapshot-generator.cc", "src/profiler/heap-snapshot-generator.h", "src/profiler/heap-snapshot-generator-inl.h", @@ -2401,7 +2411,6 @@ filegroup( "src/runtime/runtime-shadow-realm.cc", "src/runtime/runtime-strings.cc", "src/runtime/runtime-symbol.cc", - "src/runtime/runtime-temporal.cc", "src/runtime/runtime-test.cc", "src/runtime/runtime-trace.cc", "src/runtime/runtime-typedarray.cc", @@ -2453,6 +2462,7 @@ filegroup( "src/sandbox/tagged-payload.h", "src/sandbox/testing.cc", "src/sandbox/testing.h", + "src/snapshot/builtins-effects-dummy.cc", "src/snapshot/code-serializer.cc", "src/snapshot/code-serializer.h", "src/snapshot/context-deserializer.cc", @@ -2526,8 +2536,9 @@ filegroup( "src/tasks/operations-barrier.h", "src/tasks/task-utils.cc", "src/tasks/task-utils.h", - "src/temporal/temporal-parser.cc", - "src/temporal/temporal-parser.h", + # Temporal is currently gn-only + # "src/temporal/temporal-parser.cc", + # "src/temporal/temporal-parser.h", "src/torque/runtime-macro-shims.h", "src/tracing/trace-event.cc", "src/tracing/trace-event.h", @@ -2554,6 +2565,8 @@ filegroup( "src/utils/locked-queue-inl.h", "src/utils/memcopy.cc", "src/utils/memcopy.h", + "src/utils/output-stream.cc", + "src/utils/output-stream.h", "src/utils/ostreams.cc", "src/utils/ostreams.h", "src/utils/scoped-list.h", @@ -2939,6 +2952,8 @@ filegroup( "src/wasm/baseline/parallel-move.cc", "src/wasm/baseline/parallel-move.h", "src/wasm/baseline/parallel-move-inl.h", + "src/wasm/basic-block-calculator.cc", + "src/wasm/basic-block-calculator.h", "src/wasm/branch-hint-map.h", "src/wasm/canonical-types.cc", "src/wasm/canonical-types.h", @@ -2995,6 +3010,7 @@ filegroup( "src/wasm/value-type.h", "src/wasm/wasm-arguments.h", "src/wasm/wasm-builtin-list.h", + "src/wasm/wasm-code-coverage.h", "src/wasm/wasm-code-manager.cc", "src/wasm/wasm-code-manager.h", "src/wasm/wasm-code-pointer-table.cc", @@ -3009,6 +3025,8 @@ filegroup( "src/wasm/wasm-disassembler-impl.h", "src/wasm/wasm-engine.cc", "src/wasm/wasm-engine.h", + "src/wasm/wasm-export-wrapper-cache.cc", + "src/wasm/wasm-export-wrapper-cache.h", "src/wasm/wasm-external-refs.cc", "src/wasm/wasm-external-refs.h", "src/wasm/wasm-features.cc", @@ -3364,8 +3382,18 @@ filegroup( "src/compiler/turboshaft/build-graph-phase.h", "src/compiler/turboshaft/builtin-call-descriptors.h", "src/compiler/turboshaft/builtin-compiler.h", - "src/compiler/turboshaft/csa-optimize-phase.cc", - "src/compiler/turboshaft/csa-optimize-phase.h", + "src/compiler/turboshaft/csa-branch-elimination-phase.cc", + "src/compiler/turboshaft/csa-branch-elimination-phase.h", + "src/compiler/turboshaft/csa-early-machine-optimization-phase.cc", + "src/compiler/turboshaft/csa-early-machine-optimization-phase.h", + "src/compiler/turboshaft/csa-effects-computation.cc", + "src/compiler/turboshaft/csa-effects-computation.h", + "src/compiler/turboshaft/csa-late-escape-analysis-phase.cc", + "src/compiler/turboshaft/csa-late-escape-analysis-phase.h", + "src/compiler/turboshaft/csa-load-elimination-phase.cc", + "src/compiler/turboshaft/csa-load-elimination-phase.h", + "src/compiler/turboshaft/csa-memory-optimization-phase.cc", + "src/compiler/turboshaft/csa-memory-optimization-phase.h", "src/compiler/turboshaft/dataview-lowering-reducer.h", "src/compiler/turboshaft/code-elimination-and-simplification-phase.cc", "src/compiler/turboshaft/code-elimination-and-simplification-phase.h", @@ -3683,7 +3711,8 @@ filegroup( "src/builtins/builtins-string-gen.cc", "src/builtins/builtins-string-gen.h", "src/builtins/builtins-string-tsa.cc", - "src/builtins/builtins-temporal-gen.cc", + # Temporal is currently gn-only + # "src/builtins/builtins-temporal-gen.cc", "src/builtins/builtins-typed-array-gen.cc", "src/builtins/builtins-typed-array-gen.h", "src/builtins/builtins-utils-gen.h", @@ -3885,6 +3914,17 @@ filegroup( }), ) +v8_library( + name = "lib_dragonbox", + srcs = ["third_party/dragonbox/src/include/dragonbox/dragonbox.h"], + hdrs = [ + "third_party/dragonbox/src/include/dragonbox/dragonbox.h", + ], + includes = [ + "third_party/dragonbox/src/include", + ], +) + v8_library( name = "lib_fp16", srcs = ["third_party/fp16/src/include/fp16.h"], @@ -4361,6 +4401,12 @@ cc_library( name = "simdutf", srcs = ["third_party/simdutf/simdutf.cpp"], hdrs = ["third_party/simdutf/simdutf.h"], + copts = select({ + "@v8//bazel/config:is_clang": ["-std=c++20"], + "@v8//bazel/config:is_gcc": ["-std=gnu++2a"], + "@v8//bazel/config:is_windows": ["/std:c++20"], + "//conditions:default": [], + }), ) v8_library( @@ -4391,6 +4437,7 @@ v8_library( ":noicu/generated_torque_definitions", ], deps = [ + ":lib_dragonbox", "//third_party/fast_float/src:fast_float", ":lib_fp16", ":simdutf", diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn index 818f13802c6660..f2f72a02c61d64 100644 --- a/deps/v8/BUILD.gn +++ b/deps/v8/BUILD.gn @@ -342,6 +342,10 @@ declare_args() { # Sets -DV8_ENABLE_SANDBOX. v8_enable_sandbox = "" + # Enable experimental hardware support for the V8 sandbox if available. + # Sets -DV8_ENABLE_SANDBOX_HARDWARE_SUPPORT + v8_enable_sandbox_hardware_support = false + # Enable leaptiering v8_enable_leaptiering = true @@ -457,7 +461,8 @@ declare_args() { v8_enable_slow_tracing = is_debug # Enable jump table switch for built-in. - v8_enable_builtin_jump_table_switch = v8_current_cpu == "x64" + v8_enable_builtin_jump_table_switch = + v8_current_cpu == "x64" || v8_current_cpu == "arm64" v8_shortcut_strings_in_minor_ms = false @@ -514,6 +519,9 @@ declare_args() { # Deinterleaving load support. v8_enable_wasm_deinterleaved_mem_ops = false + + # Expose F.p.caller and .arguments as own properties. + v8_function_arguments_caller_are_own_props = false } # Derived defaults. @@ -768,12 +776,16 @@ assert(!v8_enable_pointer_compression_8gb || v8_enable_pointer_compression, assert(!v8_enable_sandbox || v8_enable_external_code_space, "The sandbox requires the external code space") -assert(v8_enable_leaptiering || !v8_enable_sandbox, - "the sandbox requires leaptiering to be enabled") +assert( + v8_enable_leaptiering, + "non-leaptiering is deprecated (see https://groups.google.com/g/v8-dev/c/PYk2_GGP2Wk)") assert(!v8_enable_memory_corruption_api || v8_enable_sandbox, "The Memory Corruption API requires the sandbox") +assert(!v8_enable_sandbox_hardware_support || v8_enable_sandbox, + "The sandbox must be enabled to enable sandbox hardware support") + assert( !v8_enable_pointer_compression_shared_cage || v8_enable_pointer_compression, "Can't share a pointer compression cage if pointers aren't compressed") @@ -839,6 +851,8 @@ assert( v8_random_seed = "314159265" v8_toolset_for_shell = "host" +is_DEBUG_defined = v8_enable_debugging_features || v8_dcheck_always_on + ############################################################################### # Configurations # @@ -853,6 +867,7 @@ config("internal_config_base") { ".", "include", "$target_gen_dir", + "$target_gen_dir/include", ] } @@ -1245,6 +1260,9 @@ config("features") { if (v8_enable_i18n_support) { defines += [ "V8_INTL_SUPPORT" ] } + if (v8_enable_temporal_support) { + defines += [ "V8_TEMPORAL_SUPPORT" ] + } if (v8_enable_local_handle_zapping) { defines += [ "ENABLE_LOCAL_HANDLE_ZAPPING" ] } @@ -1384,6 +1402,9 @@ config("features") { defines += [ "V8_DRUMBRAKE_BOUNDS_CHECKS" ] } } + if (v8_enable_sandbox_hardware_support) { + defines += [ "V8_ENABLE_SANDBOX_HARDWARE_SUPPORT" ] + } if (v8_enable_memory_corruption_api) { defines += [ "V8_ENABLE_MEMORY_CORRUPTION_API" ] } @@ -1450,6 +1471,9 @@ config("features") { if (v8_target_is_simulator) { defines += [ "USE_SIMULATOR" ] } + if (v8_function_arguments_caller_are_own_props) { + defines += [ "V8_FUNCTION_ARGUMENTS_CALLER_ARE_OWN_PROPS" ] + } } config("toolchain") { @@ -1874,6 +1898,8 @@ if (v8_postmortem_support) { "src/objects/megadom-handler-inl.h", "src/objects/name.h", "src/objects/name-inl.h", + "src/objects/number-string-cache.h", + "src/objects/number-string-cache-inl.h", "src/objects/objects.h", "src/objects/objects-inl.h", "src/objects/oddball.h", @@ -2098,7 +2124,6 @@ torque_files = [ "src/objects/js-shadow-realm.tq", "src/objects/js-shared-array.tq", "src/objects/js-struct.tq", - "src/objects/js-temporal-objects.tq", "src/objects/js-weak-refs.tq", "src/objects/literal-objects.tq", "src/objects/map.tq", @@ -2154,6 +2179,10 @@ if (v8_enable_i18n_support) { ] } +if (v8_enable_temporal_support) { + torque_files += [ "src/objects/js-temporal-objects.tq" ] +} + if (v8_enable_webassembly) { torque_files += [ "src/builtins/js-to-js.tq", @@ -2291,6 +2320,16 @@ group("v8_maybe_icu") { } } +group("v8_maybe_temporal") { + if (v8_enable_temporal_support) { + deps = [ "//third_party/rust/temporal_capi/v0_0:lib" ] + + # Only needs to be depended on by targets that wish to use TEMPORAL_CAPI_VERSION_* + public_configs = + [ "//third_party/rust/temporal_capi:temporal_capi_versioning_defines" ] + } +} + group("v8_abseil") { public_deps = [ "//third_party/abseil-cpp:absl" ] @@ -2321,6 +2360,7 @@ v8_source_set("torque_generated_initializers") { ":generate_bytecode_builtins_list", ":run_torque", ":v8_base_without_compiler", + ":v8_maybe_temporal", ":v8_tracing", ] @@ -2367,6 +2407,7 @@ v8_source_set("torque_generated_definitions") { ":run_torque", ":v8_internal_headers", ":v8_libbase", + ":v8_maybe_temporal", ":v8_tracing", ] @@ -2456,6 +2497,10 @@ template("run_mksnapshot") { outputs = [] + if (is_DEBUG_defined && name == "default") { + outputs += [ "$target_gen_dir/src/builtins/builtins-effects.cc" ] + } + data = [] if (current_os != "zos") { @@ -2507,6 +2552,14 @@ template("run_mksnapshot") { "--no-use-ic", ] + if (is_DEBUG_defined && name == "default") { + args += [ + "--builtins-effects-src", + rebase_path("$target_gen_dir/src/builtins/builtins-effects.cc", + root_build_dir), + ] + } + if (v8_verify_deterministic_mksnapshot) { # Flags that help debugging snapshot determinism. args += [ "--trace-read-only-promotion" ] @@ -2752,7 +2805,6 @@ if (v8_verify_builtins_compatibility) { action("v8_dump_build_config") { script = "tools/testrunner/utils/dump_build_config.py" outputs = [ "$root_out_dir/v8_build_config.json" ] - is_DEBUG_defined = v8_enable_debugging_features || v8_dcheck_always_on is_full_debug = v8_enable_debugging_features && !v8_optimized_debug arch = v8_target_cpu @@ -2812,6 +2864,7 @@ action("v8_dump_build_config") { "has_webassembly=$v8_enable_webassembly", "has_wasm_interpreter=$v8_enable_drumbrake", "i18n=$v8_enable_i18n_support", + "temporal=$v8_enable_temporal_support", "is_android=$is_android", "is_ios=$is_ios", "js_shared_memory=$js_shared_memory", @@ -2866,6 +2919,7 @@ generated_file("v8_generate_features_json") { v8_enable_gdbjit = v8_enable_gdbjit v8_enable_hugepage = v8_enable_hugepage v8_enable_i18n_support = v8_enable_i18n_support + v8_enable_temporal_support = v8_enable_temporal_support v8_enable_javascript_promise_hooks = v8_enable_javascript_promise_hooks v8_enable_lite_mode = v8_enable_lite_mode v8_enable_map_packing = v8_enable_map_packing @@ -2900,6 +2954,7 @@ v8_source_set("v8_snapshot") { deps = [ ":v8_internal_headers", ":v8_libbase", + ":v8_maybe_temporal", ":v8_tracing", ] public_deps = [ @@ -2922,6 +2977,9 @@ v8_source_set("v8_snapshot") { sources += [ "$target_gen_dir/embedded.s" ] } } + if (is_DEBUG_defined) { + sources += [ "$target_gen_dir/src/builtins/builtins-effects.cc" ] + } configs = [ ":internal_config" ] @@ -3002,7 +3060,6 @@ v8_source_set("v8_initializers") { "src/builtins/builtins-string-gen.cc", "src/builtins/builtins-string-gen.h", "src/builtins/builtins-string-tsa.cc", - "src/builtins/builtins-temporal-gen.cc", "src/builtins/builtins-typed-array-gen.cc", "src/builtins/builtins-typed-array-gen.h", "src/builtins/builtins-utils-gen.h", @@ -3060,6 +3117,10 @@ v8_source_set("v8_initializers") { } } + if (v8_enable_temporal_support) { + sources += [ "src/builtins/builtins-temporal-gen.cc" ] + } + if (v8_current_cpu == "x86") { sources += [ ### gcmole(ia32) ### @@ -3125,6 +3186,7 @@ v8_source_set("v8_init") { deps = [ ":v8_base_without_compiler", ":v8_initializers", + ":v8_maybe_temporal", ":v8_tracing", ] @@ -3292,6 +3354,7 @@ v8_header_set("v8_shared_internal_headers") { ] deps = [ + ":cppgc_headers", ":v8_headers", ":v8_libbase", ] @@ -3334,8 +3397,6 @@ v8_header_set("v8_internal_headers") { "src/api/api-arguments-inl.h", "src/api/api-arguments.h", "src/api/api-inl.h", - "src/api/api-macros-undef.h", - "src/api/api-macros.h", "src/api/api-natives.h", "src/api/api.h", "src/ast/ast-function-literal-id-reindexer.h", @@ -3354,6 +3415,7 @@ v8_header_set("v8_internal_headers") { "src/builtins/builtins-constructor.h", "src/builtins/builtins-definitions.h", "src/builtins/builtins-descriptors.h", + "src/builtins/builtins-effects-analyzer.h", "src/builtins/builtins-inl.h", "src/builtins/builtins-promise.h", "src/builtins/builtins-utils-inl.h", @@ -3563,7 +3625,12 @@ v8_header_set("v8_internal_headers") { "src/compiler/turboshaft/builtin-call-descriptors.h", "src/compiler/turboshaft/code-elimination-and-simplification-phase.h", "src/compiler/turboshaft/copying-phase.h", - "src/compiler/turboshaft/csa-optimize-phase.h", + "src/compiler/turboshaft/csa-branch-elimination-phase.h", + "src/compiler/turboshaft/csa-early-machine-optimization-phase.h", + "src/compiler/turboshaft/csa-effects-computation-phase.h", + "src/compiler/turboshaft/csa-late-escape-analysis-phase.h", + "src/compiler/turboshaft/csa-load-elimination-phase.h", + "src/compiler/turboshaft/csa-memory-optimization-phase.h", "src/compiler/turboshaft/dataview-lowering-reducer.h", "src/compiler/turboshaft/dead-code-elimination-reducer.h", "src/compiler/turboshaft/debug-feature-lowering-phase.h", @@ -3763,6 +3830,7 @@ v8_header_set("v8_internal_headers") { "src/heap/finalization-registry-cleanup-task.h", "src/heap/free-list-inl.h", "src/heap/free-list.h", + "src/heap/gc-callbacks-inl.h", "src/heap/gc-callbacks.h", "src/heap/gc-tracer-inl.h", "src/heap/gc-tracer.h", @@ -4027,8 +4095,7 @@ v8_header_set("v8_internal_headers") { "src/objects/js-shared-array.h", "src/objects/js-struct-inl.h", "src/objects/js-struct.h", - "src/objects/js-temporal-objects-inl.h", - "src/objects/js-temporal-objects.h", + "src/objects/js-temporal-helpers.h", "src/objects/js-weak-refs-inl.h", "src/objects/js-weak-refs.h", "src/objects/keys.h", @@ -4170,6 +4237,7 @@ v8_header_set("v8_internal_headers") { "src/profiler/cpu-profiler-inl.h", "src/profiler/cpu-profiler.h", "src/profiler/heap-profiler.h", + "src/profiler/heap-snapshot-common.h", "src/profiler/heap-snapshot-generator-inl.h", "src/profiler/heap-snapshot-generator.h", "src/profiler/output-stream-writer.h", @@ -4308,6 +4376,7 @@ v8_header_set("v8_internal_headers") { "src/utils/locked-queue.h", "src/utils/memcopy.h", "src/utils/ostreams.h", + "src/utils/output-stream.h", "src/utils/scoped-list.h", "src/utils/sha-256.h", "src/utils/sparse-bit-vector.h", @@ -4337,6 +4406,13 @@ v8_header_set("v8_internal_headers") { sources += [ "src/snapshot/snapshot-compression.h" ] } + if (v8_enable_temporal_support) { + sources += [ + "src/objects/js-temporal-objects-inl.h", + "src/objects/js-temporal-objects.h", + ] + } + if (v8_use_perfetto) { sources -= [ "src/tracing/trace-event-no-perfetto.h" ] sources += [ @@ -4449,6 +4525,7 @@ v8_header_set("v8_internal_headers") { "src/wasm/baseline/liftoff-varstate.h", "src/wasm/baseline/parallel-move-inl.h", "src/wasm/baseline/parallel-move.h", + "src/wasm/basic-block-calculator.h", "src/wasm/canonical-types.h", "src/wasm/code-space-access.h", "src/wasm/compilation-environment-inl.h", @@ -4485,6 +4562,7 @@ v8_header_set("v8_internal_headers") { "src/wasm/value-type.h", "src/wasm/wasm-arguments.h", "src/wasm/wasm-builtin-list.h", + "src/wasm/wasm-code-coverage.h", "src/wasm/wasm-code-manager.h", "src/wasm/wasm-code-pointer-table-inl.h", "src/wasm/wasm-code-pointer-table.h", @@ -4493,6 +4571,7 @@ v8_header_set("v8_internal_headers") { "src/wasm/wasm-disassembler-impl.h", "src/wasm/wasm-disassembler.h", "src/wasm/wasm-engine.h", + "src/wasm/wasm-export-wrapper-cache.h", "src/wasm/wasm-external-refs.h", "src/wasm/wasm-feature-flags.h", "src/wasm/wasm-features.h", @@ -4959,6 +5038,8 @@ v8_header_set("v8_internal_headers") { ":v8_abseil", ":v8_heap_base_headers", ":v8_libbase", + ":v8_maybe_temporal", + "//third_party/simdutf:simdutf", ] } @@ -5074,7 +5155,12 @@ v8_compiler_sources = [ "src/compiler/turboshaft/build-graph-phase.cc", "src/compiler/turboshaft/code-elimination-and-simplification-phase.cc", "src/compiler/turboshaft/copying-phase.cc", - "src/compiler/turboshaft/csa-optimize-phase.cc", + "src/compiler/turboshaft/csa-branch-elimination-phase.cc", + "src/compiler/turboshaft/csa-early-machine-optimization-phase.cc", + "src/compiler/turboshaft/csa-effects-computation.cc", + "src/compiler/turboshaft/csa-late-escape-analysis-phase.cc", + "src/compiler/turboshaft/csa-load-elimination-phase.cc", + "src/compiler/turboshaft/csa-memory-optimization-phase.cc", "src/compiler/turboshaft/debug-feature-lowering-phase.cc", "src/compiler/turboshaft/decompression-optimization-phase.cc", "src/compiler/turboshaft/decompression-optimization.cc", @@ -5264,6 +5350,7 @@ v8_source_set("v8_compiler_for_mksnapshot_source_set") { ":v8_base_without_compiler", ":v8_internal_headers", ":v8_libbase", + ":v8_maybe_temporal", ":v8_shared_internal_headers", ] @@ -5302,6 +5389,7 @@ v8_source_set("v8_compiler") { deps = [ ":v8_base_without_compiler", ":v8_libbase", + ":v8_maybe_temporal", ":v8_shared_internal_headers", ] @@ -5374,6 +5462,7 @@ v8_source_set("v8_base_without_compiler") { "src/builtins/builtins-dataview.cc", "src/builtins/builtins-date.cc", "src/builtins/builtins-disposable-stack.cc", + "src/builtins/builtins-effects-analyzer.cc", "src/builtins/builtins-error.cc", "src/builtins/builtins-function.cc", "src/builtins/builtins-global.cc", @@ -5390,7 +5479,6 @@ v8_source_set("v8_base_without_compiler") { "src/builtins/builtins-string.cc", "src/builtins/builtins-struct.cc", "src/builtins/builtins-symbol.cc", - "src/builtins/builtins-temporal.cc", "src/builtins/builtins-trace.cc", "src/builtins/builtins-typed-array.cc", "src/builtins/builtins-weak-refs.cc", @@ -5645,7 +5733,7 @@ v8_source_set("v8_base_without_compiler") { "src/objects/js-segmenter.cc", "src/objects/js-segments.cc", "src/objects/js-struct.cc", - "src/objects/js-temporal-objects.cc", + "src/objects/js-temporal-helpers.cc", "src/objects/js-weak-refs.cc", "src/objects/keys.cc", "src/objects/literal-objects.cc", @@ -5655,6 +5743,7 @@ v8_source_set("v8_base_without_compiler") { "src/objects/map-updater.cc", "src/objects/map.cc", "src/objects/module.cc", + "src/objects/number-string-cache.cc", "src/objects/object-type.cc", "src/objects/objects.cc", "src/objects/option-utils.cc", @@ -5754,7 +5843,6 @@ v8_source_set("v8_base_without_compiler") { "src/runtime/runtime-shadow-realm.cc", "src/runtime/runtime-strings.cc", "src/runtime/runtime-symbol.cc", - "src/runtime/runtime-temporal.cc", "src/runtime/runtime-test.cc", "src/runtime/runtime-trace.cc", "src/runtime/runtime-typedarray.cc", @@ -5813,6 +5901,7 @@ v8_source_set("v8_base_without_compiler") { "src/utils/identity-map.cc", "src/utils/memcopy.cc", "src/utils/ostreams.cc", + "src/utils/output-stream.cc", "src/utils/sha-256.cc", "src/utils/utils.cc", "src/utils/version.cc", @@ -5827,6 +5916,13 @@ v8_source_set("v8_base_without_compiler") { sources += [ "src/snapshot/snapshot-compression.cc" ] } + if (v8_enable_temporal_support) { + sources += [ + "src/builtins/builtins-temporal.cc", + "src/objects/js-temporal-objects.cc", + ] + } + if (v8_enable_sparkplug) { sources += [ "src/baseline/baseline-batch-compiler.cc", @@ -5904,6 +6000,7 @@ v8_source_set("v8_base_without_compiler") { "src/wasm/baseline/liftoff-assembler.cc", "src/wasm/baseline/liftoff-compiler.cc", "src/wasm/baseline/parallel-move.cc", + "src/wasm/basic-block-calculator.cc", "src/wasm/canonical-types.cc", "src/wasm/code-space-access.cc", "src/wasm/constant-expression-interface.cc", @@ -5929,6 +6026,7 @@ v8_source_set("v8_base_without_compiler") { "src/wasm/wasm-deopt-data.cc", "src/wasm/wasm-disassembler.cc", "src/wasm/wasm-engine.cc", + "src/wasm/wasm-export-wrapper-cache.cc", "src/wasm/wasm-external-refs.cc", "src/wasm/wasm-features.cc", "src/wasm/wasm-import-wrapper-cache.cc", @@ -6173,6 +6271,7 @@ v8_source_set("v8_base_without_compiler") { "src/codegen/riscv/extension-riscv-f.cc", "src/codegen/riscv/extension-riscv-m.cc", "src/codegen/riscv/extension-riscv-v.cc", + "src/codegen/riscv/extension-riscv-zfh.cc", "src/codegen/riscv/extension-riscv-zicond.cc", "src/codegen/riscv/extension-riscv-zicsr.cc", "src/codegen/riscv/extension-riscv-zifencei.cc", @@ -6213,6 +6312,7 @@ v8_source_set("v8_base_without_compiler") { "src/codegen/riscv/extension-riscv-f.cc", "src/codegen/riscv/extension-riscv-m.cc", "src/codegen/riscv/extension-riscv-v.cc", + "src/codegen/riscv/extension-riscv-zfh.cc", "src/codegen/riscv/extension-riscv-zicond.cc", "src/codegen/riscv/extension-riscv-zicsr.cc", "src/codegen/riscv/extension-riscv-zifencei.cc", @@ -6257,10 +6357,12 @@ v8_source_set("v8_base_without_compiler") { ":v8_headers", ":v8_heap_base", ":v8_libbase", + ":v8_maybe_temporal", ":v8_shared_internal_headers", ":v8_tracing", ":v8_version", "src/inspector:inspector", + "//third_party/dragonbox", "//third_party/fast_float", "//third_party/highway:libhwy", ] @@ -6772,8 +6874,13 @@ v8_component("v8_libbase") { } if (using_sanitizer && !build_with_chromium) { - data_deps += - [ "//build/config/clang:llvm-symbolizer_data($host_toolchain)" ] + if (is_linux && target_cpu == "arm64") { + # TODO(https://crbug.com/396446140): Switch to the symbolizer from our + # bundled toolchain as soon as one is available for linux-arm64. + data += [ "tools/sanitizers/linux/arm64/llvm-symbolizer" ] + } else { + data_deps += [ "//build/config/clang:llvm-symbolizer_data" ] + } } if (v8_use_libm_trig_functions) { @@ -6896,6 +7003,7 @@ v8_source_set("fuzzer_support") { ":v8_libplatform", ":v8_maybe_icu", ] + deps = [ ":v8_maybe_temporal" ] } v8_source_set("v8_bigint") { @@ -7221,6 +7329,7 @@ if (v8_check_header_includes) { ":v8_internal_headers", ":v8_libbase", ":v8_maybe_icu", + ":v8_maybe_temporal", ":v8_version", ":wee8", "src/inspector:inspector", @@ -7312,6 +7421,7 @@ if (current_toolchain == v8_generator_toolchain) { if (current_toolchain == v8_snapshot_toolchain) { v8_executable("mksnapshot") { sources = [ + "src/snapshot/builtins-effects-dummy.cc", "src/snapshot/embedded/embedded-empty.cc", "src/snapshot/embedded/embedded-file-writer.cc", "src/snapshot/embedded/embedded-file-writer.h", @@ -7345,6 +7455,7 @@ if (current_toolchain == v8_snapshot_toolchain) { ":v8_libbase", ":v8_libplatform", ":v8_maybe_icu", + ":v8_maybe_temporal", ":v8_shared_internal_headers", ":v8_tracing", "//build/win:default_exe_manifest", @@ -7584,6 +7695,7 @@ group("v8_fuzzers") { data_deps += [ ":v8_simple_wasm_compile_all_fuzzer", ":v8_simple_wasm_compile_fuzzer", + ":v8_simple_wasm_compile_revec_fuzzer", ":v8_simple_wasm_compile_simd_fuzzer", ":v8_simple_wasm_compile_wasmgc_fuzzer", ":v8_simple_wasm_deopt_fuzzer", @@ -8013,6 +8125,7 @@ if (v8_enable_webassembly) { ":run_torque", ":v8_internal_headers", ":v8_libbase", + ":v8_maybe_temporal", ":v8_shared_internal_headers", ":v8_tracing", ] @@ -8040,6 +8153,7 @@ if (v8_enable_webassembly) { ":generate_bytecode_builtins_list", ":run_torque", ":v8_internal_headers", + ":v8_maybe_temporal", ":v8_tracing", ":wasm_test_common", ] @@ -8106,6 +8220,13 @@ if (v8_enable_webassembly) { ] } + v8_wasm_fuzzer("wasm_compile_revec_fuzzer") { + sources = [ + "test/common/wasm/test-signatures.h", + "test/fuzzer/wasm/compile-revec.cc", + ] + } + v8_wasm_fuzzer("wasm_compile_wasmgc_fuzzer") { sources = [ "test/common/wasm/test-signatures.h", diff --git a/deps/v8/DEPS b/deps/v8/DEPS index 9d240951e47b47..6249e03057d2db 100644 --- a/deps/v8/DEPS +++ b/deps/v8/DEPS @@ -49,6 +49,7 @@ vars = { 'download_gcmole': False, 'download_jsfunfuzz': False, 'download_prebuilt_bazel': False, + 'download_prebuilt_arm64_llvm_symbolizer': False, 'check_v8_header_includes': False, # By default, download the fuchsia sdk from the public sdk directory. @@ -58,7 +59,7 @@ vars = { 'checkout_fuchsia_no_hooks': False, # reclient CIPD package version - 'reclient_version': 're_client_version:0.177.1.e58c0145-gomaip', + 'reclient_version': 're_client_version:0.178.0.5ee9d3e8-gomaip', # Fetch configuration files required for the 'use_remoteexec' gn arg 'download_remoteexec_cfg': False, @@ -74,24 +75,24 @@ vars = { 'build_with_chromium': False, # GN CIPD package version. - 'gn_version': 'git_revision:90478db6b59b9bebf7ca4cf912d860cf868e724c', + 'gn_version': 'git_revision:ebc8f16ca7b0d36a3e532ee90896f9eb48e5423b', # ninja CIPD package version # https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja 'ninja_version': 'version:3@1.12.1.chromium.4', # siso CIPD package version - 'siso_version': 'git_revision:70e1167e0e6dad10c8388cace8fd9d9376c43316', + 'siso_version': 'git_revision:d9393c2115244b6e4a797189055e4a2b6769a64d', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Fuchsia sdk # and whatever else without interference from each other. - 'fuchsia_version': 'version:27.20250424.2.1', + 'fuchsia_version': 'version:28.20250522.3.1', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling partition_alloc_version # and whatever else without interference from each other. - 'partition_alloc_version': '862506deb382f3f8a8fa9689c8d5136a48e9b778', + 'partition_alloc_version': 'c858ce950cf900f168772e5e7c8f7cfa3e66ce96', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling android_sdk_build-tools_version @@ -129,9 +130,9 @@ vars = { deps = { 'build': - Var('chromium_url') + '/chromium/src/build.git' + '@' + '88030b320338e0706b6b93336c4b35e6bbaf467e', + Var('chromium_url') + '/chromium/src/build.git' + '@' + '74c1cea4320f6744444fff7ceeff2e6b0370eb2d', 'buildtools': - Var('chromium_url') + '/chromium/src/buildtools.git' + '@' + '0f32cb9025766951122d4ed19aba87a94ded3f43', + Var('chromium_url') + '/chromium/src/buildtools.git' + '@' + '813bee86eeb7d00fa170b81e221120576a18517a', 'buildtools/linux64': { 'packages': [ { @@ -177,7 +178,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' + '@' + 'c5257e6119f83f856602f2ccbc46547a8fef0960', + Var('chromium_url') + '/external/github.com/tc39/test262.git' + '@' + '3316c0aaf676d657f5a6b33364fa7e579c78ac7f', 'third_party/android_platform': { 'url': Var('chromium_url') + '/chromium/src/third_party/android_platform.git' + '@' + '98aee46efb1cc4e09fa0e3ecaa6b19dc258645fa', 'condition': 'checkout_android', @@ -231,7 +232,7 @@ deps = { 'dep_type': 'cipd', }, 'third_party/catapult': { - 'url': Var('chromium_url') + '/catapult.git' + '@' + '000f47cfa393d7f9557025a252862e2a61a60d44', + 'url': Var('chromium_url') + '/catapult.git' + '@' + '938fc9953b4159851a52022b4f2a90cddedba2fc', 'condition': 'checkout_android', }, 'third_party/clang-format/script': @@ -245,17 +246,19 @@ deps = { 'condition': 'checkout_android', }, 'third_party/depot_tools': - Var('chromium_url') + '/chromium/tools/depot_tools.git' + '@' + '1fcc527019d786502b02f71b8b764ee674a40953', + Var('chromium_url') + '/chromium/tools/depot_tools.git' + '@' + 'e0ece52cfb4faaf6d4468a94068265452ef6de13', + 'third_party/dragonbox/src': + Var('chromium_url') + '/external/github.com/jk-jeon/dragonbox.git' + '@' + '6c7c925b571d54486b9ffae8d9d18a822801cbda', 'third_party/fp16/src': Var('chromium_url') + '/external/github.com/Maratyszcza/FP16.git' + '@' + '0a92994d729ff76a58f692d3028ca1b64b145d91', 'third_party/fast_float/src': Var('chromium_url') + '/external/github.com/fastfloat/fast_float.git' + '@' + 'cb1d42aaa1e14b09e1452cfdef373d051b8c02a4', 'third_party/fuchsia-gn-sdk': { - 'url': Var('chromium_url') + '/chromium/src/third_party/fuchsia-gn-sdk.git' + '@' + 'e678aca1bad7a1c9a38620b2e328281bc68f6357', + 'url': Var('chromium_url') + '/chromium/src/third_party/fuchsia-gn-sdk.git' + '@' + '60c9c3eb8b143553218641fe5c8bca92a89e67e7', 'condition': 'checkout_fuchsia', }, 'third_party/simdutf': - Var('chromium_url') + '/chromium/src/third_party/simdutf' + '@' + '62d1cfb62967c0076c997a10d54d50f9571fb8e9', + Var('chromium_url') + '/chromium/src/third_party/simdutf' + '@' + '9d3e4d7c1afb30ed528443d73afab23f22443434', # Exists for rolling the Fuchsia SDK. Check out of the SDK should always # rely on the hook running |update_sdk.py| script below. 'third_party/fuchsia-sdk/sdk': { @@ -269,21 +272,21 @@ deps = { 'dep_type': 'cipd', }, 'third_party/google_benchmark_chrome': { - 'url': Var('chromium_url') + '/chromium/src/third_party/google_benchmark.git' + '@' + '29e4389fdc1eeb9137eb464b7f34e07c01c2731e', + 'url': Var('chromium_url') + '/chromium/src/third_party/google_benchmark.git' + '@' + 'd6e7f141ed7c93a66890f3750ab634b8b52057a5', }, 'third_party/google_benchmark_chrome/src': { 'url': Var('chromium_url') + '/external/github.com/google/benchmark.git' + '@' + '761305ec3b33abf30e08d50eb829e19a802581cc', }, 'third_party/fuzztest': - Var('chromium_url') + '/chromium/src/third_party/fuzztest.git' + '@' + '4a7e9c055e63f4d67e04229ab491eaefe409addf', + Var('chromium_url') + '/chromium/src/third_party/fuzztest.git' + '@' + '113b15091c49d9d3d49ef42b6c5e9edc865a67a6', 'third_party/fuzztest/src': - Var('chromium_url') + '/external/github.com/google/fuzztest.git' + '@' + 'b10387fdbbca18192f85eaa5323a59f44bf9c468', + Var('chromium_url') + '/external/github.com/google/fuzztest.git' + '@' + 'f03aafb7516050ea73f617bf969f03eac641aefc', 'third_party/googletest/src': - Var('chromium_url') + '/external/github.com/google/googletest.git' + '@' + 'cd430b47a54841ec45d64d2377d7cabaf0eba610', + Var('chromium_url') + '/external/github.com/google/googletest.git' + '@' + '09ffd0015395354774c059a17d9f5bee36177ff9', 'third_party/highway/src': Var('chromium_url') + '/external/github.com/google/highway.git' + '@' + '00fe003dac355b979f36157f9407c7c46448958e', 'third_party/icu': - Var('chromium_url') + '/chromium/deps/icu.git' + '@' + '4c8cc4b365a505ce35be1e0bd488476c5f79805d', + Var('chromium_url') + '/chromium/deps/icu.git' + '@' + 'b929596baebf0ab4ac7ec07f38365db4c50a559d', 'third_party/instrumented_libs': { 'url': Var('chromium_url') + '/chromium/third_party/instrumented_libraries.git' + '@' + '69015643b3f68dbd438c010439c59adc52cac808', 'condition': 'checkout_instrumented_libraries', @@ -299,155 +302,155 @@ deps = { 'third_party/jsoncpp/source': Var('chromium_url') + '/external/github.com/open-source-parsers/jsoncpp.git'+ '@' + '42e892d96e47b1f6e29844cc705e148ec4856448', 'third_party/libc++/src': - Var('chromium_url') + '/external/github.com/llvm/llvm-project/libcxx.git' + '@' + '917609c669e43edc850eeb192a342434a54e1dfd', + Var('chromium_url') + '/external/github.com/llvm/llvm-project/libcxx.git' + '@' + 'a01c02c9d4acbdae3b7e8a2f3ee58579a9c29f96', 'third_party/libc++abi/src': - Var('chromium_url') + '/external/github.com/llvm/llvm-project/libcxxabi.git' + '@' + 'f2a7f2987f9dcdf8b04c2d8cd4dcb186641a7c3e', + Var('chromium_url') + '/external/github.com/llvm/llvm-project/libcxxabi.git' + '@' + '9810fb23f6ba666f017c2b67c67de2bcac2b44bd', 'third_party/libunwind/src': - Var('chromium_url') + '/external/github.com/llvm/llvm-project/libunwind.git' + '@' + '81e2cb40a70de2b6978e6d8658891ded9a77f7e3', + Var('chromium_url') + '/external/github.com/llvm/llvm-project/libunwind.git' + '@' + '8575f4ae4fcf8892938bd9766cf1a5c90a0ed04e', 'third_party/llvm-libc/src': - Var('chromium_url') + '/external/github.com/llvm/llvm-project/libc.git' + '@' + '912274164f0877ca917c06e8484ad3be1784833a', + Var('chromium_url') + '/external/github.com/llvm/llvm-project/libc.git' + '@' + '9c3ae3120fe83b998d0498dcc9ad3a56c29fad0c', 'third_party/llvm-build/Release+Asserts': { 'dep_type': 'gcs', 'bucket': 'chromium-browser-clang', 'objects': [ { - 'object_name': 'Linux_x64/clang-llvmorg-21-init-9266-g09006611-1.tar.xz', - 'sha256sum': '2cccd3a5b04461f17a2e78d2f8bd18b448443a9dd4d6dfac50e8e84b4d5176f1', - 'size_bytes': 54914604, - 'generation': 1745271343199398, + 'object_name': 'Linux_x64/clang-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz', + 'sha256sum': '5f69279b3697166facfc354634157e0a8a32fa6e36864200ad8a8f85add3f3f6', + 'size_bytes': 55654416, + 'generation': 1747138963230938, 'condition': 'host_os == "linux"', }, { - 'object_name': 'Linux_x64/clang-tidy-llvmorg-21-init-9266-g09006611-1.tar.xz', - 'sha256sum': 'f0e7dae567266055c9cfa2fba5b3dafa311dc86955f5a3f7a4047ce3096e7b27', - 'size_bytes': 13559360, - 'generation': 1745271343282399, + 'object_name': 'Linux_x64/clang-tidy-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz', + 'sha256sum': '9c9cd089b46f36232d7553d03a0b30cf509f5e42b2113fe8172ba14f905b91df', + 'size_bytes': 13597708, + 'generation': 1747138963497696, 'condition': 'host_os == "linux" and checkout_clang_tidy', }, { - 'object_name': 'Linux_x64/clangd-llvmorg-21-init-9266-g09006611-1.tar.xz', - 'sha256sum': 'd87ec8e9cd959cf5d12e0de2970f4a88a67f9884467dac5285813d02bbe50bcb', - 'size_bytes': 13767836, - 'generation': 1745271343386108, + 'object_name': 'Linux_x64/clangd-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz', + 'sha256sum': 'cf580450a46e262d899c2d48fff2b6ea8f6691a6bcfc0c280f87d8b6da088e5f', + 'size_bytes': 13854788, + 'generation': 1747138963598582, 'condition': 'host_os == "linux" and checkout_clangd', }, { - 'object_name': 'Linux_x64/llvm-code-coverage-llvmorg-21-init-9266-g09006611-1.tar.xz', - 'sha256sum': '08f9cdbdc1e3f78dfb11aa9815727e8af0cf8f2b9c9a0e3749ceb4d3584fc900', - 'size_bytes': 2293720, - 'generation': 1745271343569971, + 'object_name': 'Linux_x64/llvm-code-coverage-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz', + 'sha256sum': '1a3488e55d62bda48d09b69fb4e5267ac64247258dc51fd9dabdb7fe5d66da4c', + 'size_bytes': 2297996, + 'generation': 1747138964068040, 'condition': 'host_os == "linux" and checkout_clang_coverage_tools', }, { - 'object_name': 'Linux_x64/llvmobjdump-llvmorg-21-init-9266-g09006611-1.tar.xz', - 'sha256sum': '4b9c20478c015a03a44842d0bc24a9bd01a87890c76c4496577843ea31a21ed1', - 'size_bytes': 5702536, - 'generation': 1745271343407073, + 'object_name': 'Linux_x64/llvmobjdump-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz', + 'sha256sum': 'efb127c69ac198284ff3622cd173e9dc4839d0bed33dbcaa96501db169607a2e', + 'size_bytes': 5701128, + 'generation': 1747138963789285, 'condition': '(checkout_linux or checkout_mac or checkout_android and host_os != "mac")', }, { - 'object_name': 'Mac/clang-llvmorg-21-init-9266-g09006611-1.tar.xz', - 'sha256sum': '159cc811ee2882098086a426e83cb6744ff59d422d005a54630bc519e782d154', - 'size_bytes': 51986012, - 'generation': 1745271345031799, + 'object_name': 'Mac/clang-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz', + 'sha256sum': '3d83bd33ae0a0331ba8e23340023ae05174128503d94116cd8a855913fca88c7', + 'size_bytes': 52212572, + 'generation': 1747138966013176, 'condition': 'host_os == "mac" and host_cpu == "x64"', }, { - 'object_name': 'Mac/clang-mac-runtime-library-llvmorg-21-init-9266-g09006611-1.tar.xz', - 'sha256sum': 'ef380bc751dc8b137e294ac1aca295f3e49eb57b938ab011c38c70271d8582fc', - 'size_bytes': 988872, - 'generation': 1745271352425938, + 'object_name': 'Mac/clang-mac-runtime-library-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz', + 'sha256sum': '809b6f72718d9bcbf25ad6ab80517f215ed2526435a095ee9bceb5ed40f989a2', + 'size_bytes': 993800, + 'generation': 1747138984414942, 'condition': 'checkout_mac and not host_os == "mac"', }, { - 'object_name': 'Mac/clang-tidy-llvmorg-21-init-9266-g09006611-1.tar.xz', - 'sha256sum': '75907ac8d2ab310fd7272715c5d98cd4382dbd0b867872aa9216cede48c274d5', - 'size_bytes': 13609872, - 'generation': 1745271345094426, + 'object_name': 'Mac/clang-tidy-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz', + 'sha256sum': 'c1fd7930eadede03470cbc8d38697669c6254069da2f6bd58328a8654d68f70d', + 'size_bytes': 13699584, + 'generation': 1747138966324770, 'condition': 'host_os == "mac" and host_cpu == "x64" and checkout_clang_tidy', }, { - 'object_name': 'Mac/clangd-llvmorg-21-init-9266-g09006611-1.tar.xz', - 'sha256sum': 'e2bcab0b3961fdc7a63286cf7a98397026ff1b5143d34c8a50844b26a7b023c6', - 'size_bytes': 14998604, - 'generation': 1745271345196743, + 'object_name': 'Mac/clangd-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz', + 'sha256sum': '3aa82177f6e03da693d93aa9f8052fa669af1bd897359a20eaf01379db0924b8', + 'size_bytes': 15136432, + 'generation': 1747138966446697, 'condition': 'host_os == "mac" and host_cpu == "x64" and checkout_clangd', }, { - 'object_name': 'Mac/llvm-code-coverage-llvmorg-21-init-9266-g09006611-1.tar.xz', - 'sha256sum': '6e4c8ed691948981d799f4af747288cdd5e90ae873dc36ada66726ad3e6caef1', - 'size_bytes': 2262400, - 'generation': 1745271345385127, + 'object_name': 'Mac/llvm-code-coverage-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz', + 'sha256sum': '1f8d0d65f9d027707890c28433b0bfe29e32551008e9f3c1b9803318ede2bfc6', + 'size_bytes': 2272500, + 'generation': 1747138966854415, 'condition': 'host_os == "mac" and host_cpu == "x64" and checkout_clang_coverage_tools', }, { - 'object_name': 'Mac_arm64/clang-llvmorg-21-init-9266-g09006611-1.tar.xz', - 'sha256sum': '3d437a643cc5838963254a39ab0528f49f2b65cd4dba2c80e628ad88eb419536', - 'size_bytes': 43999512, - 'generation': 1745271353863965, + 'object_name': 'Mac_arm64/clang-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz', + 'sha256sum': '2d5660c50637a7ee6e5501525e7588bb255cdfd48e792b12b86ae7113c31b8ae', + 'size_bytes': 44214476, + 'generation': 1747138986010150, 'condition': 'host_os == "mac" and host_cpu == "arm64"', }, { - 'object_name': 'Mac_arm64/clang-tidy-llvmorg-21-init-9266-g09006611-1.tar.xz', - 'sha256sum': '0b4150c9e699e1e904495807aff48d2e5396527bf775d6597818dd4f73a9c38f', - 'size_bytes': 11776260, - 'generation': 1745271353927359, + 'object_name': 'Mac_arm64/clang-tidy-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz', + 'sha256sum': 'c17b6d7d112ff54699477d5fc7f5009e7b650d263d127cad4f8406f8df914996', + 'size_bytes': 11838956, + 'generation': 1747138986259606, 'condition': 'host_os == "mac" and host_cpu == "arm64" and checkout_clang_tidy', }, { - 'object_name': 'Mac_arm64/clangd-llvmorg-21-init-9266-g09006611-1.tar.xz', - 'sha256sum': '9fcd151cfffa01e6befe3760b9bc91d645135c79449dc378af4cb2fe0187150c', - 'size_bytes': 12041956, - 'generation': 1745271354010497, + 'object_name': 'Mac_arm64/clangd-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz', + 'sha256sum': 'd6c134df8273fe9c4c2b5ff5786f2ceeb9ed5f251e223e55edbc0cd7aa772e83', + 'size_bytes': 12115024, + 'generation': 1747138986359326, 'condition': 'host_os == "mac" and host_cpu == "arm64" and checkout_clangd', }, { - 'object_name': 'Mac_arm64/llvm-code-coverage-llvmorg-21-init-9266-g09006611-1.tar.xz', - 'sha256sum': '1e62752ef5fd9d425699ed44098d5a0eec3be3f827990470aa9f9199d34a2fb8', - 'size_bytes': 1975116, - 'generation': 1745271354276821, + 'object_name': 'Mac_arm64/llvm-code-coverage-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz', + 'sha256sum': '82ca9187d1fd5ed14266612339b921d560b1008f92e1719255b755ff882d23e3', + 'size_bytes': 1982036, + 'generation': 1747138986831545, 'condition': 'host_os == "mac" and host_cpu == "arm64" and checkout_clang_coverage_tools', }, { - 'object_name': 'Win/clang-llvmorg-21-init-9266-g09006611-1.tar.xz', - 'sha256sum': 'd53230dbb7db57ddcda5a8377b5dd8388deee9ff2766617d54c6159c51e806be', - 'size_bytes': 47036964, - 'generation': 1745271363166454, + 'object_name': 'Win/clang-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz', + 'sha256sum': '39e17b8282b9f1e3cbc6b22d3144696728c867f3ae66694b0125c3ed60755401', + 'size_bytes': 47250032, + 'generation': 1747139012194774, 'condition': 'host_os == "win"', }, { - 'object_name': 'Win/clang-tidy-llvmorg-21-init-9266-g09006611-1.tar.xz', - 'sha256sum': 'c6022f5923be5afc1685723a2383fcd8f9334cc6ee097ce3c71963de6ded0764', - 'size_bytes': 13415856, - 'generation': 1745271363272778, + 'object_name': 'Win/clang-tidy-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz', + 'sha256sum': '9dec82a917bd55947e39891137ba5c13663ca94d2c102d56eb52b9b176365910', + 'size_bytes': 13492960, + 'generation': 1747139012510054, 'condition': 'host_os == "win" and checkout_clang_tidy', }, { - 'object_name': 'Win/clang-win-runtime-library-llvmorg-21-init-9266-g09006611-1.tar.xz', - 'sha256sum': '555a34dd110a5fe3f7578745e9f0074cc341e550bed4ec5888accffb0200a7bb', - 'size_bytes': 2483656, - 'generation': 1745271370423782, + 'object_name': 'Win/clang-win-runtime-library-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz', + 'sha256sum': '220abd9ce9a85446a2e7879aab3c1f2f5393665f6b13b067f8cec565ae7d36eb', + 'size_bytes': 2486856, + 'generation': 1747139033547001, 'condition': 'checkout_win and not host_os == "win"', }, { - 'object_name': 'Win/clangd-llvmorg-21-init-9266-g09006611-1.tar.xz', - 'sha256sum': '66aafde760608c4c0de94a3947a179db8c8f93c8e474e3081b4401287abe4ee4', - 'size_bytes': 13838692, - 'generation': 1745271363368641, + 'object_name': 'Win/clangd-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz', + 'sha256sum': '81fa230b6311e3e50147cae3acd6d2c83c1bef13ff46df3df3d580ca911e9d15', + 'size_bytes': 13918432, + 'generation': 1747139013351355, 'condition': 'host_os == "win" and checkout_clangd', }, { - 'object_name': 'Win/llvm-code-coverage-llvmorg-21-init-9266-g09006611-1.tar.xz', - 'sha256sum': '6944dc39b33dca3bb8f219ffb221e3f345fe56a5fa0447c60ea6a2894ae72687', - 'size_bytes': 2373032, - 'generation': 1745271363562596, + 'object_name': 'Win/llvm-code-coverage-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz', + 'sha256sum': '611b9689c3d3e80ab7485e698f6b67e0df328b5407f30f177c29fe394b81a13e', + 'size_bytes': 2378584, + 'generation': 1747139013764369, 'condition': 'host_os == "win" and checkout_clang_coverage_tools', }, { - 'object_name': 'Win/llvmobjdump-llvmorg-21-init-9266-g09006611-1.tar.xz', - 'sha256sum': 'e8b3e9f7cd7512edc7c05a12e818386cdb8d43bea9affbf0bf4db83a553092a5', - 'size_bytes': 5684140, - 'generation': 1745271363450942, + 'object_name': 'Win/llvmobjdump-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz', + 'sha256sum': '67a05210ee38b2f575df3cc1feb04ed36b4186748c2d769e2201572b413305fe', + 'size_bytes': 5698204, + 'generation': 1747139013159526, 'condition': 'checkout_linux or checkout_mac or checkout_android and host_os == "win"', }, ], @@ -473,7 +476,7 @@ deps = { 'third_party/perfetto': Var('android_url') + '/platform/external/perfetto.git' + '@' + '40b529923598b739b2892a536a7692eedbed5685', 'third_party/protobuf': - Var('chromium_url') + '/chromium/src/third_party/protobuf.git' + '@' + '56b98941c7a305f54fc6c1c0a082fcb232f92954', + Var('chromium_url') + '/chromium/src/third_party/protobuf.git' + '@' + '4a2ed4d61702b9e8894aa1c5b9bf52fd19907f6a', 'third_party/re2/src': Var('chromium_url') + '/external/github.com/google/re2.git' + '@' + 'c84a140c93352cdabbfb547c531be34515b12228', 'third_party/requests': { @@ -481,39 +484,39 @@ deps = { 'condition': 'checkout_android', }, 'tools/rust': - Var('chromium_url') + '/chromium/src/tools/rust' + '@' + 'fa679ed68ee49fb99a7e924f57e4d2b6444103d6', + Var('chromium_url') + '/chromium/src/tools/rust' + '@' + '11d67ba3289de6ca73bc441794138a9d8cd9db6b', 'third_party/rust': - Var('chromium_url') + '/chromium/src/third_party/rust' + '@' + '926ec544992cad0ac638f3594fe6195ed493ebff', + Var('chromium_url') + '/chromium/src/third_party/rust' + '@' + 'f18bafac74bffec1f4e818592b2c7f916864ec91', 'third_party/rust-toolchain': { 'dep_type': 'gcs', 'bucket': 'chromium-browser-clang', 'objects': [ { - 'object_name': 'Linux_x64/rust-toolchain-c8f94230282a8e8c1148f3e657f0199aad909228-1-llvmorg-21-init-9266-g09006611.tar.xz', - 'sha256sum': '378c432f7739bb5da11aad7b3a2687f8252565eae5f0dcfc55c39a15382c519c', - 'size_bytes': 118598336, - 'generation': 1745271335898717, + 'object_name': 'Linux_x64/rust-toolchain-4a0969e06dbeaaa43914d2d00b2e843d49aa3886-1-llvmorg-21-init-11777-gfd3fecfc.tar.xz', + 'sha256sum': 'df1573701599cb7d00c1050b71636a436320b8ad47bb09cb46d6e96b3f8ac585', + 'size_bytes': 118529212, + 'generation': 1747160498430964, 'condition': 'host_os == "linux"', }, { - 'object_name': 'Mac/rust-toolchain-c8f94230282a8e8c1148f3e657f0199aad909228-1-llvmorg-21-init-9266-g09006611.tar.xz', - 'sha256sum': 'bf05c8b5e90d6904de02dca9b3e4cb5e45a1a56207e7af1fbb3a10707704a26a', - 'size_bytes': 111932536, - 'generation': 1745271337336068, + 'object_name': 'Mac/rust-toolchain-4a0969e06dbeaaa43914d2d00b2e843d49aa3886-1-llvmorg-21-init-11777-gfd3fecfc.tar.xz', + 'sha256sum': '83836493c8a81b212c20e16666c6b918bff28748f4d6685c5107eb7e9d16f6fe', + 'size_bytes': 111691772, + 'generation': 1747160500088595, 'condition': 'host_os == "mac" and host_cpu == "x64"', }, { - 'object_name': 'Mac_arm64/rust-toolchain-c8f94230282a8e8c1148f3e657f0199aad909228-1-llvmorg-21-init-9266-g09006611.tar.xz', - 'sha256sum': '1aec99f479ff28cefe44ed739844833e016a1da255cf3c17d79e59a273246615', - 'size_bytes': 101605468, - 'generation': 1745271339727037, + 'object_name': 'Mac_arm64/rust-toolchain-4a0969e06dbeaaa43914d2d00b2e843d49aa3886-1-llvmorg-21-init-11777-gfd3fecfc.tar.xz', + 'sha256sum': 'd975e322a2e5c680b54f27a6545c63c0de2c5367ca6ffefda04de491d6b76553', + 'size_bytes': 102206348, + 'generation': 1747160501743827, 'condition': 'host_os == "mac" and host_cpu == "arm64"', }, { - 'object_name': 'Win/rust-toolchain-c8f94230282a8e8c1148f3e657f0199aad909228-1-llvmorg-21-init-9266-g09006611.tar.xz', - 'sha256sum': 'b291520613a3ebc415e4576a7fa31d840a5ebf4ab9be6e9dc5d90062dc001c1e', - 'size_bytes': 193280372, - 'generation': 1745271341223097, + 'object_name': 'Win/rust-toolchain-4a0969e06dbeaaa43914d2d00b2e843d49aa3886-1-llvmorg-21-init-11777-gfd3fecfc.tar.xz', + 'sha256sum': '25c51b4c2e0e8b4e974973f0357b12ecb645a0a7a136f9e0a6604e87c21acc7a', + 'size_bytes': 193582440, + 'generation': 1747160503376785, 'condition': 'host_os == "win"', }, ], @@ -529,13 +532,13 @@ deps = { 'condition': 'not build_with_chromium and host_cpu != "s390" and host_os != "zos" and host_cpu != "ppc"', }, 'third_party/zlib': - Var('chromium_url') + '/chromium/src/third_party/zlib.git'+ '@' + '1e85c01b15363d11fab81c46fe2b5c2179113f70', + Var('chromium_url') + '/chromium/src/third_party/zlib.git'+ '@' + 'a1f2fe223f55b6ec6dd3c20796727604ed5ec74a', 'tools/clang': - Var('chromium_url') + '/chromium/src/tools/clang.git' + '@' + '6c4f037a983abf14a4c8bf00e44db73cdf330a97', + Var('chromium_url') + '/chromium/src/tools/clang.git' + '@' + '574d9487446043d2dd26d6f30fcb6757288e5d2e', 'tools/protoc_wrapper': - Var('chromium_url') + '/chromium/src/tools/protoc_wrapper.git' + '@' + '8ad6d21544b14c7f753852328d71861b363cc512', + Var('chromium_url') + '/chromium/src/tools/protoc_wrapper.git' + '@' + '502dcad5230ec1da544e7720b15d91782f040d9f', 'third_party/abseil-cpp': { - 'url': Var('chromium_url') + '/chromium/src/third_party/abseil-cpp.git' + '@' + '91f1a3775e4c509c3eadd4870fc9929c0021e6e3', + 'url': Var('chromium_url') + '/chromium/src/third_party/abseil-cpp.git' + '@' + '2401283880a451e9ea10787920117fb67695abb4', 'condition': 'not build_with_chromium', }, 'third_party/zoslib': { @@ -548,6 +551,7 @@ include_rules = [ # Everybody can use some things. '+include', '+unicode', + '+third_party/dragonbox/src/include', '+third_party/fast_float/src/include', '+third_party/fdlibm', '+third_party/fp16/src/include', @@ -624,7 +628,6 @@ hooks = [ 'action': [ 'python3', 'third_party/depot_tools/download_from_google_storage.py', '--no_resume', - '--no_auth', '--bucket', 'chromium-browser-clang', '-s', 'tools/clang/dsymutil/bin/dsymutil.arm64.sha1', '-o', 'tools/clang/dsymutil/bin/dsymutil', @@ -637,7 +640,6 @@ hooks = [ 'action': [ 'python3', 'third_party/depot_tools/download_from_google_storage.py', '--no_resume', - '--no_auth', '--bucket', 'chromium-browser-clang', '-s', 'tools/clang/dsymutil/bin/dsymutil.x64.sha1', '-o', 'tools/clang/dsymutil/bin/dsymutil', @@ -667,13 +669,24 @@ hooks = [ '--platform=linux*', ], }, + { + 'name': 'llvm_symbolizer', + 'pattern': '.', + 'condition': 'download_prebuilt_arm64_llvm_symbolizer', + 'action': [ 'python3', + 'third_party/depot_tools/download_from_google_storage.py', + '--bucket', 'chromium-v8/llvm/arm64', + '--no_resume', + '-s', 'tools/sanitizers/linux/arm64/llvm-symbolizer.sha1', + '--platform=linux*', + ], + }, { 'name': 'wasm_spec_tests', 'pattern': '.', 'action': [ 'python3', 'third_party/depot_tools/download_from_google_storage.py', '--no_resume', - '--no_auth', '-u', '--bucket', 'v8-wasm-spec-tests', '-s', 'test/wasm-spec-tests/tests.tar.gz.sha1', @@ -685,7 +698,6 @@ hooks = [ 'action': [ 'python3', 'third_party/depot_tools/download_from_google_storage.py', '--no_resume', - '--no_auth', '-u', '--bucket', 'v8-wasm-spec-tests', '-s', 'test/wasm-js/tests.tar.gz.sha1', @@ -699,7 +711,6 @@ hooks = [ 'action': [ 'python3', 'third_party/depot_tools/download_from_google_storage.py', '--no_resume', - '--no_auth', '--bucket', 'chromium-browser-clang/ciopfs', '-s', 'build/ciopfs.sha1', ] diff --git a/deps/v8/bazel/defs.bzl b/deps/v8/bazel/defs.bzl index fbd942ba765fe0..0539ea176ac1f9 100644 --- a/deps/v8/bazel/defs.bzl +++ b/deps/v8/bazel/defs.bzl @@ -549,7 +549,6 @@ def build_config_content(cpu, icu): ("code_comments", "false"), ("component_build", "false"), ("concurrent_marking", "false"), - ("conservative_stack_scanning", "false"), ("current_cpu", cpu), ("dcheck_always_on", "false"), ("debug_code", "false"), diff --git a/deps/v8/gni/v8.gni b/deps/v8/gni/v8.gni index e137c84b00b5d5..bcebe933840213 100644 --- a/deps/v8/gni/v8.gni +++ b/deps/v8/gni/v8.gni @@ -52,6 +52,20 @@ declare_args() { # add a dependency on the ICU library. v8_enable_i18n_support = true + # Enable Temporal API. Enabling this feature will + # add a dependency on the temporal_rs library. + # + # We currently only want it enabled on d8 and chromium builds (Functionality + # is still not accessible unless --harmony-temporal is enabled at runtime) + # + # The Windows and Fuchsia builds for temporal_rs also currently fail, + # but won't once we vendor in https://github.com/boa-dev/temporal/pull/279 + # NOTE: we check target OS, not is_win/is_fuchsia, since those will be different + # when doing host codegen. + v8_enable_temporal_support = + !(defined(build_with_node) && build_with_node) && target_os != "win" && + target_os != "fuchsia" && target_cpu != "ppc64" && target_cpu != "s390x" + # Use static libraries instead of source_sets. v8_static_library = false diff --git a/deps/v8/include/cppgc/allocation.h b/deps/v8/include/cppgc/allocation.h index 3e70eff0ddf62c..a7955fd1016e8e 100644 --- a/deps/v8/include/cppgc/allocation.h +++ b/deps/v8/include/cppgc/allocation.h @@ -71,7 +71,7 @@ class MakeGarbageCollectedTraitInternal { template struct AllocationDispatcher final { static void* Invoke(AllocationHandle& handle, size_t size) { - static_assert(std::is_base_of::value, + static_assert(std::is_base_of_v, "Custom space must inherit from CustomSpaceBase."); static_assert( !CustomSpace::kSupportsCompaction, @@ -111,7 +111,7 @@ class MakeGarbageCollectedTraitInternal { api_constants::kDefaultAlignment> final { static void* Invoke(AllocationHandle& handle, size_t size) { - static_assert(std::is_base_of::value, + static_assert(std::is_base_of_v, "Custom space must inherit from CustomSpaceBase."); return MakeGarbageCollectedTraitInternal::Allocate( handle, size, internal::GCInfoTrait::Index(), @@ -164,7 +164,7 @@ class MakeGarbageCollectedTraitBase */ V8_INLINE static void* Allocate(AllocationHandle& handle, size_t size) { static_assert( - std::is_base_of::value, + std::is_base_of_v, "U of GarbageCollected must be a base of T. Check " "GarbageCollected base class inheritance."); static constexpr size_t kWantedAlignment = diff --git a/deps/v8/include/cppgc/cross-thread-persistent.h b/deps/v8/include/cppgc/cross-thread-persistent.h index a5f8bac0b1013e..df172b3a4921d3 100644 --- a/deps/v8/include/cppgc/cross-thread-persistent.h +++ b/deps/v8/include/cppgc/cross-thread-persistent.h @@ -149,7 +149,7 @@ class BasicCrossThreadPersistent final : public CrossThreadPersistentBase, template ::value>> + typename = std::enable_if_t>> BasicCrossThreadPersistent( internal::BasicMember @@ -168,7 +168,7 @@ class BasicCrossThreadPersistent final : public CrossThreadPersistentBase, // Heterogeneous ctor. template ::value>> + typename = std::enable_if_t>> BasicCrossThreadPersistent( const BasicCrossThreadPersistent::value>> + typename = std::enable_if_t>> BasicCrossThreadPersistent& operator=( const BasicCrossThreadPersistent::value>> + typename = std::enable_if_t>> BasicCrossThreadPersistent& operator=( internal::BasicMember @@ -338,8 +338,8 @@ class BasicCrossThreadPersistent final : public CrossThreadPersistentBase, } template ::IsStrongPersistent::value>::type> + typename = std::enable_if_t::IsStrongPersistent::value>> BasicCrossThreadPersistent Lock() const { return BasicCrossThreadPersistent< diff --git a/deps/v8/include/cppgc/internal/finalizer-trait.h b/deps/v8/include/cppgc/internal/finalizer-trait.h index ab49af870e0ba3..b62da059fa14d0 100644 --- a/deps/v8/include/cppgc/internal/finalizer-trait.h +++ b/deps/v8/include/cppgc/internal/finalizer-trait.h @@ -70,7 +70,7 @@ struct FinalizerTrait { // - a destructor. static constexpr bool kNonTrivialFinalizer = internal::HasFinalizeGarbageCollectedObject::value || - !std::is_trivially_destructible::type>::value; + !std::is_trivially_destructible_v>; static void Finalize(void* obj) { internal::FinalizerTraitImpl::Finalize(obj); diff --git a/deps/v8/include/cppgc/internal/gc-info.h b/deps/v8/include/cppgc/internal/gc-info.h index d52710b369dc28..b2fbd1fee1cbcf 100644 --- a/deps/v8/include/cppgc/internal/gc-info.h +++ b/deps/v8/include/cppgc/internal/gc-info.h @@ -108,10 +108,10 @@ struct GCInfoTrait final { template struct GCInfoFolding final { static constexpr bool kHasVirtualDestructorAtBase = - std::has_virtual_destructor::value; + std::has_virtual_destructor_v; static constexpr bool kBothTypesAreTriviallyDestructible = - std::is_trivially_destructible::value && - std::is_trivially_destructible::value; + std::is_trivially_destructible_v && + std::is_trivially_destructible_v; static constexpr bool kHasCustomFinalizerDispatchAtBase = internal::HasFinalizeGarbageCollectedObject< ParentMostGarbageCollectedType>::value; diff --git a/deps/v8/include/cppgc/internal/name-trait.h b/deps/v8/include/cppgc/internal/name-trait.h index 6be298557df44b..6e63a72821be76 100644 --- a/deps/v8/include/cppgc/internal/name-trait.h +++ b/deps/v8/include/cppgc/internal/name-trait.h @@ -80,7 +80,7 @@ class NameTrait final : public NameTraitBase { #elif CPPGC_SUPPORTS_OBJECT_NAMES return true; #else // !CPPGC_SUPPORTS_OBJECT_NAMES - return std::is_base_of::value; + return std::is_base_of_v; #endif // !CPPGC_SUPPORTS_OBJECT_NAMES } diff --git a/deps/v8/include/cppgc/member.h b/deps/v8/include/cppgc/member.h index c82688d582a8d8..c028bcd06881b2 100644 --- a/deps/v8/include/cppgc/member.h +++ b/deps/v8/include/cppgc/member.h @@ -20,6 +20,8 @@ namespace cppgc { namespace subtle { class HeapConsistency; +template +class TaggedUncompressedMember; } // namespace subtle class Visitor; @@ -163,7 +165,7 @@ class V8_TRIVIAL_ABI BasicMember final : private MemberBase, template ::value>> + typename = std::enable_if_t>> V8_INLINE BasicMember(const BasicPersistent& p) @@ -219,7 +221,7 @@ class V8_TRIVIAL_ABI BasicMember final : private MemberBase, template ::value>> + typename = std::enable_if_t>> V8_INLINE BasicMember& operator=( const BasicPersistent& @@ -296,8 +298,10 @@ class V8_TRIVIAL_ABI BasicMember final : private MemberBase, return *this; } - V8_INLINE const T* GetRawAtomic() const { - return static_cast(Base::GetRawAtomic()); + V8_INLINE const void* GetRawAtomic() const { return Base::GetRawAtomic(); } + + V8_INLINE const T* GetAtomic() const { + return static_cast(GetRawAtomic()); } V8_INLINE void InitializingWriteBarrier(T* value) const { @@ -328,6 +332,8 @@ class V8_TRIVIAL_ABI BasicMember final : private MemberBase, V8_INLINE T* GetFromGC() const { return Get(); } friend class cppgc::subtle::HeapConsistency; + template + friend class cppgc::subtle::TaggedUncompressedMember; friend class cppgc::Visitor; template friend struct cppgc::TraceTrait; diff --git a/deps/v8/include/cppgc/persistent.h b/deps/v8/include/cppgc/persistent.h index 6eb1c659267d96..b330e87fe6297d 100644 --- a/deps/v8/include/cppgc/persistent.h +++ b/deps/v8/include/cppgc/persistent.h @@ -91,7 +91,7 @@ class BasicPersistent final : public PersistentBase, // Heterogeneous ctor. template ::value>> + typename = std::enable_if_t>> // NOLINTNEXTLINE BasicPersistent( const BasicPersistent::value>> + typename = std::enable_if_t>> // NOLINTNEXTLINE BasicPersistent(const internal::BasicMember< U, MemberBarrierPolicy, MemberWeaknessTag, @@ -133,7 +133,7 @@ class BasicPersistent final : public PersistentBase, template ::value>> + typename = std::enable_if_t>> BasicPersistent& operator=( const BasicPersistent& other) { @@ -158,7 +158,7 @@ class BasicPersistent final : public PersistentBase, template ::value>> + typename = std::enable_if_t>> BasicPersistent& operator=( const internal::BasicMember& diff --git a/deps/v8/include/cppgc/tagged-member.h b/deps/v8/include/cppgc/tagged-member.h index 7a2dfbb4c790c0..2126b6bac78321 100644 --- a/deps/v8/include/cppgc/tagged-member.h +++ b/deps/v8/include/cppgc/tagged-member.h @@ -28,7 +28,7 @@ namespace cppgc::subtle { // TaggedUncompressedMember // m(ParentTag{}, parent); template -struct TaggedUncompressedMember final { +class TaggedUncompressedMember final { CPPGC_DISALLOW_NEW(); static constexpr uintptr_t kTagBit = 0b1; static_assert(kTagBit < internal::api_constants::kAllocationGranularity, @@ -98,7 +98,9 @@ struct TaggedUncompressedMember final { // Construct an untagged pointer and pass it to Visitor::Trace(). The plugin // would warn that ptr_ is untraced, which is why CPPGC_PLUGIN_IGNORE is // used. - UncompressedMember temp(GetUntagged()); + auto* untagged = reinterpret_cast( + reinterpret_cast(ptr_.GetRawAtomic()) & ~kTagBit); + UncompressedMember temp(untagged); v->Trace(temp); } diff --git a/deps/v8/include/cppgc/trace-trait.h b/deps/v8/include/cppgc/trace-trait.h index 5fc863d2ebbac5..9b768a15290fab 100644 --- a/deps/v8/include/cppgc/trace-trait.h +++ b/deps/v8/include/cppgc/trace-trait.h @@ -23,8 +23,7 @@ using TraceRootCallback = void (*)(RootVisitor&, const void* object); // Implementation of the default TraceTrait handling GarbageCollected and // GarbageCollectedMixin. template ::type>> + bool = IsGarbageCollectedMixinTypeV>> struct TraceTraitImpl; } // namespace internal diff --git a/deps/v8/include/cppgc/visitor.h b/deps/v8/include/cppgc/visitor.h index e0b1d19beb35ac..125e2768e2e35b 100644 --- a/deps/v8/include/cppgc/visitor.h +++ b/deps/v8/include/cppgc/visitor.h @@ -91,7 +91,7 @@ class V8_EXPORT Visitor { */ template void Trace(const Member& member) { - const T* value = member.GetRawAtomic(); + const T* value = member.GetAtomic(); CPPGC_DCHECK(value != kSentinelPointer); TraceImpl(value); } @@ -109,7 +109,7 @@ class V8_EXPORT Visitor { static_assert(!internal::IsAllocatedOnCompactableSpace::value, "Weak references to compactable objects are not allowed"); - const T* value = weak_member.GetRawAtomic(); + const T* value = weak_member.GetAtomic(); // Bailout assumes that WeakMember emits write barrier. if (!value) { @@ -129,7 +129,7 @@ class V8_EXPORT Visitor { */ template void Trace(const subtle::UncompressedMember& member) { - const T* value = member.GetRawAtomic(); + const T* value = member.GetAtomic(); CPPGC_DCHECK(value != kSentinelPointer); TraceImpl(value); } @@ -232,12 +232,12 @@ class V8_EXPORT Visitor { template void TraceEphemeron(const WeakMember& weak_member_key, const Member* member_value) { - const KeyType* key = weak_member_key.GetRawAtomic(); + const KeyType* key = weak_member_key.GetAtomic(); if (!key) return; // `value` must always be non-null. CPPGC_DCHECK(member_value); - const ValueType* value = member_value->GetRawAtomic(); + const ValueType* value = member_value->GetAtomic(); if (!value) return; // KeyType and ValueType may refer to GarbageCollectedMixin. @@ -267,7 +267,7 @@ class V8_EXPORT Visitor { const ValueType* value) { static_assert(!IsGarbageCollectedOrMixinTypeV, "garbage-collected types must use WeakMember and Member"); - const KeyType* key = weak_member_key.GetRawAtomic(); + const KeyType* key = weak_member_key.GetAtomic(); if (!key) return; // `value` must always be non-null. @@ -293,7 +293,7 @@ class V8_EXPORT Visitor { */ template void TraceStrongly(const WeakMember& weak_member) { - const T* value = weak_member.GetRawAtomic(); + const T* value = weak_member.GetAtomic(); CPPGC_DCHECK(value != kSentinelPointer); TraceImpl(value); } @@ -369,6 +369,11 @@ class V8_EXPORT Visitor { return false; } + /** + * Checks whether the visitor is running concurrently to the mutator or not. + */ + virtual bool IsConcurrent() const { return false; } + protected: virtual void Visit(const void* self, TraceDescriptor) {} virtual void VisitWeak(const void* self, TraceDescriptor, WeakCallback, diff --git a/deps/v8/include/v8-array-buffer.h b/deps/v8/include/v8-array-buffer.h index 1d93457628cf0c..3e64ece5debda3 100644 --- a/deps/v8/include/v8-array-buffer.h +++ b/deps/v8/include/v8-array-buffer.h @@ -198,7 +198,7 @@ class V8_EXPORT ArrayBuffer : public Object { * Convenience allocator. * * When the sandbox is enabled, this allocator will allocate its backing - * memory inside the sandbox that belongs to passed isolate group. + * memory inside the sandbox that belongs to the passed isolate group. * Otherwise, it will rely on malloc/free. * * Caller takes ownership, i.e. the returned object needs to be freed using diff --git a/deps/v8/include/v8-context.h b/deps/v8/include/v8-context.h index 43dadadeabff59..d35518705fea56 100644 --- a/deps/v8/include/v8-context.h +++ b/deps/v8/include/v8-context.h @@ -256,6 +256,9 @@ class V8_EXPORT Context : public Data { Maybe DeepFreeze(DeepFreezeDelegate* delegate = nullptr); /** Returns the isolate associated with a current context. */ + V8_DEPRECATE_SOON( + "Use Isolate::GetCurrent() instead, which is guaranteed to return the " + "same isolate since https://crrev.com/c/6458560.") Isolate* GetIsolate(); /** Returns the microtask queue associated with a current context. */ @@ -451,8 +454,7 @@ Local Context::GetEmbedderData(int index) { value = I::DecompressTaggedField(embedder_data, static_cast(value)); #endif - auto isolate = reinterpret_cast( - internal::IsolateFromNeverReadOnlySpaceObject(ctx)); + auto* isolate = I::GetCurrentIsolate(); return Local::New(isolate, value); #else return SlowGetEmbedderData(index); @@ -487,7 +489,7 @@ void* Context::GetAlignedPointerFromEmbedderData(int index) { int value_offset = I::kEmbedderDataArrayHeaderSize + (I::kEmbedderDataSlotSize * index) + I::kEmbedderDataSlotExternalPointerOffset; - Isolate* isolate = I::GetIsolateForSandbox(ctx); + Isolate* isolate = I::GetCurrentIsolateForSandbox(); return reinterpret_cast( I::ReadExternalPointerField( isolate, embedder_data, value_offset)); diff --git a/deps/v8/include/v8-fast-api-calls.h b/deps/v8/include/v8-fast-api-calls.h index 4ffaf2d44a50fd..c405940810762f 100644 --- a/deps/v8/include/v8-fast-api-calls.h +++ b/deps/v8/include/v8-fast-api-calls.h @@ -714,8 +714,7 @@ class CFunctionBuilderWithFunction { // Flags in the template parameter pack are ignored. template struct GetArgBuilder { - using type = - typename std::tuple_element>::type; + using type = std::tuple_element_t>; }; // Returns an ArgBuilder with the same base type as the one at index N, @@ -723,10 +722,8 @@ class CFunctionBuilderWithFunction { template struct GetArgBuilder { using type = CTypeInfoBuilder< - typename std::tuple_element>::type::BaseType, - std::tuple_element>::type::Build() - .GetFlags(), + typename std::tuple_element_t>::BaseType, + std::tuple_element_t>::Build().GetFlags(), Flags...>; }; diff --git a/deps/v8/include/v8-function-callback.h b/deps/v8/include/v8-function-callback.h index 09213431c9200d..9ba587daac2199 100644 --- a/deps/v8/include/v8-function-callback.h +++ b/deps/v8/include/v8-function-callback.h @@ -42,7 +42,7 @@ class ReturnValue { public: template V8_INLINE ReturnValue(const ReturnValue& that) : value_(that.value_) { - static_assert(std::is_base_of::value, "type check"); + static_assert(std::is_base_of_v, "type check"); } // Handle-based setters. template @@ -66,12 +66,12 @@ class ReturnValue { V8_INLINE void Set(uint16_t i); V8_INLINE void Set(uint32_t i); V8_INLINE void Set(uint64_t i); - // Fast JS primitive setters + // Fast JS primitive setters. V8_INLINE void SetNull(); V8_INLINE void SetUndefined(); V8_INLINE void SetFalse(); V8_INLINE void SetEmptyString(); - // Convenience getter for Isolate + // Convenience getter for the Isolate. V8_INLINE Isolate* GetIsolate() const; // Pointer setter: Uncompilable to prevent inadvertent misuse. @@ -335,7 +335,7 @@ void ReturnValue::SetInternal(internal::Address value) { template template void ReturnValue::Set(const Global& handle) { - static_assert(std::is_base_of::value, "type check"); + static_assert(std::is_base_of_v, "type check"); if (V8_UNLIKELY(handle.IsEmpty())) { SetDefaultValue(); } else { @@ -346,7 +346,7 @@ void ReturnValue::Set(const Global& handle) { template template void ReturnValue::SetNonEmpty(const Global& handle) { - static_assert(std::is_base_of::value, "type check"); + static_assert(std::is_base_of_v, "type check"); #ifdef V8_ENABLE_CHECKS internal::VerifyHandleIsNonEmpty(handle.IsEmpty()); #endif // V8_ENABLE_CHECKS @@ -356,7 +356,7 @@ void ReturnValue::SetNonEmpty(const Global& handle) { template template void ReturnValue::Set(const BasicTracedReference& handle) { - static_assert(std::is_base_of::value, "type check"); + static_assert(std::is_base_of_v, "type check"); if (V8_UNLIKELY(handle.IsEmpty())) { SetDefaultValue(); } else { @@ -367,7 +367,7 @@ void ReturnValue::Set(const BasicTracedReference& handle) { template template void ReturnValue::SetNonEmpty(const BasicTracedReference& handle) { - static_assert(std::is_base_of::value, "type check"); + static_assert(std::is_base_of_v, "type check"); #ifdef V8_ENABLE_CHECKS internal::VerifyHandleIsNonEmpty(handle.IsEmpty()); #endif // V8_ENABLE_CHECKS @@ -380,16 +380,16 @@ void ReturnValue::Set(const Local handle) { // "V8_DEPRECATE_SOON" this method if |T| is |void|. #ifdef V8_IMMINENT_DEPRECATION_WARNINGS static constexpr bool is_allowed_void = false; - static_assert(!std::is_void::value, + static_assert(!std::is_void_v, "ReturnValue::Set(const Local) is deprecated. " "Do nothing to indicate that the operation succeeded or use " "SetFalse() to indicate that the operation failed (don't " "forget to handle info.ShouldThrowOnError()). " "See http://crbug.com/348660658 for details."); #else - static constexpr bool is_allowed_void = std::is_void::value; + static constexpr bool is_allowed_void = std::is_void_v; #endif // V8_IMMINENT_DEPRECATION_WARNINGS - static_assert(is_allowed_void || std::is_base_of::value, "type check"); + static_assert(is_allowed_void || std::is_base_of_v, "type check"); if (V8_UNLIKELY(handle.IsEmpty())) { SetDefaultValue(); } else if constexpr (is_allowed_void) { @@ -407,16 +407,16 @@ void ReturnValue::SetNonEmpty(const Local handle) { // "V8_DEPRECATE_SOON" this method if |T| is |void|. #ifdef V8_IMMINENT_DEPRECATION_WARNINGS static constexpr bool is_allowed_void = false; - static_assert(!std::is_void::value, + static_assert(!std::is_void_v, "ReturnValue::SetNonEmpty(const Local) is deprecated. " "Do nothing to indicate that the operation succeeded or use " "SetFalse() to indicate that the operation failed (don't " "forget to handle info.ShouldThrowOnError()). " "See http://crbug.com/348660658 for details."); #else - static constexpr bool is_allowed_void = std::is_void::value; + static constexpr bool is_allowed_void = std::is_void_v; #endif // V8_IMMINENT_DEPRECATION_WARNINGS - static_assert(is_allowed_void || std::is_base_of::value, "type check"); + static_assert(is_allowed_void || std::is_base_of_v, "type check"); #ifdef V8_ENABLE_CHECKS internal::VerifyHandleIsNonEmpty(handle.IsEmpty()); #endif // V8_ENABLE_CHECKS @@ -431,13 +431,13 @@ void ReturnValue::SetNonEmpty(const Local handle) { template void ReturnValue::Set(double i) { - static_assert(std::is_base_of::value, "type check"); + static_assert(std::is_base_of_v, "type check"); SetNonEmpty(Number::New(GetIsolate(), i)); } template void ReturnValue::Set(int16_t i) { - static_assert(std::is_base_of::value, "type check"); + static_assert(std::is_base_of_v, "type check"); using I = internal::Internals; static_assert(I::IsValidSmi(std::numeric_limits::min())); static_assert(I::IsValidSmi(std::numeric_limits::max())); @@ -446,7 +446,7 @@ void ReturnValue::Set(int16_t i) { template void ReturnValue::Set(int32_t i) { - static_assert(std::is_base_of::value, "type check"); + static_assert(std::is_base_of_v, "type check"); if (const auto result = internal::Internals::TryIntegralToSmi(i)) { SetInternal(*result); return; @@ -456,7 +456,7 @@ void ReturnValue::Set(int32_t i) { template void ReturnValue::Set(int64_t i) { - static_assert(std::is_base_of::value, "type check"); + static_assert(std::is_base_of_v, "type check"); if (const auto result = internal::Internals::TryIntegralToSmi(i)) { SetInternal(*result); return; @@ -466,7 +466,7 @@ void ReturnValue::Set(int64_t i) { template void ReturnValue::Set(uint16_t i) { - static_assert(std::is_base_of::value, "type check"); + static_assert(std::is_base_of_v, "type check"); using I = internal::Internals; static_assert(I::IsValidSmi(std::numeric_limits::min())); static_assert(I::IsValidSmi(std::numeric_limits::max())); @@ -475,7 +475,7 @@ void ReturnValue::Set(uint16_t i) { template void ReturnValue::Set(uint32_t i) { - static_assert(std::is_base_of::value, "type check"); + static_assert(std::is_base_of_v, "type check"); if (const auto result = internal::Internals::TryIntegralToSmi(i)) { SetInternal(*result); return; @@ -485,7 +485,7 @@ void ReturnValue::Set(uint32_t i) { template void ReturnValue::Set(uint64_t i) { - static_assert(std::is_base_of::value, "type check"); + static_assert(std::is_base_of_v, "type check"); if (const auto result = internal::Internals::TryIntegralToSmi(i)) { SetInternal(*result); return; @@ -495,7 +495,7 @@ void ReturnValue::Set(uint64_t i) { template void ReturnValue::Set(bool value) { - static_assert(std::is_void::value || std::is_base_of::value, + static_assert(std::is_void_v || std::is_base_of_v, "type check"); using I = internal::Internals; #if V8_STATIC_ROOTS_BOOL @@ -535,7 +535,7 @@ void ReturnValue::SetDefaultValue() { template void ReturnValue::SetNull() { - static_assert(std::is_base_of::value, "type check"); + static_assert(std::is_base_of_v, "type check"); using I = internal::Internals; #if V8_STATIC_ROOTS_BOOL #ifdef V8_ENABLE_CHECKS @@ -550,7 +550,7 @@ void ReturnValue::SetNull() { template void ReturnValue::SetUndefined() { - static_assert(std::is_base_of::value, "type check"); + static_assert(std::is_base_of_v, "type check"); using I = internal::Internals; #if V8_STATIC_ROOTS_BOOL #ifdef V8_ENABLE_CHECKS @@ -565,7 +565,7 @@ void ReturnValue::SetUndefined() { template void ReturnValue::SetFalse() { - static_assert(std::is_void::value || std::is_base_of::value, + static_assert(std::is_void_v || std::is_base_of_v, "type check"); using I = internal::Internals; #if V8_STATIC_ROOTS_BOOL @@ -581,7 +581,7 @@ void ReturnValue::SetFalse() { template void ReturnValue::SetEmptyString() { - static_assert(std::is_base_of::value, "type check"); + static_assert(std::is_base_of_v, "type check"); using I = internal::Internals; #if V8_STATIC_ROOTS_BOOL #ifdef V8_ENABLE_CHECKS diff --git a/deps/v8/include/v8-internal.h b/deps/v8/include/v8-internal.h index 66bb4b7d233cc2..3f18ecb694f36e 100644 --- a/deps/v8/include/v8-internal.h +++ b/deps/v8/include/v8-internal.h @@ -237,6 +237,12 @@ using SandboxedPointer_t = Address; // virtual address space for userspace. As such, limit the sandbox to 128GB (a // quarter of the total available address space). constexpr size_t kSandboxSizeLog2 = 37; // 128 GB +#elif defined(V8_TARGET_OS_IOS) +// On iOS, we only get 64 GB of usable virtual address space even with the +// "jumbo" extended virtual addressing entitlement. Limit the sandbox size to +// 16 GB so that the base address + size for the emulated virtual address space +// lies within the 64 GB total virtual address space. +constexpr size_t kSandboxSizeLog2 = 34; // 16 GB #else // Everywhere else use a 1TB sandbox. constexpr size_t kSandboxSizeLog2 = 40; // 1 TB @@ -423,6 +429,19 @@ constexpr size_t kMaxCppHeapPointers = 0; // which all subtypes of a given supertype use contiguous tags. This struct can // then be used to represent such a type range. // +// As an example, consider the following type hierarchy: +// +// A F +// / \ +// B E +// / \ +// C D +// +// A potential type id assignment for range-based type checks is +// {A: 0, B: 1, C: 2, D: 3, E: 4, F: 5}. With that, the type check for type A +// would check for the range [A, E], while the check for B would check range +// [B, D], and for F it would simply check [F, F]. +// // In addition, there is an option for performance tweaks: if the size of the // type range corresponding to a supertype is a power of two and starts at a // power of two (e.g. [0x100, 0x13f]), then the compiler can often optimize @@ -582,11 +601,7 @@ enum ExternalPointerTag : uint16_t { kLastMaybeReadOnlyExternalPointerTag = kLastInterceptorInfoExternalPointerTag, - kWasmInternalFunctionCallTargetTag, - kWasmTypeInfoNativeTypeTag, - kWasmExportedFunctionDataSignatureTag, kWasmStackMemoryTag, - kWasmIndirectFunctionTargetTag, // Foreigns kFirstForeignExternalPointerTag, @@ -620,6 +635,7 @@ enum ExternalPointerTag : uint16_t { kIcuLocalizedNumberFormatterTag, kIcuPluralRulesTag, kIcuCollatorTag, + kTemporalInstantTag, kDisplayNamesInternalTag, kD8WorkerTag, kD8ModuleEmbedderDataTag, @@ -815,6 +831,9 @@ constexpr bool kAllCodeObjectsLiveInTrustedSpace = // {obj} must be the raw tagged pointer representation of a HeapObject // that's guaranteed to never be in ReadOnlySpace. +V8_DEPRECATE_SOON( + "Use GetCurrentIsolate() instead, which is guaranteed to return the same " + "isolate since https://crrev.com/c/6458560.") V8_EXPORT internal::Isolate* IsolateFromNeverReadOnlySpaceObject(Address obj); // Returns if we need to throw when an error occurs. This infers the language @@ -880,8 +899,13 @@ class Internals { // ExternalPointerTable and TrustedPointerTable layout guarantees. static const int kExternalPointerTableBasePointerOffset = 0; - static const int kExternalPointerTableSize = 2 * kApiSystemPointerSize; - static const int kTrustedPointerTableSize = 2 * kApiSystemPointerSize; + static const int kSegmentedTableSegmentPoolSize = 4; + static const int kExternalPointerTableSize = + 4 * kApiSystemPointerSize + + kSegmentedTableSegmentPoolSize * sizeof(uint32_t); + static const int kTrustedPointerTableSize = + 4 * kApiSystemPointerSize + + kSegmentedTableSegmentPoolSize * sizeof(uint32_t); static const int kTrustedPointerTableBasePointerOffset = 0; // IsolateData layout guarantees. @@ -948,8 +972,10 @@ class Internals { static const int kIsolateApiCallbackThunkArgumentOffset = kIsolateEmbedderDataOffset + kNumIsolateDataSlots * kApiSystemPointerSize; #endif // V8_COMPRESS_POINTERS - static const int kIsolateRegexpExecVectorArgumentOffset = + static const int kJSDispatchTableOffset = kIsolateApiCallbackThunkArgumentOffset + kApiSystemPointerSize; + static const int kIsolateRegexpExecVectorArgumentOffset = + kJSDispatchTableOffset + kApiSystemPointerSize; static const int kContinuationPreservedEmbedderDataOffset = kIsolateRegexpExecVectorArgumentOffset + kApiSystemPointerSize; static const int kIsolateRootsOffset = @@ -968,7 +994,7 @@ class Internals { V(TrueValue, 0x71) \ V(FalseValue, 0x55) \ V(EmptyString, 0x49) \ - V(TheHoleValue, 0x761) + V(TheHoleValue, 0x7d9) using Tagged_t = uint32_t; struct StaticReadOnlyRoot { @@ -1256,10 +1282,25 @@ class Internals { #endif } + V8_DEPRECATE_SOON( + "Use GetCurrentIsolateForSandbox() instead, which is guaranteed to " + "return the same isolate since https://crrev.com/c/6458560.") V8_INLINE static v8::Isolate* GetIsolateForSandbox(Address obj) { #ifdef V8_ENABLE_SANDBOX - return reinterpret_cast( - internal::IsolateFromNeverReadOnlySpaceObject(obj)); + return GetCurrentIsolate(); +#else + // Not used in non-sandbox mode. + return nullptr; +#endif + } + + // Returns v8::Isolate::Current(), but without needing to include the + // v8-isolate.h header. + V8_EXPORT static v8::Isolate* GetCurrentIsolate(); + + V8_INLINE static v8::Isolate* GetCurrentIsolateForSandbox() { +#ifdef V8_ENABLE_SANDBOX + return GetCurrentIsolate(); #else // Not used in non-sandbox mode. return nullptr; @@ -1334,8 +1375,8 @@ void CastCheck::Perform(T* data) {} template V8_INLINE void PerformCastCheck(T* data) { - CastCheck::value && - !std::is_same>::value>::Perform(data); + CastCheck && + !std::is_same_v>>::Perform(data); } // A base class for backing stores, which is needed due to vagaries of diff --git a/deps/v8/include/v8-isolate.h b/deps/v8/include/v8-isolate.h index 280c09729f8cb4..99c21c30422397 100644 --- a/deps/v8/include/v8-isolate.h +++ b/deps/v8/include/v8-isolate.h @@ -253,6 +253,17 @@ class V8_EXPORT IsolateGroup { return !operator==(other); } +#ifdef V8_ENABLE_SANDBOX + /** + * Whether the sandbox of the isolate group contains a given pointer. + * Will always return true if the sandbox is not enabled. + */ + bool SandboxContains(void* pointer) const; + VirtualAddressSpace* GetSandboxAddressSpace(); +#else + V8_INLINE bool SandboxContains(void* pointer) const { return true; } +#endif + private: friend class Isolate; friend class ArrayBuffer::Allocator; @@ -634,6 +645,13 @@ class V8_EXPORT Isolate { kFloat16Array = 165, kExplicitResourceManagement = 166, kWasmBranchHinting = 167, + kWasmMultiValue = 168, + kUint8ArrayToFromBase64AndHex = 169, + kAtomicsPause = 170, + kTopLevelAwait = 171, + kLogicalAssignment = 172, + kNullishCoalescing = 173, + kInvalidatedNoDateTimeConfigurationChangeProtector = 174, // If you add new values here, you'll also need to update Chromium's: // web_feature.mojom, use_counter_callback.cc, and enums.xml. V8 changes to @@ -937,14 +955,31 @@ class V8_EXPORT Isolate { * Returns the value that was set or restored by * SetContinuationPreservedEmbedderData(), if any. */ + V8_DEPRECATE_SOON("Use GetContinuationPreservedEmbedderDataV2 instead") Local GetContinuationPreservedEmbedderData(); /** * Sets a value that will be stored on continuations and reset while the * continuation runs. */ + V8_DEPRECATE_SOON("Use SetContinuationPreservedEmbedderDataV2 instead") void SetContinuationPreservedEmbedderData(Local data); + /** + * Returns the value set by `SetContinuationPreservedEmbedderDataV2()` or + * restored during microtask execution for the currently running continuation, + * if any. Returns undefiend if no continuation preserved embedder data was + * set. + */ + Local GetContinuationPreservedEmbedderDataV2(); + + /** + * Sets a value that will be stored on continuations and restored while the + * continuation runs. If `data` is empty, the continuation preserved embedder + * data is set to undefined. + */ + void SetContinuationPreservedEmbedderDataV2(Local data); + /** * Get statistics about the heap memory usage. */ diff --git a/deps/v8/include/v8-local-handle.h b/deps/v8/include/v8-local-handle.h index dce757465c25be..b97eae979e7a1b 100644 --- a/deps/v8/include/v8-local-handle.h +++ b/deps/v8/include/v8-local-handle.h @@ -42,6 +42,7 @@ class BasicTracedReference; template class TracedReference; +class ArrayBuffer; class Boolean; class Context; class EscapableHandleScope; @@ -62,6 +63,8 @@ template class Traced; class TypecheckWitness; class Utils; +class Uint32; +class Value; namespace debug { class ConsoleCallArguments; @@ -78,6 +81,25 @@ class SamplingHeapProfiler; namespace api_internal { // Called when ToLocalChecked is called on an empty Local. V8_EXPORT void ToLocalEmpty(); + +#ifdef V8_ENABLE_CHECKS +template +void TypeCheckLocal(V* value) { + // If `T` does not provide a `Cast` method we cannot check anything. + if constexpr (requires { T::Cast(value); }) { + // TODO(419454582): Remove all these exceptions. + if (std::is_same_v && value->IsArgumentsObject()) return; + if (std::is_same_v && value->IsSharedArrayBuffer()) return; + if (std::is_same_v && value->IsNull()) return; + if (std::is_same_v && value->IsString()) return; + if (std::is_same_v && value->IsUndefined()) return; + if (std::is_same_v && value->IsInt32()) return; + if (std::is_same_v && value->IsNumber()) return; + // Execute the actual check (part of the cast). + T::Cast(value); + } +} +#endif } // namespace api_internal /** @@ -164,7 +186,11 @@ class LocalBase : public api_internal::DirectHandleBase { V8_INLINE LocalBase() = default; - V8_INLINE explicit LocalBase(internal::Address ptr) : DirectHandleBase(ptr) {} + V8_INLINE explicit LocalBase(internal::Address ptr) : DirectHandleBase(ptr) { +#ifdef V8_ENABLE_CHECKS + if (!IsEmpty()) api_internal::TypeCheckLocal(value()); +#endif + } template V8_INLINE LocalBase(const LocalBase& other) : DirectHandleBase(other) {} @@ -200,7 +226,11 @@ class LocalBase : public api_internal::IndirectHandleBase { V8_INLINE LocalBase() = default; V8_INLINE explicit LocalBase(internal::Address* location) - : IndirectHandleBase(location) {} + : IndirectHandleBase(location) { +#ifdef V8_ENABLE_CHECKS + if (!IsEmpty()) api_internal::TypeCheckLocal(value()); +#endif + } template V8_INLINE LocalBase(const LocalBase& other) : IndirectHandleBase(other) {} diff --git a/deps/v8/include/v8-maybe.h b/deps/v8/include/v8-maybe.h index c4d17453a279ab..167bb1b15b2c72 100644 --- a/deps/v8/include/v8-maybe.h +++ b/deps/v8/include/v8-maybe.h @@ -32,6 +32,8 @@ V8_EXPORT void FromJustIsNothing(); template class Maybe : public cppgc::internal::ConditionalStackAllocatedBase { public: + constexpr Maybe() = default; + V8_INLINE bool IsNothing() const { return !has_value_; } V8_INLINE bool IsJust() const { return has_value_; } @@ -93,15 +95,12 @@ class Maybe : public cppgc::internal::ConditionalStackAllocatedBase { } private: - Maybe() : has_value_(false) {} explicit Maybe(const T& t) : has_value_(true), value_(t) {} explicit Maybe(T&& t) : has_value_(true), value_(std::move(t)) {} - bool has_value_; + bool has_value_ = false; T value_; - template - friend Maybe Nothing(); template friend Maybe Just(const U& u); template >*> @@ -109,8 +108,8 @@ class Maybe : public cppgc::internal::ConditionalStackAllocatedBase { }; template -inline Maybe Nothing() { - return Maybe(); +inline constexpr Maybe Nothing() { + return {}; } template @@ -130,6 +129,8 @@ inline Maybe Just(T&& t) { template <> class Maybe { public: + constexpr Maybe() = default; + V8_INLINE bool IsNothing() const { return !is_valid_; } V8_INLINE bool IsJust() const { return is_valid_; } @@ -144,13 +145,10 @@ class Maybe { private: struct JustTag {}; - Maybe() : is_valid_(false) {} explicit Maybe(JustTag) : is_valid_(true) {} - bool is_valid_; + bool is_valid_ = false; - template - friend Maybe Nothing(); friend Maybe JustVoid(); }; diff --git a/deps/v8/include/v8-message.h b/deps/v8/include/v8-message.h index b50898530cf95e..b3abdb14d84f5a 100644 --- a/deps/v8/include/v8-message.h +++ b/deps/v8/include/v8-message.h @@ -111,6 +111,9 @@ class V8_EXPORT Message { /** * Return the isolate to which the Message belongs. */ + V8_DEPRECATE_SOON( + "Use Isolate::GetCurrent() instead, which is guaranteed to return the " + "same isolate since https://crrev.com/c/6458560.") Isolate* GetIsolate() const; V8_WARN_UNUSED_RESULT MaybeLocal GetSource( diff --git a/deps/v8/include/v8-object.h b/deps/v8/include/v8-object.h index 3e57ae8efe33f3..e81d734f00ab60 100644 --- a/deps/v8/include/v8-object.h +++ b/deps/v8/include/v8-object.h @@ -795,8 +795,14 @@ class V8_EXPORT Object : public Value { /** * Return the isolate to which the Object belongs to. */ + V8_DEPRECATE_SOON( + "Use Isolate::GetCurrent() instead, which is guaranteed to return the " + "same isolate since https://crrev.com/c/6458560.") Isolate* GetIsolate(); + V8_DEPRECATE_SOON( + "Use Isolate::GetCurrent() instead, which is guaranteed to return the " + "same isolate since https://crrev.com/c/6458560.") V8_INLINE static Isolate* GetIsolate(const TracedReference& handle) { return handle.template value()->GetIsolate(); } @@ -871,8 +877,7 @@ Local Object::GetInternalField(int index) { value = I::DecompressTaggedField(obj, static_cast(value)); #endif - auto isolate = reinterpret_cast( - internal::IsolateFromNeverReadOnlySpaceObject(obj)); + auto* isolate = I::GetCurrentIsolate(); return Local::New(isolate, value); } #endif @@ -913,7 +918,7 @@ void* Object::GetAlignedPointerFromInternalField(int index) { int offset = I::kJSAPIObjectWithEmbedderSlotsHeaderSize + (I::kEmbedderDataSlotSize * index) + I::kEmbedderDataSlotExternalPointerOffset; - Isolate* isolate = I::GetIsolateForSandbox(obj); + Isolate* isolate = I::GetCurrentIsolateForSandbox(); A value = I::ReadExternalPointerField( isolate, obj, offset); diff --git a/deps/v8/include/v8-persistent-handle.h b/deps/v8/include/v8-persistent-handle.h index 6abe29d4ab782f..8369e6aa71233b 100644 --- a/deps/v8/include/v8-persistent-handle.h +++ b/deps/v8/include/v8-persistent-handle.h @@ -431,7 +431,7 @@ internal::Address* PersistentBase::New(Isolate* isolate, T* that) { template template void Persistent::Copy(const Persistent& that) { - static_assert(std::is_base_of::value, "type check"); + static_assert(std::is_base_of_v, "type check"); this->Reset(); if (that.IsEmpty()) return; this->slot() = api_internal::CopyGlobalReference(that.slot()); @@ -459,7 +459,7 @@ void PersistentBase::Reset() { template template void PersistentBase::Reset(Isolate* isolate, const Local& other) { - static_assert(std::is_base_of::value, "type check"); + static_assert(std::is_base_of_v, "type check"); Reset(); if (other.IsEmpty()) return; this->slot() = New(isolate, *other); @@ -473,7 +473,7 @@ template template void PersistentBase::Reset(Isolate* isolate, const PersistentBase& other) { - static_assert(std::is_base_of::value, "type check"); + static_assert(std::is_base_of_v, "type check"); Reset(); if (other.IsEmpty()) return; this->slot() = New(isolate, other.template value()); @@ -539,7 +539,7 @@ Global::Global(Global&& other) : PersistentBase(other.slot()) { template template Global& Global::operator=(Global&& rhs) { - static_assert(std::is_base_of::value, "type check"); + static_assert(std::is_base_of_v, "type check"); if (this != &rhs) { this->Reset(); if (!rhs.IsEmpty()) { diff --git a/deps/v8/include/v8-platform.h b/deps/v8/include/v8-platform.h index 43ffeb57d708d3..7f678811528970 100644 --- a/deps/v8/include/v8-platform.h +++ b/deps/v8/include/v8-platform.h @@ -499,12 +499,49 @@ class PageAllocator { kNoAccessWillJitLater }; + /** + * Optional hints for AllocatePages(). + */ + class AllocationHint final { + public: + AllocationHint() = default; + + V8_WARN_UNUSED_RESULT constexpr AllocationHint WithAddress( + void* address) const { + return AllocationHint(address, may_grow_); + } + + V8_WARN_UNUSED_RESULT constexpr AllocationHint WithMayGrow() const { + return AllocationHint(address_, true); + } + + bool MayGrow() const { return may_grow_; } + void* Address() const { return address_; } + + private: + constexpr AllocationHint(void* address, bool may_grow) + : address_(address), may_grow_(may_grow) {} + + void* address_ = nullptr; + bool may_grow_ = false; + }; + /** * Allocates memory in range with the given alignment and permission. */ virtual void* AllocatePages(void* address, size_t length, size_t alignment, Permission permissions) = 0; + /** + * Allocates memory in range with the given alignment and permission. In + * addition to AllocatePages it allows to pass in allocation hints. The + * underlying implementation may not make use of hints. + */ + virtual void* AllocatePages(size_t length, size_t alignment, + Permission permissions, AllocationHint hint) { + return AllocatePages(hint.Address(), length, alignment, permissions); + } + /** * Resizes the previously allocated memory at the given address. Returns true * if the allocation could be resized. Returns false if this operation is @@ -665,14 +702,6 @@ class ThreadIsolatedAllocator { * Return the pkey used to implement the thread isolation if Type == kPkey. */ virtual int Pkey() const { return -1; } - - /** - * Per-thread permissions can be reset on signal handler entry. Even reading - * ThreadIsolated memory will segfault in that case. - * Call this function on signal handler entry to ensure that read permissions - * are restored. - */ - static void SetDefaultPermissionsForSignalHandler(); }; // Opaque type representing a handle to a shared memory region. diff --git a/deps/v8/include/v8-primitive.h b/deps/v8/include/v8-primitive.h index 50b07d9c10a7bb..f87dc1727aea09 100644 --- a/deps/v8/include/v8-primitive.h +++ b/deps/v8/include/v8-primitive.h @@ -635,11 +635,10 @@ class V8_EXPORT String : public Name { bool StringEquals(Local str) const; /** - * Converts an object to a UTF-8-encoded character array. Useful if - * you want to print the object. If conversion to a string fails - * (e.g. due to an exception in the toString() method of the object) - * then the length() method returns 0 and the * operator returns - * NULL. + * Converts an object to a null-terminated UTF-8-encoded character array. + * Useful if you want to print the object. If conversion to a string fails + * (e.g. due to an exception in the toString() method of the object) then the + * length() method returns 0 and the * operator returns NULL. * * WARNING: This will unconditionally copy the contents of the JavaScript * string, and should be avoided in situations where performance is a concern. @@ -647,8 +646,7 @@ class V8_EXPORT String : public Name { */ class V8_EXPORT Utf8Value { public: - Utf8Value(Isolate* isolate, Local obj, - WriteOptions options = REPLACE_INVALID_UTF8); + Utf8Value(Isolate* isolate, Local obj); ~Utf8Value(); char* operator*() { return str_; } const char* operator*() const { return str_; } @@ -994,7 +992,7 @@ String::ExternalStringResource* String::GetExternalStringResource() const { ExternalStringResource* result; if (I::IsExternalTwoByteString(I::GetInstanceType(obj))) { - Isolate* isolate = I::GetIsolateForSandbox(obj); + Isolate* isolate = I::GetCurrentIsolateForSandbox(); A value = I::ReadExternalPointerField( isolate, obj, I::kStringResourceOffset); result = reinterpret_cast(value); @@ -1039,7 +1037,7 @@ String::ExternalStringResourceBase* String::GetExternalStringResourceBase( ExternalStringResourceBase* resource; if (type == I::kExternalOneByteRepresentationTag || type == I::kExternalTwoByteRepresentationTag) { - Isolate* isolate = I::GetIsolateForSandbox(obj); + Isolate* isolate = I::GetCurrentIsolateForSandbox(); A value = I::ReadExternalPointerField( isolate, obj, I::kStringResourceOffset); resource = reinterpret_cast(value); diff --git a/deps/v8/include/v8-profiler.h b/deps/v8/include/v8-profiler.h index 9581cdb2dbe4ee..f7f88ba6c74969 100644 --- a/deps/v8/include/v8-profiler.h +++ b/deps/v8/include/v8-profiler.h @@ -71,6 +71,10 @@ class V8_EXPORT CpuProfileNode { /** The 1-based number of the source line where the function originates. */ int line; + /** The 1-based number of the source column where the function originates. + */ + int column; + /** The count of samples associated with the source line. */ unsigned int hit_count; }; diff --git a/deps/v8/include/v8-traced-handle.h b/deps/v8/include/v8-traced-handle.h index 28fe6cf5ae3ad0..3eb8e7835d74e7 100644 --- a/deps/v8/include/v8-traced-handle.h +++ b/deps/v8/include/v8-traced-handle.h @@ -181,7 +181,7 @@ class TracedReference : public BasicTracedReference { */ template TracedReference(Isolate* isolate, Local that) : BasicTracedReference() { - static_assert(std::is_base_of::value, "type check"); + static_assert(std::is_base_of_v, "type check"); if (V8_UNLIKELY(that.IsEmpty())) { return; } @@ -202,7 +202,7 @@ class TracedReference : public BasicTracedReference { template TracedReference(Isolate* isolate, Local that, IsDroppable) : BasicTracedReference() { - static_assert(std::is_base_of::value, "type check"); + static_assert(std::is_base_of_v, "type check"); if (V8_UNLIKELY(that.IsEmpty())) { return; } @@ -351,7 +351,7 @@ V8_INLINE bool operator!=(const v8::Local& lhs, template template void TracedReference::Reset(Isolate* isolate, const Local& other) { - static_assert(std::is_base_of::value, "type check"); + static_assert(std::is_base_of_v, "type check"); this->Reset(); if (V8_UNLIKELY(other.IsEmpty())) { return; @@ -366,7 +366,7 @@ template template void TracedReference::Reset(Isolate* isolate, const Local& other, IsDroppable) { - static_assert(std::is_base_of::value, "type check"); + static_assert(std::is_base_of_v, "type check"); this->Reset(); if (V8_UNLIKELY(other.IsEmpty())) { return; @@ -381,7 +381,7 @@ template template TracedReference& TracedReference::operator=( TracedReference&& rhs) noexcept { - static_assert(std::is_base_of::value, "type check"); + static_assert(std::is_base_of_v, "type check"); *this = std::move(rhs.template As()); return *this; } @@ -390,7 +390,7 @@ template template TracedReference& TracedReference::operator=( const TracedReference& rhs) { - static_assert(std::is_base_of::value, "type check"); + static_assert(std::is_base_of_v, "type check"); *this = rhs.template As(); return *this; } diff --git a/deps/v8/include/v8-version.h b/deps/v8/include/v8-version.h index b39a02bd40fca4..7829b000cdc649 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 13 -#define V8_MINOR_VERSION 7 -#define V8_BUILD_NUMBER 152 -#define V8_PATCH_LEVEL 13 +#define V8_MINOR_VERSION 8 +#define V8_BUILD_NUMBER 258 +#define V8_PATCH_LEVEL 14 // Use 1 for candidates and 0 otherwise. // (Boolean macro values are not supported by all preprocessors.) diff --git a/deps/v8/include/v8config.h b/deps/v8/include/v8config.h index 9581df67fd18c3..a358e96c7c4e16 100644 --- a/deps/v8/include/v8config.h +++ b/deps/v8/include/v8config.h @@ -592,15 +592,11 @@ path. Add it with -I to the command line // functions. // Use like: // V8_NOINLINE V8_PRESERVE_MOST void UnlikelyMethod(); -#if V8_OS_WIN -# define V8_PRESERVE_MOST -#else #if V8_HAS_ATTRIBUTE_PRESERVE_MOST # define V8_PRESERVE_MOST __attribute__((preserve_most)) #else # define V8_PRESERVE_MOST /* NOT SUPPORTED */ #endif -#endif // A macro (V8_DEPRECATED) to mark classes or functions as deprecated. @@ -909,8 +905,6 @@ V8 shared library set USING_V8_SHARED. #define V8_TARGET_ARCH_32_BIT 1 #elif V8_TARGET_ARCH_ARM64 #define V8_TARGET_ARCH_64_BIT 1 -#elif V8_TARGET_ARCH_MIPS -#define V8_TARGET_ARCH_32_BIT 1 #elif V8_TARGET_ARCH_MIPS64 #define V8_TARGET_ARCH_64_BIT 1 #elif V8_TARGET_ARCH_LOONG64 diff --git a/deps/v8/infra/mb/mb_config.pyl b/deps/v8/infra/mb/mb_config.pyl index 6f6d3720b79dc6..03b2e9ca3fd47f 100644 --- a/deps/v8/infra/mb/mb_config.pyl +++ b/deps/v8/infra/mb/mb_config.pyl @@ -70,7 +70,6 @@ 'V8 Linux64 - builder (reclient compare)': 'release_x64_reclient', 'V8 Linux64 - official - builder': 'official_x64_on_release_branch', 'V8 Linux64 - debug builder': 'debug_x64', - 'V8 Linux64 - no leaptiering - debug builder': 'debug_x64_no_leaptiering', 'V8 Linux64 - no shared cage - debug builder': 'debug_x64_no_shared_cage', 'V8 Linux64 - custom snapshot - debug builder': 'debug_x64_custom', 'V8 Linux64 - internal snapshot - builder': 'release_x64_internal', @@ -80,6 +79,8 @@ 'V8 Linux64 - shared - builder': 'release_x64_shared_verify_heap', 'V8 Linux64 - verify csa - builder': 'release_x64_verify_csa', 'V8 Linux64 - no wasm - builder': 'release_x64_webassembly_disabled', + 'V8 Linux64 - PKU - debug builder': 'debug_x64_sandbox_hardware_support', + 'V8 Linux64 - PKU - builder': 'release_x64_sandbox_hardware_support', # Windows. 'V8 Win - arm64 - debug builder': 'debug_arm64', 'V8 Win32 - builder': 'release_x86_minimal_symbols', @@ -115,6 +116,7 @@ 'V8 Linux - arm64 - sim - MSAN - builder': 'release_simulate_arm64_msan', # FYI. 'V8 iOS - sim - builder': 'release_x64_ios_simulator', + 'V8 Linux64 - arm64 - ASAN - builder': 'release_arm64_asan', 'V8 Linux64 - arm64 - builder': 'release_arm64', 'V8 Linux64 - arm64 - debug builder': 'debug_arm64', 'V8 Linux64 - arm64 - sim - no pointer compression - builder': @@ -127,6 +129,7 @@ 'V8 Linux64 - debug - single generation - builder': 'debug_x64_single_generation', 'V8 Linux64 - no pointer compression - builder': 'release_x64_no_pointer_compression', 'V8 Linux64 - sticky mark bits - debug builder': 'debug_x64_sticky_mark_bits', + 'V8 Linux64 - undefined double - debug builder': 'debug_x64_undefined_double', 'V8 Linux64 css - debug builder': 'debug_x64_conservative_stack_scanning', 'V8 Linux64 gcc - builder': 'release_x64_gcc', 'V8 Linux64 - jammy - gcc - builder': 'release_x64_gcc', @@ -171,6 +174,7 @@ 'V8 Clusterfuzz Linux ASAN no inline - release builder': 'release_x86_asan_symbolized_verify_heap_turboshaft_csa', 'V8 Clusterfuzz Linux64 ASAN - debug builder': 'debug_x64_asan_turboshaft_csa', + 'V8 Clusterfuzz Linux64 ASAN - undefined double - debug builder': 'debug_x64_asan_undefined_double', 'V8 Clusterfuzz Linux ASAN - debug builder': 'debug_x86_asan_turboshaft_csa', 'V8 Clusterfuzz Linux64 ASAN arm64 - debug builder': 'debug_simulate_arm64_asan_turboshaft_csa', @@ -265,6 +269,7 @@ 'v8_linux_gc_stress_compile_dbg': 'debug_x86_trybot', 'v8_linux_shared_compile_rel': 'release_x86_shared_verify_heap', 'v8_linux_vtunejit': 'debug_x86_vtunejit', + 'v8_linux64_arm64_asan_compile_rel': 'release_arm64_asan', 'v8_linux64_arm64_compile_dbg': 'debug_arm64_trybot', 'v8_linux64_arm64_compile_rel': 'release_arm64_trybot', 'v8_linux64_native_arm64_no_pointer_compression_compile_rel': 'release_arm64_no_pointer_compression_trybot', @@ -272,9 +277,9 @@ 'release_simulate_arm64_no_pointer_compression', 'v8_linux64_asan_centipede_compile_dbg': 'debug_x64_asan_centipede', 'v8_linux64_asan_centipede_compile_rel': 'release_x64_asan_centipede', + 'v8_linux64_asan_undefined_double_compile_dbg': 'debug_x64_asan_undefined_double', 'v8_linux64_cppgc_non_default_compile_dbg': 'debug_x64_non_default_cppgc', 'v8_linux64_compile_dbg': 'debug_x64_trybot', - 'v8_linux64_no_leaptiering_compile_dbg': 'debug_x64_no_leaptiering', 'v8_linux64_no_shared_cage_compile_dbg': 'debug_x64_no_shared_cage', 'v8_linux64_coverage_dbg': 'debug_x64_coverage', 'v8_linux64_coverage_rel': 'release_x64_coverage', @@ -299,8 +304,8 @@ 'v8_linux64_no_sandbox_compile_rel': 'release_x64_no_sandbox', 'v8_linux64_official_compile_rel': 'official_x64_on_release_branch', 'v8_linux64_predictable_compile_rel': 'release_x64_predictable', - 'v8_linux64_pku_compile_dbg': 'debug_x64', - 'v8_linux64_pku_compile_rel': 'release_x64', + 'v8_linux64_pku_compile_dbg': 'debug_x64_sandbox_hardware_support', + 'v8_linux64_pku_compile_rel': 'release_x64_sandbox_hardware_support', 'v8_linux64_shared_compile_rel': 'release_x64_shared_verify_heap', 'v8_linux64_single_generation_compile_dbg': 'debug_x64_single_generation', 'v8_linux64_no_wasm_compile_rel': 'release_x64_webassembly_disabled', @@ -324,6 +329,7 @@ 'v8_linux64_tsan_isolates_compile_rel': 'release_x64_tsan_minimal_symbols', 'v8_linux64_ubsan_compile_rel': 'release_x64_ubsan_minimal_symbols', + 'v8_linux64_undefined_double_compile_dbg': 'debug_x64_undefined_double', 'v8_linux64_verify_builtins_rel': 'release_x64_verify_builtins', 'v8_linux64_verify_deterministic_rel': 'release_x64_verify_deterministic', 'v8_linux_torque_compare': 'torque_compare', @@ -535,6 +541,8 @@ 'release_bot', 'arm', 'hard_float'], 'release_arm64': [ 'release_bot', 'arm64'], + 'release_arm64_asan': [ + 'release_bot', 'arm64', 'asan'], 'release_arm64_no_pointer_compression': [ 'release_bot', 'arm64', 'v8_disable_pointer_compression'], 'release_arm64_trybot': [ @@ -603,7 +611,7 @@ 'release_bot', 'x64', 'asan', 'lsan', 'symbolized', 'v8_verify_heap', 'v8_enable_turboshaft_csa'], 'release_x64_cet_shadow_stack': [ - 'release_bot', 'x64', 'cet_shadow_stack'], + 'release_bot', 'x64', 'cet_shadow_stack', 'use_siso'], 'release_x64_cfi': [ 'release_bot', 'x64', 'cfi'], 'release_x64_cfi_clusterfuzz_turboshaft_csa': [ @@ -643,6 +651,8 @@ 'release_bot_reclient', 'x64'], 'release_x64_no_sandbox': [ 'release_bot', 'x64', 'no_sandbox'], + 'release_x64_sandbox_hardware_support': [ + 'release_bot', 'x64', 'sandbox_hardware_support'], 'release_x64_trybot': [ 'release_trybot', 'x64'], 'release_x64_test_features_gcmole_trybot': [ @@ -695,6 +705,8 @@ 'debug_x64_asan_no_lsan_static_turboshaft_csa': [ 'debug', 'static', 'reclient', 'v8_enable_slow_dchecks', 'v8_optimized_debug', 'x64', 'asan', 'v8_enable_turboshaft_csa'], + 'debug_x64_asan_undefined_double': [ + 'debug_bot', 'x64', 'asan', 'v8_enable_undefined_double'], 'debug_x64_conservative_stack_scanning': [ 'debug_bot', 'x64', 'conservative_stack_scanning'], 'debug_x64_coverage': [ @@ -709,8 +721,6 @@ 'debug_bot_no_reclient', 'x64', 'gcc', 'lld', 'no_custom_libcxx'], 'debug_x64_header_includes': [ 'debug_bot', 'x64', 'v8_check_header_includes'], - 'debug_x64_no_leaptiering': [ - 'debug_bot', 'x64', 'v8_disable_leaptiering'], 'debug_x64_no_shared_cage': [ 'debug_bot', 'x64', 'v8_disable_pointer_compression_shared_cage'], 'debug_x64_minimal_symbols': [ @@ -721,6 +731,8 @@ 'debug_bot', 'x64', 'perfetto'], 'debug_x64_no_sandbox': [ 'debug_bot', 'x64', 'no_sandbox'], + 'debug_x64_sandbox_hardware_support': [ + 'debug_bot', 'x64', 'sandbox_hardware_support'], 'debug_x64_single_generation': [ 'debug_bot', 'x64', 'v8_enable_single_generation'], 'debug_x64_sticky_mark_bits': [ @@ -736,6 +748,8 @@ 'debug_x64_tsan_minimal_symbols': [ 'debug_bot_no_slow_dchecks', 'minimal_symbols', 'x64', 'dcheck_always_on', 'tsan', 'v8_disable_verify_heap', 'v8_fast_mksnapshot'], + 'debug_x64_undefined_double': [ + 'debug_bot', 'x64', 'v8_enable_undefined_double'], 'full_debug_x64': [ 'debug_bot', 'x64', 'v8_full_debug'], @@ -960,6 +974,10 @@ 'gn_args': 'v8_enable_sandbox=false', }, + 'sandbox_hardware_support': { + 'gn_args': 'v8_enable_sandbox_hardware_support=true', + }, + 'non_default_cppgc': { 'gn_args': 'cppgc_enable_object_names=true cppgc_enable_young_generation=true', }, @@ -1071,6 +1089,10 @@ 'gn_args': 'use_centipede=true optimize_for_fuzzing = true', }, + 'use_siso': { + 'gn_args': 'use_siso=true', + }, + 'v8_check_header_includes': { 'gn_args': 'v8_check_header_includes=true', }, @@ -1084,10 +1106,6 @@ 'gn_args': 'v8_control_flow_integrity=true', }, - 'v8_disable_leaptiering': { - 'gn_args': 'v8_enable_leaptiering=false v8_enable_sandbox=false', - }, - 'v8_disable_runtime_call_stats': { 'gn_args': 'v8_enable_runtime_call_stats=false', }, @@ -1158,6 +1176,10 @@ 'gn_args': 'v8_enable_turboshaft_csa=true', }, + 'v8_enable_undefined_double': { + 'gn_args': 'v8_enable_experimental_undefined_double=true', + }, + 'v8_enable_verify_predictable': { 'gn_args': 'v8_enable_verify_predictable=true', }, diff --git a/deps/v8/infra/testing/builders.pyl b/deps/v8/infra/testing/builders.pyl index 787c43b1d5f95b..b0fb6fac43c5ef 100644 --- a/deps/v8/infra/testing/builders.pyl +++ b/deps/v8/infra/testing/builders.pyl @@ -329,11 +329,21 @@ }, ############################################################################## # Linux64 + 'v8_linux64_arm64_asan_rel': { + 'swarming_dimensions': { + 'os': 'Linux', + 'cpu': 'arm64', + 'pool': 'v8.tests', + }, + 'tests': [ + {'name': 'v8testing', 'variant': 'default'}, + ], + }, 'v8_linux64_arm64_dbg': { 'swarming_dimensions': { 'os': 'Linux', 'cpu': 'arm64', - 'pool': 'chromium.tests', + 'pool': 'v8.tests', }, 'tests': [ {'name': 'v8testing', 'variant': 'default'}, @@ -343,7 +353,7 @@ 'swarming_dimensions': { 'os': 'Linux', 'cpu': 'arm64', - 'pool': 'chromium.tests', + 'pool': 'v8.tests', }, 'tests': [ {'name': 'v8testing', 'variant': 'default'}, @@ -425,7 +435,7 @@ {'name': 'v8testing', 'shards': 5}, {'name': 'v8testing', 'variant': 'extra', 'shards': 5}, {'name': 'v8testing', 'variant': 'minor_ms'}, - {'name': 'v8testing', 'variant': 'conservative_pinning'}, + {'name': 'v8testing', 'variant': 'conservative_stack_scanning'}, {'name': 'v8testing', 'variant': 'precise_pinning'}, {'name': 'v8testing', 'variant': 'no_lfa'}, {'name': 'v8testing', 'variant': 'stress_instruction_scheduling'}, @@ -539,7 +549,7 @@ }, { 'name': 'mjsunit', - 'variant': 'conservative_pinning', + 'variant': 'conservative_stack_scanning', 'test_args': ['--gc-stress'], 'shards': 2 }, @@ -627,7 +637,7 @@ {'name': 'v8testing', 'variant': 'stress_maglev_future'}, {'name': 'v8testing', 'variant': 'turbolev'}, {'name': 'v8testing', 'variant': 'minor_ms'}, - {'name': 'v8testing', 'variant': 'conservative_pinning'}, + {'name': 'v8testing', 'variant': 'conservative_stack_scanning'}, {'name': 'v8testing', 'variant': 'precise_pinning'}, ], }, @@ -639,14 +649,6 @@ {'name': 'v8testing', 'shards': 3}, ], }, - 'v8_linux64_no_leaptiering_dbg': { - 'swarming_dimensions' : { - 'os': 'Ubuntu-22.04', - }, - 'tests': [ - {'name': 'v8testing', 'shards': 5}, - ], - }, 'v8_linux64_no_shared_cage_dbg': { 'swarming_dimensions' : { 'os': 'Ubuntu-22.04', @@ -742,7 +744,7 @@ {'name': 'v8testing', 'shards': 2}, {'name': 'v8testing', 'variant': 'extra', 'shards': 2}, {'name': 'v8testing', 'variant': 'minor_ms'}, - {'name': 'v8testing', 'variant': 'conservative_pinning'}, + {'name': 'v8testing', 'variant': 'conservative_stack_scanning'}, {'name': 'v8testing', 'variant': 'precise_pinning'}, {'name': 'v8testing', 'variant': 'no_lfa'}, {'name': 'v8testing', 'variant': 'slow_path'}, @@ -809,7 +811,7 @@ {'name': 'v8testing', 'variant': 'slow_path', 'shards': 2}, {'name': 'v8testing', 'variant': 'stress_concurrent_allocation', 'shards': 2}, {'name': 'v8testing', 'variant': 'minor_ms', 'shards': 2}, - {'name': 'v8testing', 'variant': 'conservative_pinning', 'shards': 2}, + {'name': 'v8testing', 'variant': 'conservative_stack_scanning', 'shards': 2}, {'name': 'v8testing', 'variant': 'precise_pinning', 'shards': 2}, ], }, @@ -853,6 +855,15 @@ {'name': 'v8testing', 'variant': 'extra', 'shards': 2}, ], }, + 'v8_linux64_undefined_double_dbg': { + 'swarming_dimensions' : { + 'os': 'Ubuntu-22.04', + 'cpu': 'x86-64', + }, + 'tests': [ + {'name': 'v8testing', 'shards': 3}, + ], + }, 'v8_linux64_verify_csa_rel': { 'swarming_dimensions' : { 'os': 'Ubuntu-22.04', @@ -1001,7 +1012,7 @@ {'name': 'v8testing', 'shards': 4}, {'name': 'v8testing', 'variant': 'extra', 'shards': 3}, {'name': 'v8testing', 'variant': 'minor_ms'}, - {'name': 'v8testing', 'variant': 'conservative_pinning'}, + {'name': 'v8testing', 'variant': 'conservative_stack_scanning'}, {'name': 'v8testing', 'variant': 'precise_pinning'}, ], }, @@ -1026,7 +1037,7 @@ {'name': 'v8testing', 'shards': 2}, {'name': 'v8testing', 'variant': 'extra', 'shards': 2}, {'name': 'v8testing', 'variant': 'minor_ms'}, - {'name': 'v8testing', 'variant': 'conservative_pinning'}, + {'name': 'v8testing', 'variant': 'conservative_stack_scanning'}, {'name': 'v8testing', 'variant': 'precise_pinning'}, ], }, @@ -1041,7 +1052,7 @@ {'name': 'v8testing', 'shards': 2}, {'name': 'v8testing', 'variant': 'extra', 'shards': 2}, {'name': 'v8testing', 'variant': 'minor_ms'}, - {'name': 'v8testing', 'variant': 'conservative_pinning'}, + {'name': 'v8testing', 'variant': 'conservative_stack_scanning'}, {'name': 'v8testing', 'variant': 'precise_pinning'}, ], }, @@ -1067,7 +1078,7 @@ {'name': 'v8testing', 'shards': 6}, {'name': 'v8testing', 'variant': 'extra', 'shards': 6}, {'name': 'v8testing', 'variant': 'minor_ms'}, - {'name': 'v8testing', 'variant': 'conservative_pinning'}, + {'name': 'v8testing', 'variant': 'conservative_stack_scanning'}, {'name': 'v8testing', 'variant': 'precise_pinning'}, ], }, @@ -1100,7 +1111,7 @@ {'name': 'v8testing', 'shards': 3}, {'name': 'v8testing', 'variant': 'extra', 'shards': 3}, {'name': 'v8testing', 'variant': 'minor_ms'}, - {'name': 'v8testing', 'variant': 'conservative_pinning'}, + {'name': 'v8testing', 'variant': 'conservative_stack_scanning'}, {'name': 'v8testing', 'variant': 'precise_pinning'}, ], }, @@ -1121,7 +1132,7 @@ {'name': 'v8testing', 'variant': 'stress_maglev_future'}, {'name': 'v8testing', 'variant': 'turbolev'}, {'name': 'v8testing', 'variant': 'minor_ms'}, - {'name': 'v8testing', 'variant': 'conservative_pinning'}, + {'name': 'v8testing', 'variant': 'conservative_stack_scanning'}, {'name': 'v8testing', 'variant': 'precise_pinning'}, ], }, @@ -1142,7 +1153,7 @@ {'name': 'v8testing', 'variant': 'stress_maglev_future'}, {'name': 'v8testing', 'variant': 'turbolev'}, {'name': 'v8testing', 'variant': 'minor_ms'}, - {'name': 'v8testing', 'variant': 'conservative_pinning'}, + {'name': 'v8testing', 'variant': 'conservative_stack_scanning'}, {'name': 'v8testing', 'variant': 'precise_pinning'}, ], }, @@ -1163,7 +1174,7 @@ {'name': 'v8testing', 'variant': 'stress_maglev_future'}, {'name': 'v8testing', 'variant': 'turbolev'}, {'name': 'v8testing', 'variant': 'minor_ms'}, - {'name': 'v8testing', 'variant': 'conservative_pinning'}, + {'name': 'v8testing', 'variant': 'conservative_stack_scanning'}, {'name': 'v8testing', 'variant': 'precise_pinning'}, ], }, @@ -1466,7 +1477,7 @@ {'name': 'v8testing', 'variant': 'assert_types'}, {'name': 'v8testing', 'variant': 'extra'}, {'name': 'v8testing', 'variant': 'minor_ms'}, - {'name': 'v8testing', 'variant': 'conservative_pinning'}, + {'name': 'v8testing', 'variant': 'conservative_stack_scanning'}, {'name': 'v8testing', 'variant': 'precise_pinning'}, {'name': 'v8testing', 'variant': 'no_lfa'}, {'name': 'v8testing', 'variant': 'stress_instruction_scheduling'}, @@ -1574,7 +1585,7 @@ {'name': 'v8testing', 'shards': 3}, {'name': 'v8testing', 'variant': 'extra', 'shards': 4}, {'name': 'v8testing', 'variant': 'minor_ms'}, - {'name': 'v8testing', 'variant': 'conservative_pinning'}, + {'name': 'v8testing', 'variant': 'conservative_stack_scanning'}, {'name': 'v8testing', 'variant': 'precise_pinning'}, {'name': 'v8testing', 'variant': 'no_lfa'}, {'name': 'v8testing', 'variant': 'slow_path'}, @@ -1780,7 +1791,7 @@ }, { 'name': 'mjsunit', - 'variant': 'conservative_pinning', + 'variant': 'conservative_stack_scanning', 'test_args': ['--gc-stress'], 'shards': 2 }, @@ -1808,14 +1819,6 @@ {'name': 'v8testing'}, ], }, - 'V8 Linux64 - no leaptiering - debug': { - 'swarming_dimensions' : { - 'os': 'Ubuntu-22.04', - }, - 'tests': [ - {'name': 'v8testing', 'shards': 5}, - ], - }, 'V8 Linux64 - no shared cage - debug': { 'swarming_dimensions' : { 'os': 'Ubuntu-22.04', @@ -1883,6 +1886,15 @@ {'name': 'v8testing', 'shards': 3}, ], }, + 'V8 Linux64 - undefined double - debug': { + 'swarming_dimensions' : { + 'os': 'Ubuntu-22.04', + 'cpu': 'x86-64', + }, + 'tests': [ + {'name': 'v8testing', 'shards': 3}, + ], + }, 'V8 Linux64 - verify csa': { 'swarming_dimensions' : { 'os': 'Ubuntu-22.04', @@ -1946,7 +1958,7 @@ {'name': 'v8testing', 'variant': 'slow_path', 'shards': 2}, {'name': 'v8testing', 'variant': 'stress_concurrent_allocation', 'shards': 2}, {'name': 'v8testing', 'variant': 'minor_ms', 'shards': 2}, - {'name': 'v8testing', 'variant': 'conservative_pinning', 'shards': 2}, + {'name': 'v8testing', 'variant': 'conservative_stack_scanning', 'shards': 2}, {'name': 'v8testing', 'variant': 'precise_pinning', 'shards': 2}, ], }, @@ -2034,7 +2046,7 @@ {'name': 'v8testing', 'shards': 3}, {'name': 'v8testing', 'variant': 'extra', 'shards': 3}, {'name': 'v8testing', 'variant': 'minor_ms'}, - {'name': 'v8testing', 'variant': 'conservative_pinning'}, + {'name': 'v8testing', 'variant': 'conservative_stack_scanning'}, {'name': 'v8testing', 'variant': 'precise_pinning'}, ], }, @@ -2049,7 +2061,7 @@ {'name': 'v8testing', 'shards': 6}, {'name': 'v8testing', 'variant': 'extra', 'shards': 6}, {'name': 'v8testing', 'variant': 'minor_ms'}, - {'name': 'v8testing', 'variant': 'conservative_pinning'}, + {'name': 'v8testing', 'variant': 'conservative_stack_scanning'}, {'name': 'v8testing', 'variant': 'precise_pinning'}, ], }, @@ -2089,7 +2101,7 @@ {'name': 'v8testing', 'variant': 'stress_maglev_future'}, {'name': 'v8testing', 'variant': 'turbolev'}, {'name': 'v8testing', 'variant': 'minor_ms'}, - {'name': 'v8testing', 'variant': 'conservative_pinning'}, + {'name': 'v8testing', 'variant': 'conservative_stack_scanning'}, {'name': 'v8testing', 'variant': 'precise_pinning'}, ], }, @@ -2111,7 +2123,7 @@ {'name': 'v8testing', 'variant': 'stress_maglev_future'}, {'name': 'v8testing', 'variant': 'turbolev'}, {'name': 'v8testing', 'variant': 'minor_ms'}, - {'name': 'v8testing', 'variant': 'conservative_pinning'}, + {'name': 'v8testing', 'variant': 'conservative_stack_scanning'}, {'name': 'v8testing', 'variant': 'precise_pinning'}, ], }, @@ -2133,7 +2145,7 @@ {'name': 'v8testing', 'variant': 'stress_maglev_future'}, {'name': 'v8testing', 'variant': 'turbolev'}, {'name': 'v8testing', 'variant': 'minor_ms'}, - {'name': 'v8testing', 'variant': 'conservative_pinning'}, + {'name': 'v8testing', 'variant': 'conservative_stack_scanning'}, {'name': 'v8testing', 'variant': 'precise_pinning'}, ], }, @@ -2188,7 +2200,7 @@ {'name': 'v8testing', 'shards': 2}, {'name': 'v8testing', 'variant': 'extra', 'shards': 2}, {'name': 'v8testing', 'variant': 'minor_ms'}, - {'name': 'v8testing', 'variant': 'conservative_pinning'}, + {'name': 'v8testing', 'variant': 'conservative_stack_scanning'}, {'name': 'v8testing', 'variant': 'precise_pinning'}, ], }, @@ -2212,7 +2224,7 @@ {'name': 'v8testing', 'shards': 4}, {'name': 'v8testing', 'variant': 'extra', 'shards': 3}, {'name': 'v8testing', 'variant': 'minor_ms'}, - {'name': 'v8testing', 'variant': 'conservative_pinning'}, + {'name': 'v8testing', 'variant': 'conservative_stack_scanning'}, {'name': 'v8testing', 'variant': 'precise_pinning'}, ], }, @@ -2530,11 +2542,21 @@ {'name': 'v8testing', 'shards': 3}, ], }, + 'V8 Linux64 - arm64 - ASAN': { + 'swarming_dimensions': { + 'os': 'Linux', + 'cpu': 'arm64', + 'pool': 'v8.tests', + }, + 'tests': [ + {'name': 'v8testing', 'variant': 'default'}, + ], + }, 'V8 Linux64 - arm64': { 'swarming_dimensions': { 'os': 'Linux', 'cpu': 'arm64', - 'pool': 'chromium.tests', + 'pool': 'v8.tests', }, 'tests': [ {'name': 'v8testing', 'variant': 'default'}, @@ -2544,7 +2566,7 @@ 'swarming_dimensions': { 'os': 'Linux', 'cpu': 'arm64', - 'pool': 'chromium.tests', + 'pool': 'v8.tests', }, 'tests': [ {'name': 'v8testing', 'variant': 'default'}, @@ -2598,6 +2620,15 @@ }, 'tests': [ {'name': 'd8testing_random_gc', 'shards': 2}, + { + 'name': 'numfuzz', + 'suffix': 'allocation', + 'test_args': [ + '--total-timeout-sec=2100', + '--allocation-offset=1', + '--extra-flags=--gc-interval=500', + ] + }, { 'name': 'numfuzz', 'suffix': 'marking', @@ -2628,6 +2659,7 @@ 'suffix': 'combined', 'test_args': [ '--total-timeout-sec=2100', + '--allocation-offset=2', '--stress-delay-tasks=4', '--stress-deopt=2', '--stress-compaction=2', @@ -2653,41 +2685,51 @@ }, 'swarming_task_attrs': { 'expiration': 13800, - 'hard_timeout': 4200, + 'hard_timeout': 4800, 'priority': 35, }, 'tests': [ {'name': 'd8testing_random_gc', 'shards': 2}, + { + 'name': 'numfuzz', + 'suffix': 'allocation', + 'test_args': [ + '--total-timeout-sec=4200', + '--allocation-offset=1', + '--extra-flags=--gc-interval=500', + ] + }, { 'name': 'numfuzz', 'suffix': 'marking', - 'test_args': ['--total-timeout-sec=2100', '--stress-marking=1'] + 'test_args': ['--total-timeout-sec=4200', '--stress-marking=1'] }, { 'name': 'numfuzz', 'suffix': 'delay', - 'test_args': ['--total-timeout-sec=2100', '--stress-delay-tasks=1'] + 'test_args': ['--total-timeout-sec=4200', '--stress-delay-tasks=1'] }, { 'name': 'numfuzz', 'suffix': 'interrupt', - 'test_args': ['--total-timeout-sec=2100', '--stress-interrupt-budget=1'] + 'test_args': ['--total-timeout-sec=4200', '--stress-interrupt-budget=1'] }, { 'name': 'numfuzz', 'suffix': 'threads', - 'test_args': ['--total-timeout-sec=2100', '--stress-thread-pool-size=1'] + 'test_args': ['--total-timeout-sec=4200', '--stress-thread-pool-size=1'] }, { 'name': 'numfuzz', 'suffix': 'stack', - 'test_args': ['--total-timeout-sec=2100', '--stress-stack-size=1'] + 'test_args': ['--total-timeout-sec=4200', '--stress-stack-size=1'] }, { 'name': 'numfuzz', 'suffix': 'combined', 'test_args': [ - '--total-timeout-sec=2100', + '--total-timeout-sec=4200', + '--allocation-offset=2', '--stress-delay-tasks=4', '--stress-deopt=2', '--stress-compaction=2', @@ -2703,7 +2745,7 @@ { 'name': 'numfuzz', 'suffix': 'scavenge', - 'test_args': ['--total-timeout-sec=2100', '--stress-scavenge=1'] + 'test_args': ['--total-timeout-sec=4200', '--stress-scavenge=1'] }, ], }, @@ -2713,42 +2755,52 @@ }, 'swarming_task_attrs': { 'expiration': 13800, - 'hard_timeout': 4200, + 'hard_timeout': 4800, 'priority': 35, }, 'tests': [ {'name': 'd8testing_random_gc'}, + { + 'name': 'numfuzz', + 'suffix': 'allocation', + 'test_args': [ + '--total-timeout-sec=4200', + '--allocation-offset=1', + '--extra-flags=--gc-interval=500', + ] + }, { 'name': 'numfuzz', 'suffix': 'marking', - 'test_args': ['--total-timeout-sec=2100', '--stress-marking=1'], + 'test_args': ['--total-timeout-sec=4200', '--stress-marking=1'], 'shards': 2 }, { 'name': 'numfuzz', 'suffix': 'delay', - 'test_args': ['--total-timeout-sec=2100', '--stress-delay-tasks=1'] + 'test_args': ['--total-timeout-sec=4200', '--stress-delay-tasks=1'] }, { 'name': 'numfuzz', 'suffix': 'interrupt', - 'test_args': ['--total-timeout-sec=2100', '--stress-interrupt-budget=1'] + 'test_args': ['--total-timeout-sec=4200', '--stress-interrupt-budget=1'] }, { 'name': 'numfuzz', 'suffix': 'threads', - 'test_args': ['--total-timeout-sec=2100', '--stress-thread-pool-size=1'] + 'test_args': ['--total-timeout-sec=4200', '--stress-thread-pool-size=1'] }, { 'name': 'numfuzz', 'suffix': 'stack', - 'test_args': ['--total-timeout-sec=2100', '--stress-stack-size=1'] + 'test_args': ['--total-timeout-sec=4200', '--stress-stack-size=1'] }, { 'name': 'numfuzz', 'suffix': 'combined', 'test_args': [ - '--total-timeout-sec=2100', + '--total-timeout-sec=4200', + '--allocation-offset=2', '--stress-delay-tasks=4', '--stress-deopt=2', '--stress-compaction=2', @@ -2764,12 +2816,12 @@ { 'name': 'numfuzz', 'suffix': 'scavenge', - 'test_args': ['--total-timeout-sec=2100', '--stress-scavenge=1'] + 'test_args': ['--total-timeout-sec=4200', '--stress-scavenge=1'] }, { 'name': 'numfuzz', 'suffix': 'deopt', - 'test_args': ['--total-timeout-sec=2100', '--stress-deopt=1'], + 'test_args': ['--total-timeout-sec=4200', '--stress-deopt=1'], 'shards': 2 }, ], @@ -2796,6 +2848,15 @@ 'os': 'Ubuntu-22.04', }, 'tests': [ + { + 'name': 'numfuzz', + 'suffix': 'allocation', + 'test_args': [ + '--total-timeout-sec=900', + '--allocation-offset=1', + '--extra-flags=--gc-interval=500', + ] + }, { 'name': 'numfuzz', 'suffix': 'marking', @@ -2826,6 +2887,7 @@ 'suffix': 'combined', 'test_args': [ '--total-timeout-sec=900', + '--allocation-offset=2', '--stress-delay-tasks=4', '--stress-deopt=2', '--stress-compaction=2', @@ -2849,6 +2911,15 @@ 'os': 'Ubuntu-22.04', }, 'tests': [ + { + 'name': 'numfuzz', + 'suffix': 'allocation', + 'test_args': [ + '--total-timeout-sec=900', + '--allocation-offset=1', + '--extra-flags=--gc-interval=500', + ] + }, { 'name': 'numfuzz', 'suffix': 'marking', @@ -2879,6 +2950,7 @@ 'suffix': 'combined', 'test_args': [ '--total-timeout-sec=900', + '--allocation-offset=2', '--stress-delay-tasks=4', '--stress-deopt=2', '--stress-compaction=2', @@ -2902,6 +2974,15 @@ 'os': 'Ubuntu-22.04', }, 'tests': [ + { + 'name': 'numfuzz', + 'suffix': 'allocation', + 'test_args': [ + '--total-timeout-sec=900', + '--allocation-offset=1', + '--extra-flags=--gc-interval=500', + ] + }, { 'name': 'numfuzz', 'suffix': 'marking', @@ -2932,6 +3013,7 @@ 'suffix': 'combined', 'test_args': [ '--total-timeout-sec=900', + '--allocation-offset=2', '--stress-delay-tasks=4', '--stress-deopt=2', '--stress-compaction=2', diff --git a/deps/v8/infra/whitespace.txt b/deps/v8/infra/whitespace.txt index 7692b0d582ff77..15ba92a9a75e82 100644 --- a/deps/v8/infra/whitespace.txt +++ b/deps/v8/infra/whitespace.txt @@ -1 +1 @@ -Some infra-owned whitespace to test the cherry-picker. \ No newline at end of file +Some infra-owned whitespace to test the cherry-picker. diff --git a/deps/v8/src/DEPS b/deps/v8/src/DEPS index b4ad130ef2e487..085b7622777477 100644 --- a/deps/v8/src/DEPS +++ b/deps/v8/src/DEPS @@ -26,6 +26,8 @@ include_rules = [ "+src/heap/factory-inl.h", # TODO(v8:10496): Don't expose so much (through transitive includes) outside # of heap/. + "+src/heap/gc-callbacks.h", + "+src/heap/gc-callbacks-inl.h", "+src/heap/gc-tracer.h", "+src/heap/gc-tracer-inl.h", "+src/heap/heap.h", diff --git a/deps/v8/src/api/api-inl.h b/deps/v8/src/api/api-inl.h index 965ded69be67b7..8fce7e0a3790f3 100644 --- a/deps/v8/src/api/api-inl.h +++ b/deps/v8/src/api/api-inl.h @@ -11,52 +11,49 @@ #include "include/v8-fast-api-calls.h" #include "src/common/assert-scope.h" #include "src/execution/microtask-queue.h" +#include "src/execution/vm-state-inl.h" #include "src/flags/flags.h" #include "src/handles/handles-inl.h" #include "src/heap/heap-inl.h" +#include "src/logging/runtime-call-stats.h" #include "src/objects/foreign-inl.h" #include "src/objects/objects-inl.h" namespace v8 { template -inline T ToCData(i::Isolate* isolate, - v8::internal::Tagged obj) { - static_assert(sizeof(T) == sizeof(v8::internal::Address)); - if (obj == v8::internal::Smi::zero()) return nullptr; +inline T ToCData(i::Isolate* isolate, i::Tagged obj) { + static_assert(sizeof(T) == sizeof(i::Address)); + if (obj == i::Smi::zero()) return nullptr; return reinterpret_cast( - v8::internal::Cast(obj)->foreign_address( - isolate)); + i::Cast(obj)->foreign_address(isolate)); } template -inline v8::internal::Address ToCData( - i::Isolate* isolate, v8::internal::Tagged obj) { - if (obj == v8::internal::Smi::zero()) return v8::internal::kNullAddress; - return v8::internal::Cast(obj)->foreign_address( - isolate); +inline i::Address ToCData(i::Isolate* isolate, i::Tagged obj) { + if (obj == i::Smi::zero()) return i::kNullAddress; + return i::Cast(obj)->foreign_address(isolate); } template -inline v8::internal::DirectHandle> FromCData( - v8::internal::Isolate* isolate, T obj) { - static_assert(sizeof(T) == sizeof(v8::internal::Address)); - if (obj == nullptr) return direct_handle(v8::internal::Smi::zero(), isolate); - return isolate->factory()->NewForeign( - reinterpret_cast(obj)); +inline i::DirectHandle> FromCData( + i::Isolate* isolate, T obj) { + static_assert(sizeof(T) == sizeof(i::Address)); + if (obj == nullptr) return direct_handle(i::Smi::zero(), isolate); + return isolate->factory()->NewForeign(reinterpret_cast(obj)); } template -inline v8::internal::DirectHandle> FromCData( - v8::internal::Isolate* isolate, v8::internal::Address obj) { - if (obj == v8::internal::kNullAddress) { - return direct_handle(v8::internal::Smi::zero(), isolate); +inline i::DirectHandle> FromCData( + i::Isolate* isolate, i::Address obj) { + if (obj == i::kNullAddress) { + return direct_handle(i::Smi::zero(), isolate); } return isolate->factory()->NewForeign(obj); } template -inline Local Utils::Convert(v8::internal::DirectHandle obj) { +inline Local Utils::Convert(i::DirectHandle obj) { DCHECK(obj.is_null() || IsSmi(*obj) || !IsTheHole(*obj)); #ifdef V8_ENABLE_DIRECT_HANDLE if (obj.is_null()) return Local(); @@ -70,66 +67,54 @@ inline Local Utils::Convert(v8::internal::DirectHandle obj) { // Implementations of ToLocal -#define MAKE_TO_LOCAL(Name) \ - template