From b3c8e609fd1cb7e51011ec109b6ec646efaba429 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Tue, 19 Apr 2022 09:00:36 +0200 Subject: [PATCH] deps: update V8 to 10.2.154.2 PR-URL: https://github.com/nodejs/node/pull/42740 Reviewed-By: Jiawen Geng Reviewed-By: Richard Lau --- deps/v8/AUTHORS | 8 +- deps/v8/BUILD.bazel | 74 +- deps/v8/BUILD.gn | 40 +- deps/v8/DEPS | 125 +- deps/v8/bazel/config/BUILD.bazel | 9 + deps/v8/gni/OWNERS | 2 +- deps/v8/gni/release_branch_toggle.gni | 2 +- deps/v8/include/cppgc/default-platform.h | 9 - .../v8/include/cppgc/internal/api-constants.h | 3 + .../cppgc/internal/caged-heap-local-data.h | 35 +- .../include/cppgc/internal/finalizer-trait.h | 3 +- .../v8/include/cppgc/internal/write-barrier.h | 6 +- deps/v8/include/cppgc/type-traits.h | 19 +- deps/v8/include/js_protocol.pdl | 37 + deps/v8/include/v8-cppgc.h | 4 +- deps/v8/include/v8-inspector.h | 16 + deps/v8/include/v8-internal.h | 4 +- deps/v8/include/v8-metrics.h | 30 +- deps/v8/include/v8-script.h | 1 + deps/v8/include/v8-version.h | 6 +- deps/v8/infra/mb/mb_config.pyl | 2 - deps/v8/infra/testing/builders.pyl | 44 +- deps/v8/samples/cppgc/hello-world.cc | 2 +- deps/v8/src/api/api-arguments-inl.h | 69 +- deps/v8/src/api/api-macros.h | 9 +- deps/v8/src/api/api-natives.cc | 2 +- deps/v8/src/api/api.cc | 157 +- deps/v8/src/ast/OWNERS | 1 + deps/v8/src/ast/ast.cc | 22 + deps/v8/src/ast/ast.h | 24 +- deps/v8/src/base/atomic-utils.h | 9 + deps/v8/src/base/atomicops.h | 12 + deps/v8/src/base/bits.h | 10 + deps/v8/src/base/macros.h | 6 - deps/v8/src/base/once.h | 2 +- deps/v8/src/base/platform/platform-macos.cc | 27 + deps/v8/src/base/platform/platform-posix.cc | 18 + deps/v8/src/base/platform/platform-win32.cc | 32 +- deps/v8/src/base/platform/platform.h | 24 + deps/v8/src/base/template-utils.h | 47 - deps/v8/src/base/threaded-list.h | 11 + deps/v8/src/base/type-traits.h | 48 - .../baseline/arm/baseline-assembler-arm-inl.h | 29 +- .../arm64/baseline-assembler-arm64-inl.h | 29 +- deps/v8/src/baseline/baseline-assembler.h | 9 +- .../src/baseline/baseline-batch-compiler.cc | 8 +- deps/v8/src/baseline/baseline-compiler.cc | 59 +- .../ia32/baseline-assembler-ia32-inl.h | 33 +- .../loong64/baseline-assembler-loong64-inl.h | 17 +- .../mips/baseline-assembler-mips-inl.h | 17 +- .../mips64/baseline-assembler-mips64-inl.h | 17 +- .../baseline/ppc/baseline-assembler-ppc-inl.h | 246 ++- .../riscv64/baseline-assembler-riscv64-inl.h | 18 +- .../s390/baseline-assembler-s390-inl.h | 71 +- .../baseline/x64/baseline-assembler-x64-inl.h | 23 +- deps/v8/src/builtins/accessors.cc | 51 + deps/v8/src/builtins/accessors.h | 7 +- deps/v8/src/builtins/arm/builtins-arm.cc | 168 +- deps/v8/src/builtins/arm64/builtins-arm64.cc | 151 +- deps/v8/src/builtins/arraybuffer.tq | 7 +- deps/v8/src/builtins/base.tq | 4 +- deps/v8/src/builtins/builtins-api.cc | 1 - deps/v8/src/builtins/builtins-array.cc | 58 +- deps/v8/src/builtins/builtins-arraybuffer.cc | 31 +- deps/v8/src/builtins/builtins-callsite.cc | 3 +- deps/v8/src/builtins/builtins-date.cc | 86 +- deps/v8/src/builtins/builtins-definitions.h | 10 +- deps/v8/src/builtins/builtins-function.cc | 73 +- deps/v8/src/builtins/builtins-internal-gen.cc | 8 +- deps/v8/src/builtins/builtins-lazy-gen.cc | 78 +- deps/v8/src/builtins/builtins-lazy-gen.h | 8 +- .../v8/src/builtins/builtins-shadow-realms.cc | 44 +- .../src/builtins/builtins-shadowrealm-gen.cc | 94 +- .../builtins-sharedarraybuffer-gen.cc | 25 +- deps/v8/src/builtins/builtins-string-gen.cc | 15 - deps/v8/src/builtins/builtins-struct.cc | 2 +- deps/v8/src/builtins/builtins-temporal.cc | 79 +- deps/v8/src/builtins/builtins.cc | 2 +- deps/v8/src/builtins/cast.tq | 7 +- deps/v8/src/builtins/function.tq | 8 +- deps/v8/src/builtins/ia32/builtins-ia32.cc | 155 +- .../src/builtins/loong64/builtins-loong64.cc | 168 +- deps/v8/src/builtins/mips/builtins-mips.cc | 169 +- .../v8/src/builtins/mips64/builtins-mips64.cc | 166 +- deps/v8/src/builtins/object-fromentries.tq | 8 +- deps/v8/src/builtins/ppc/builtins-ppc.cc | 581 +++++-- deps/v8/src/builtins/promise-constructor.tq | 6 +- deps/v8/src/builtins/promise-misc.tq | 2 + .../src/builtins/riscv64/builtins-riscv64.cc | 158 +- deps/v8/src/builtins/s390/builtins-s390.cc | 203 ++- .../builtins/typed-array-createtypedarray.tq | 54 +- deps/v8/src/builtins/typed-array-set.tq | 16 +- deps/v8/src/builtins/typed-array-sort.tq | 41 +- deps/v8/src/builtins/wasm.tq | 7 +- deps/v8/src/builtins/x64/builtins-x64.cc | 224 +-- .../v8/src/codegen/arm/macro-assembler-arm.cc | 5 +- .../codegen/arm64/macro-assembler-arm64-inl.h | 56 +- .../codegen/arm64/macro-assembler-arm64.cc | 53 +- .../src/codegen/arm64/macro-assembler-arm64.h | 34 +- deps/v8/src/codegen/arm64/reglist-arm64.h | 8 +- deps/v8/src/codegen/bailout-reason.h | 1 + deps/v8/src/codegen/code-stub-assembler.cc | 7 + deps/v8/src/codegen/code-stub-assembler.h | 10 +- deps/v8/src/codegen/compiler.cc | 595 ++++--- deps/v8/src/codegen/compiler.h | 106 +- .../src/codegen/ia32/macro-assembler-ia32.cc | 5 +- deps/v8/src/codegen/interface-descriptors.h | 14 - .../loong64/macro-assembler-loong64.cc | 5 +- .../codegen/loong64/macro-assembler-loong64.h | 24 +- .../src/codegen/mips/macro-assembler-mips.cc | 5 +- deps/v8/src/codegen/mips/register-mips.h | 7 + .../codegen/mips64/macro-assembler-mips64.cc | 5 +- .../codegen/mips64/macro-assembler-mips64.h | 24 +- deps/v8/src/codegen/mips64/register-mips64.h | 7 + .../src/codegen/optimized-compilation-info.cc | 3 - deps/v8/src/codegen/ppc/assembler-ppc.cc | 121 +- deps/v8/src/codegen/ppc/assembler-ppc.h | 44 + deps/v8/src/codegen/ppc/constants-ppc.h | 115 +- .../v8/src/codegen/ppc/macro-assembler-ppc.cc | 35 +- deps/v8/src/codegen/ppc/macro-assembler-ppc.h | 18 +- deps/v8/src/codegen/register.h | 22 +- deps/v8/src/codegen/reloc-info.cc | 2 +- .../src/codegen/riscv64/assembler-riscv64.cc | 2 +- .../riscv64/macro-assembler-riscv64.cc | 5 +- .../codegen/riscv64/macro-assembler-riscv64.h | 35 +- .../src/codegen/s390/macro-assembler-s390.cc | 47 +- .../src/codegen/s390/macro-assembler-s390.h | 31 +- .../macro-assembler-shared-ia32-x64.cc | 6 +- deps/v8/src/codegen/tnode.h | 2 +- deps/v8/src/codegen/turbo-assembler.cc | 2 +- deps/v8/src/codegen/x64/assembler-x64.cc | 36 + deps/v8/src/codegen/x64/assembler-x64.h | 91 +- .../v8/src/codegen/x64/macro-assembler-x64.cc | 39 +- deps/v8/src/codegen/x64/macro-assembler-x64.h | 4 + deps/v8/src/common/globals.h | 115 +- deps/v8/src/common/message-template.h | 4 +- .../optimizing-compile-dispatcher.cc | 54 +- .../optimizing-compile-dispatcher.h | 14 +- .../backend/arm/code-generator-arm.cc | 7 + .../backend/arm64/code-generator-arm64.cc | 15 +- .../v8/src/compiler/backend/code-generator.cc | 25 +- deps/v8/src/compiler/backend/code-generator.h | 2 +- .../backend/ia32/code-generator-ia32.cc | 8 + .../backend/ia32/instruction-selector-ia32.cc | 6 +- .../compiler/backend/instruction-selector.cc | 41 +- .../compiler/backend/instruction-selector.h | 61 +- .../backend/mid-tier-register-allocator.cc | 2 +- .../backend/ppc/code-generator-ppc.cc | 98 +- .../backend/ppc/instruction-selector-ppc.cc | 14 +- .../backend/register-allocator-verifier.cc | 2 +- .../backend/riscv64/code-generator-riscv64.cc | 3 +- .../riscv64/instruction-selector-riscv64.cc | 64 +- .../backend/s390/code-generator-s390.cc | 13 +- .../backend/x64/code-generator-x64.cc | 127 +- .../backend/x64/instruction-selector-x64.cc | 26 +- .../compiler/branch-condition-duplicator.cc | 109 ++ .../compiler/branch-condition-duplicator.h | 85 + deps/v8/src/compiler/branch-elimination.cc | 5 +- deps/v8/src/compiler/bytecode-analysis.cc | 12 +- .../v8/src/compiler/bytecode-graph-builder.cc | 16 +- deps/v8/src/compiler/code-assembler.h | 36 +- .../src/compiler/common-operator-reducer.cc | 76 +- .../v8/src/compiler/common-operator-reducer.h | 8 +- deps/v8/src/compiler/common-operator.cc | 150 +- deps/v8/src/compiler/common-operator.h | 53 +- .../src/compiler/effect-control-linearizer.cc | 47 +- deps/v8/src/compiler/graph-assembler.cc | 32 +- deps/v8/src/compiler/graph-assembler.h | 7 +- deps/v8/src/compiler/graph-visualizer.cc | 256 ++- deps/v8/src/compiler/graph-visualizer.h | 30 + deps/v8/src/compiler/graph.h | 2 +- deps/v8/src/compiler/heap-refs.cc | 10 +- deps/v8/src/compiler/heap-refs.h | 3 +- deps/v8/src/compiler/js-call-reducer.cc | 554 +++---- deps/v8/src/compiler/js-call-reducer.h | 9 +- deps/v8/src/compiler/js-heap-broker.cc | 2 +- deps/v8/src/compiler/js-intrinsic-lowering.cc | 3 +- .../js-native-context-specialization.cc | 34 +- .../js-native-context-specialization.h | 7 +- deps/v8/src/compiler/js-type-hint-lowering.cc | 41 +- deps/v8/src/compiler/js-type-hint-lowering.h | 5 +- deps/v8/src/compiler/linkage.cc | 1 + .../src/compiler/machine-operator-reducer.cc | 128 +- .../src/compiler/machine-operator-reducer.h | 6 + deps/v8/src/compiler/opcodes.h | 1 + deps/v8/src/compiler/pipeline.cc | 133 +- deps/v8/src/compiler/pipeline.h | 6 +- deps/v8/src/compiler/raw-machine-assembler.h | 20 +- deps/v8/src/compiler/representation-change.cc | 21 +- deps/v8/src/compiler/representation-change.h | 2 +- .../compiler/simplified-lowering-verifier.cc | 75 +- .../compiler/simplified-lowering-verifier.h | 54 +- deps/v8/src/compiler/simplified-lowering.cc | 98 +- deps/v8/src/compiler/simplified-lowering.h | 5 +- .../compiler/simplified-operator-reducer.cc | 19 +- .../compiler/simplified-operator-reducer.h | 5 +- deps/v8/src/compiler/typer.cc | 1 + deps/v8/src/compiler/verifier.cc | 8 +- deps/v8/src/compiler/wasm-compiler.cc | 71 +- deps/v8/src/compiler/wasm-compiler.h | 11 +- deps/v8/src/compiler/wasm-inlining.cc | 187 ++- deps/v8/src/compiler/wasm-inlining.h | 65 +- deps/v8/src/d8/async-hooks-wrapper.cc | 23 +- deps/v8/src/d8/async-hooks-wrapper.h | 2 +- deps/v8/src/d8/d8.cc | 183 ++- deps/v8/src/d8/d8.h | 18 +- deps/v8/src/date/date.cc | 61 + deps/v8/src/date/date.h | 14 + deps/v8/src/debug/debug-evaluate.cc | 2 +- deps/v8/src/debug/debug-evaluate.h | 16 +- deps/v8/src/debug/debug-interface.cc | 48 +- deps/v8/src/debug/debug-interface.h | 7 + deps/v8/src/debug/debug.cc | 9 +- deps/v8/src/debug/debug.h | 6 +- .../v8/src/deoptimizer/arm/deoptimizer-arm.cc | 4 +- .../deoptimizer/arm64/deoptimizer-arm64.cc | 3 +- deps/v8/src/deoptimizer/deoptimizer.cc | 106 +- deps/v8/src/deoptimizer/deoptimizer.h | 30 +- .../src/deoptimizer/ia32/deoptimizer-ia32.cc | 3 +- .../loong64/deoptimizer-loong64.cc | 3 +- .../src/deoptimizer/mips/deoptimizer-mips.cc | 3 +- .../deoptimizer/mips64/deoptimizer-mips64.cc | 3 +- .../v8/src/deoptimizer/ppc/deoptimizer-ppc.cc | 4 +- .../riscv64/deoptimizer-riscv64.cc | 3 +- .../src/deoptimizer/s390/deoptimizer-s390.cc | 4 +- .../v8/src/deoptimizer/x64/deoptimizer-x64.cc | 4 +- deps/v8/src/diagnostics/objects-debug.cc | 18 +- deps/v8/src/diagnostics/objects-printer.cc | 2 +- deps/v8/src/diagnostics/perf-jit.cc | 1 + deps/v8/src/diagnostics/ppc/disasm-ppc.cc | 146 +- .../src/diagnostics/unwinding-info-win64.cc | 30 - deps/v8/src/diagnostics/x64/disasm-x64.cc | 16 + deps/v8/src/execution/arm/simulator-arm.cc | 4 +- .../v8/src/execution/arm64/simulator-arm64.cc | 4 +- deps/v8/src/execution/clobber-registers.cc | 25 +- deps/v8/src/execution/frames.cc | 4 +- deps/v8/src/execution/isolate-utils-inl.h | 6 +- deps/v8/src/execution/isolate.cc | 108 +- deps/v8/src/execution/isolate.h | 23 +- .../execution/loong64/simulator-loong64.cc | 12 +- deps/v8/src/execution/ppc/simulator-ppc.cc | 132 +- .../execution/riscv64/simulator-riscv64.cc | 32 +- .../src/execution/riscv64/simulator-riscv64.h | 8 + deps/v8/src/execution/stack-guard.cc | 12 + deps/v8/src/execution/stack-guard.h | 3 +- deps/v8/src/execution/thread-local-top.cc | 6 +- deps/v8/src/execution/thread-local-top.h | 10 +- deps/v8/src/execution/tiering-manager.cc | 233 +-- deps/v8/src/execution/tiering-manager.h | 10 +- .../v8/src/extensions/statistics-extension.cc | 16 +- deps/v8/src/flags/flag-definitions.h | 29 +- deps/v8/src/handles/global-handles.cc | 88 +- deps/v8/src/handles/handles.cc | 5 +- deps/v8/src/heap/array-buffer-sweeper.cc | 2 + deps/v8/src/heap/barrier.h | 87 -- deps/v8/src/heap/base-space.h | 12 +- deps/v8/src/heap/basic-memory-chunk.cc | 40 +- deps/v8/src/heap/basic-memory-chunk.h | 23 +- deps/v8/src/heap/code-range.cc | 28 +- deps/v8/src/heap/collection-barrier.cc | 1 - deps/v8/src/heap/concurrent-marking.cc | 1 + deps/v8/src/heap/cppgc-js/cpp-heap.cc | 178 ++- deps/v8/src/heap/cppgc-js/cpp-heap.h | 35 +- .../cppgc-js/unified-heap-marking-state-inl.h | 59 + .../cppgc-js/unified-heap-marking-state.cc | 32 + .../cppgc-js/unified-heap-marking-state.h | 38 +- .../cppgc-js/unified-heap-marking-visitor.cc | 34 +- .../cppgc-js/unified-heap-marking-visitor.h | 16 +- .../src/heap/cppgc/caged-heap-local-data.cc | 8 +- deps/v8/src/heap/cppgc/compactor.cc | 1 + deps/v8/src/heap/cppgc/concurrent-marker.cc | 18 +- deps/v8/src/heap/cppgc/concurrent-marker.h | 7 +- deps/v8/src/heap/cppgc/default-platform.cc | 14 - deps/v8/src/heap/cppgc/heap-base.cc | 17 +- deps/v8/src/heap/cppgc/heap-page.h | 3 +- deps/v8/src/heap/cppgc/heap.cc | 6 +- deps/v8/src/heap/cppgc/marker.cc | 46 +- deps/v8/src/heap/cppgc/marker.h | 54 +- deps/v8/src/heap/cppgc/marking-verifier.cc | 8 +- deps/v8/src/heap/cppgc/metric-recorder.h | 6 +- deps/v8/src/heap/cppgc/object-allocator.cc | 10 +- deps/v8/src/heap/cppgc/object-allocator.h | 2 + deps/v8/src/heap/cppgc/object-start-bitmap.h | 24 + deps/v8/src/heap/cppgc/pointer-policies.cc | 7 +- deps/v8/src/heap/cppgc/remembered-set.cc | 5 +- deps/v8/src/heap/cppgc/stats-collector.cc | 66 +- deps/v8/src/heap/cppgc/stats-collector.h | 15 +- deps/v8/src/heap/cppgc/sweeper.cc | 49 +- deps/v8/src/heap/cppgc/write-barrier.cc | 4 +- deps/v8/src/heap/factory-base.cc | 20 +- deps/v8/src/heap/factory-base.h | 4 + deps/v8/src/heap/factory.cc | 24 +- deps/v8/src/heap/factory.h | 3 + deps/v8/src/heap/gc-idle-time-handler.cc | 1 - deps/v8/src/heap/gc-tracer-inl.h | 174 +++ deps/v8/src/heap/gc-tracer.cc | 570 +++---- deps/v8/src/heap/gc-tracer.h | 137 +- deps/v8/src/heap/heap-allocator-inl.h | 6 +- deps/v8/src/heap/heap-allocator.cc | 9 +- deps/v8/src/heap/heap-allocator.h | 3 +- deps/v8/src/heap/heap.cc | 115 +- deps/v8/src/heap/heap.h | 10 + deps/v8/src/heap/incremental-marking-inl.h | 8 - deps/v8/src/heap/incremental-marking.cc | 149 +- deps/v8/src/heap/incremental-marking.h | 14 +- deps/v8/src/heap/large-spaces.cc | 42 +- deps/v8/src/heap/large-spaces.h | 34 +- deps/v8/src/heap/local-heap.cc | 3 +- deps/v8/src/heap/mark-compact.cc | 127 +- deps/v8/src/heap/mark-compact.h | 1 - deps/v8/src/heap/marking-barrier.h | 2 +- deps/v8/src/heap/marking-visitor-inl.h | 1 + deps/v8/src/heap/memory-allocator.cc | 410 ++--- deps/v8/src/heap/memory-allocator.h | 87 +- deps/v8/src/heap/memory-chunk-layout.cc | 3 +- deps/v8/src/heap/memory-chunk-layout.h | 1 - deps/v8/src/heap/memory-chunk.cc | 107 +- deps/v8/src/heap/memory-chunk.h | 23 +- deps/v8/src/heap/new-spaces-inl.h | 68 - deps/v8/src/heap/new-spaces.cc | 151 +- deps/v8/src/heap/new-spaces.h | 113 +- deps/v8/src/heap/objects-visiting.h | 2 + deps/v8/src/heap/paged-spaces-inl.h | 101 -- deps/v8/src/heap/paged-spaces.cc | 106 +- deps/v8/src/heap/paged-spaces.h | 99 +- deps/v8/src/heap/read-only-heap.cc | 6 +- deps/v8/src/heap/read-only-heap.h | 6 +- deps/v8/src/heap/read-only-spaces.cc | 41 +- deps/v8/src/heap/read-only-spaces.h | 15 +- deps/v8/src/heap/remembered-set.h | 45 +- deps/v8/src/heap/safepoint.cc | 42 +- deps/v8/src/heap/safepoint.h | 2 +- deps/v8/src/heap/scavenge-job.cc | 7 +- deps/v8/src/heap/scavenger.cc | 28 +- deps/v8/src/heap/scavenger.h | 1 - deps/v8/src/heap/setup-heap-internal.cc | 1 + deps/v8/src/heap/slot-set.cc | 30 +- deps/v8/src/heap/slot-set.h | 11 +- deps/v8/src/heap/spaces-inl.h | 116 ++ deps/v8/src/heap/spaces.cc | 47 +- deps/v8/src/heap/spaces.h | 83 +- deps/v8/src/heap/sweeper.cc | 148 +- deps/v8/src/heap/sweeper.h | 33 +- deps/v8/src/ic/accessor-assembler.cc | 83 +- deps/v8/src/ic/call-optimization.cc | 4 +- deps/v8/src/ic/ic.cc | 62 +- deps/v8/src/ic/ic.h | 4 +- deps/v8/src/ic/keyed-store-generic.cc | 328 ++-- deps/v8/src/ic/keyed-store-generic.h | 8 +- deps/v8/src/init/bootstrapper.cc | 114 +- deps/v8/src/init/v8.cc | 9 +- deps/v8/src/init/v8.h | 2 + deps/v8/src/inspector/BUILD.gn | 2 + deps/v8/src/inspector/injected-script.cc | 12 + deps/v8/src/inspector/v8-debugger.h | 7 +- .../v8/src/inspector/v8-runtime-agent-impl.cc | 30 +- deps/v8/src/inspector/v8-runtime-agent-impl.h | 2 + .../src/inspector/v8-webdriver-serializer.cc | 375 +++++ .../src/inspector/v8-webdriver-serializer.h | 25 + deps/v8/src/inspector/value-mirror.cc | 160 +- deps/v8/src/inspector/value-mirror.h | 3 + deps/v8/src/interpreter/bytecode-generator.cc | 58 +- deps/v8/src/interpreter/bytecode-generator.h | 4 +- deps/v8/src/interpreter/bytecode-register.cc | 2 + .../src/interpreter/control-flow-builders.cc | 15 +- .../src/interpreter/interpreter-assembler.cc | 10 +- .../src/interpreter/interpreter-assembler.h | 10 +- .../src/interpreter/interpreter-generator.cc | 46 +- deps/v8/src/logging/counters-definitions.h | 1 - deps/v8/src/logging/log.cc | 122 +- deps/v8/src/logging/log.h | 44 +- deps/v8/src/logging/runtime-call-stats.h | 7 +- deps/v8/src/maglev/OWNERS | 1 + deps/v8/src/maglev/maglev-code-gen-state.h | 73 +- deps/v8/src/maglev/maglev-code-generator.cc | 317 +++- deps/v8/src/maglev/maglev-compilation-info.cc | 6 + deps/v8/src/maglev/maglev-compilation-info.h | 6 - deps/v8/src/maglev/maglev-compilation-unit.cc | 14 +- deps/v8/src/maglev/maglev-compilation-unit.h | 21 + deps/v8/src/maglev/maglev-compiler.cc | 88 +- deps/v8/src/maglev/maglev-compiler.h | 12 +- .../maglev/maglev-concurrent-dispatcher.cc | 32 +- .../src/maglev/maglev-concurrent-dispatcher.h | 9 + deps/v8/src/maglev/maglev-graph-builder.cc | 585 +++++-- deps/v8/src/maglev/maglev-graph-builder.h | 302 +++- deps/v8/src/maglev/maglev-graph-printer.cc | 162 +- deps/v8/src/maglev/maglev-graph-printer.h | 7 +- deps/v8/src/maglev/maglev-graph-processor.h | 239 +-- deps/v8/src/maglev/maglev-graph-verifier.h | 143 ++ .../maglev/maglev-interpreter-frame-state.h | 348 +++-- deps/v8/src/maglev/maglev-ir.cc | 330 ++-- deps/v8/src/maglev/maglev-ir.h | 677 +++++--- deps/v8/src/maglev/maglev-regalloc.cc | 112 +- deps/v8/src/maglev/maglev-regalloc.h | 6 +- deps/v8/src/maglev/maglev-vreg-allocator.h | 2 - deps/v8/src/maglev/maglev.cc | 2 +- deps/v8/src/objects/call-site-info.cc | 18 +- deps/v8/src/objects/call-site-info.h | 1 + deps/v8/src/objects/code-inl.h | 184 ++- deps/v8/src/objects/code-kind.cc | 2 + deps/v8/src/objects/code-kind.h | 6 +- deps/v8/src/objects/code.cc | 224 ++- deps/v8/src/objects/code.h | 155 +- deps/v8/src/objects/code.tq | 12 +- deps/v8/src/objects/contexts-inl.h | 4 - deps/v8/src/objects/contexts.h | 5 +- deps/v8/src/objects/contexts.tq | 2 + deps/v8/src/objects/debug-objects-inl.h | 3 + deps/v8/src/objects/debug-objects.cc | 11 + deps/v8/src/objects/debug-objects.h | 13 + deps/v8/src/objects/debug-objects.tq | 5 + deps/v8/src/objects/elements.cc | 53 +- deps/v8/src/objects/feedback-vector-inl.h | 8 +- deps/v8/src/objects/feedback-vector.cc | 58 +- deps/v8/src/objects/feedback-vector.h | 44 +- deps/v8/src/objects/feedback-vector.tq | 8 +- deps/v8/src/objects/fixed-array-inl.h | 2 - deps/v8/src/objects/fixed-array.h | 13 - deps/v8/src/objects/js-array-buffer-inl.h | 39 +- deps/v8/src/objects/js-array-buffer.cc | 110 +- deps/v8/src/objects/js-array-buffer.h | 9 + deps/v8/src/objects/js-array-inl.h | 6 - deps/v8/src/objects/js-array.h | 6 - deps/v8/src/objects/js-function-inl.h | 51 +- deps/v8/src/objects/js-function.cc | 253 ++- deps/v8/src/objects/js-function.h | 46 +- deps/v8/src/objects/js-objects-inl.h | 22 +- deps/v8/src/objects/js-objects.cc | 117 +- deps/v8/src/objects/js-objects.h | 27 +- deps/v8/src/objects/js-temporal-objects.cc | 1392 ++++++++++++++++- deps/v8/src/objects/js-temporal-objects.h | 89 ++ deps/v8/src/objects/lookup.cc | 31 +- deps/v8/src/objects/lookup.h | 1 + deps/v8/src/objects/map-inl.h | 15 +- deps/v8/src/objects/map-updater.cc | 10 +- deps/v8/src/objects/map.cc | 41 +- deps/v8/src/objects/map.h | 4 +- deps/v8/src/objects/module.cc | 12 +- deps/v8/src/objects/object-macros.h | 10 + .../objects/objects-body-descriptors-inl.h | 23 +- deps/v8/src/objects/objects-definitions.h | 1 + deps/v8/src/objects/objects.cc | 86 +- deps/v8/src/objects/objects.h | 17 + deps/v8/src/objects/oddball-inl.h | 20 +- deps/v8/src/objects/oddball.h | 33 +- deps/v8/src/objects/oddball.tq | 2 +- .../src/objects/osr-optimized-code-cache.cc | 129 +- .../v8/src/objects/osr-optimized-code-cache.h | 93 +- deps/v8/src/objects/property-array-inl.h | 19 + deps/v8/src/objects/property-array.h | 4 + .../v8/src/objects/shared-function-info-inl.h | 3 + deps/v8/src/objects/shared-function-info.h | 5 +- deps/v8/src/objects/shared-function-info.tq | 1 + .../v8/src/objects/swiss-hash-table-helpers.h | 151 +- deps/v8/src/objects/tagged-field-inl.h | 23 + deps/v8/src/objects/tagged-field.h | 12 +- deps/v8/src/objects/value-serializer.cc | 36 +- deps/v8/src/objects/value-serializer.h | 5 +- .../src/profiler/heap-snapshot-generator.cc | 148 +- .../v8/src/profiler/heap-snapshot-generator.h | 10 +- deps/v8/src/profiler/profile-generator.cc | 37 +- deps/v8/src/profiler/profile-generator.h | 6 + .../regexp/arm/regexp-macro-assembler-arm.cc | 2 +- .../arm64/regexp-macro-assembler-arm64.cc | 4 +- .../loong64/regexp-macro-assembler-loong64.cc | 2 +- .../mips/regexp-macro-assembler-mips.cc | 2 +- .../mips64/regexp-macro-assembler-mips64.cc | 2 +- .../regexp/ppc/regexp-macro-assembler-ppc.cc | 2 +- .../riscv64/regexp-macro-assembler-riscv64.cc | 2 +- .../s390/regexp-macro-assembler-s390.cc | 2 +- deps/v8/src/roots/roots.h | 3 +- deps/v8/src/runtime/runtime-array.cc | 2 +- deps/v8/src/runtime/runtime-atomics.cc | 31 +- deps/v8/src/runtime/runtime-compiler.cc | 250 ++- deps/v8/src/runtime/runtime-internal.cc | 14 + deps/v8/src/runtime/runtime-object.cc | 27 +- deps/v8/src/runtime/runtime-shadow-realm.cc | 22 + deps/v8/src/runtime/runtime-test.cc | 135 +- deps/v8/src/runtime/runtime-wasm.cc | 22 +- deps/v8/src/runtime/runtime.h | 39 +- deps/v8/src/snapshot/code-serializer.cc | 159 +- deps/v8/src/snapshot/code-serializer.h | 3 +- deps/v8/src/snapshot/context-deserializer.cc | 8 +- deps/v8/src/snapshot/context-serializer.cc | 83 +- deps/v8/src/snapshot/context-serializer.h | 2 +- deps/v8/src/snapshot/deserializer.cc | 29 +- .../src/snapshot/embedded/embedded-data-inl.h | 159 ++ .../v8/src/snapshot/embedded/embedded-data.cc | 72 +- deps/v8/src/snapshot/embedded/embedded-data.h | 71 +- .../snapshot/embedded/embedded-file-writer.cc | 2 + .../platform-embedded-file-writer-aix.cc | 7 +- .../platform-embedded-file-writer-base.h | 1 + .../platform-embedded-file-writer-generic.cc | 5 + .../platform-embedded-file-writer-mac.cc | 18 + .../platform-embedded-file-writer-mac.h | 1 + .../platform-embedded-file-writer-win.cc | 7 +- .../v8/src/snapshot/read-only-deserializer.cc | 2 +- deps/v8/src/snapshot/read-only-serializer.cc | 16 +- deps/v8/src/snapshot/roots-serializer.cc | 2 +- .../v8/src/snapshot/serializer-deserializer.h | 7 +- deps/v8/src/snapshot/serializer.cc | 311 ++-- deps/v8/src/snapshot/serializer.h | 24 +- .../v8/src/snapshot/shared-heap-serializer.cc | 19 +- deps/v8/src/snapshot/snapshot.cc | 4 - deps/v8/src/snapshot/startup-serializer.cc | 12 +- deps/v8/src/torque/constants.h | 3 + deps/v8/src/torque/implementation-visitor.cc | 40 +- deps/v8/src/torque/torque-parser.cc | 6 +- deps/v8/src/torque/types.h | 21 +- deps/v8/src/trap-handler/handler-outside.cc | 2 + deps/v8/src/trap-handler/trap-handler.h | 2 +- deps/v8/src/utils/memcopy.cc | 2 +- deps/v8/src/utils/utils.h | 18 +- .../wasm/baseline/arm/liftoff-assembler-arm.h | 49 +- .../baseline/arm64/liftoff-assembler-arm64.h | 29 +- .../baseline/ia32/liftoff-assembler-ia32.h | 117 +- .../v8/src/wasm/baseline/liftoff-assembler.cc | 60 +- deps/v8/src/wasm/baseline/liftoff-assembler.h | 7 +- deps/v8/src/wasm/baseline/liftoff-compiler.cc | 167 +- deps/v8/src/wasm/baseline/liftoff-register.h | 18 +- .../loong64/liftoff-assembler-loong64.h | 65 +- .../baseline/mips/liftoff-assembler-mips.h | 55 +- .../mips64/liftoff-assembler-mips64.h | 62 +- .../wasm/baseline/ppc/liftoff-assembler-ppc.h | 23 +- .../riscv64/liftoff-assembler-riscv64.h | 165 +- .../baseline/s390/liftoff-assembler-s390.h | 144 +- .../wasm/baseline/x64/liftoff-assembler-x64.h | 34 +- deps/v8/src/wasm/canonical-types.cc | 155 ++ deps/v8/src/wasm/canonical-types.h | 125 ++ deps/v8/src/wasm/function-body-decoder-impl.h | 2 +- deps/v8/src/wasm/function-body-decoder.cc | 1 + deps/v8/src/wasm/function-compiler.cc | 7 +- deps/v8/src/wasm/function-compiler.h | 4 +- deps/v8/src/wasm/graph-builder-interface.cc | 14 +- deps/v8/src/wasm/init-expr-interface.cc | 2 +- deps/v8/src/wasm/module-compiler.cc | 84 +- deps/v8/src/wasm/module-decoder.cc | 46 +- deps/v8/src/wasm/module-instantiate.cc | 45 +- deps/v8/src/wasm/struct-types.h | 12 +- deps/v8/src/wasm/value-type.h | 84 +- deps/v8/src/wasm/wasm-arguments.h | 4 +- deps/v8/src/wasm/wasm-code-manager.cc | 11 +- deps/v8/src/wasm/wasm-engine.h | 5 + deps/v8/src/wasm/wasm-external-refs.cc | 2 +- deps/v8/src/wasm/wasm-js.cc | 38 +- deps/v8/src/wasm/wasm-limits.h | 2 +- deps/v8/src/wasm/wasm-module-builder.cc | 22 +- deps/v8/src/wasm/wasm-module-builder.h | 19 + deps/v8/src/wasm/wasm-module.h | 44 +- deps/v8/src/wasm/wasm-objects-inl.h | 4 +- deps/v8/src/wasm/wasm-objects.cc | 17 +- deps/v8/src/wasm/wasm-objects.h | 10 +- deps/v8/src/wasm/wasm-objects.tq | 1 + deps/v8/src/wasm/wasm-subtyping.cc | 35 +- deps/v8/src/wasm/wasm-subtyping.h | 20 +- deps/v8/src/wasm/wasm-value.h | 6 +- deps/v8/src/web-snapshot/web-snapshot.cc | 26 +- deps/v8/src/web-snapshot/web-snapshot.h | 7 +- deps/v8/test/cctest/BUILD.gn | 2 - deps/v8/test/cctest/cctest.cc | 283 ++-- deps/v8/test/cctest/cctest.h | 152 +- .../compiler/test-instruction-scheduler.cc | 11 +- deps/v8/test/cctest/heap/heap-utils.cc | 3 + .../cctest/heap/test-array-buffer-tracker.cc | 4 +- .../test/cctest/heap/test-embedder-tracing.cc | 1020 ------------ deps/v8/test/cctest/heap/test-heap.cc | 29 +- .../cctest/heap/test-incremental-marking.cc | 19 +- .../cctest/heap/test-memory-measurement.cc | 14 +- deps/v8/test/cctest/heap/test-spaces.cc | 58 +- deps/v8/test/cctest/heap/test-unmapper.cc | 15 +- .../test/cctest/heap/test-weak-references.cc | 5 +- .../ClassAndSuperClass.golden | 20 +- .../CompareBoolean.golden | 368 +++++ .../PrivateAccessorAccess.golden | 22 +- .../PrivateMethodAccess.golden | 18 +- .../StaticPrivateMethodAccess.golden | 70 +- .../interpreter/test-bytecode-generator.cc | 56 + deps/v8/test/cctest/test-allocation.cc | 28 +- deps/v8/test/cctest/test-api-accessors.cc | 61 + deps/v8/test/cctest/test-api.cc | 48 +- deps/v8/test/cctest/test-assembler-arm64.cc | 8 +- deps/v8/test/cctest/test-assembler-ia32.cc | 7 +- deps/v8/test/cctest/test-assembler-x64.cc | 47 + deps/v8/test/cctest/test-debug.cc | 44 +- deps/v8/test/cctest/test-disasm-x64.cc | 29 +- .../test/cctest/test-field-type-tracking.cc | 4 +- deps/v8/test/cctest/test-heap-profiler.cc | 14 +- deps/v8/test/cctest/test-js-to-wasm.cc | 1 + deps/v8/test/cctest/test-js-weak-refs.cc | 3 +- deps/v8/test/cctest/test-log.cc | 3 - .../test/cctest/test-macro-assembler-arm.cc | 7 +- .../test/cctest/test-macro-assembler-arm64.cc | 7 +- .../cctest/test-macro-assembler-loong64.cc | 7 +- .../test/cctest/test-macro-assembler-mips.cc | 7 +- .../cctest/test-macro-assembler-mips64.cc | 7 +- .../cctest/test-macro-assembler-riscv64.cc | 7 +- .../test/cctest/test-macro-assembler-x64.cc | 7 +- deps/v8/test/cctest/test-profile-generator.cc | 52 +- deps/v8/test/cctest/test-roots.cc | 1 + deps/v8/test/cctest/test-serialize.cc | 2 +- deps/v8/test/cctest/test-trace-event.cc | 45 +- .../test/cctest/test-unwinder-code-pages.cc | 2 +- deps/v8/test/cctest/test-weakmaps.cc | 2 +- deps/v8/test/cctest/wasm/test-gc.cc | 74 +- .../cctest/wasm/test-streaming-compilation.cc | 28 +- deps/v8/test/cctest/wasm/test-wasm-metrics.cc | 34 +- deps/v8/test/cctest/wasm/wasm-run-utils.cc | 2 +- deps/v8/test/cctest/wasm/wasm-run-utils.h | 2 +- deps/v8/test/fuzzer/inspector/regress-1307449 | 529 +++++++ .../inspector/cpu-profiler/coverage-block.js | 1 + .../test/inspector/cpu-profiler/coverage.js | 1 + .../class-private-methods-static-expected.txt | 4 +- .../class-private-methods-unused-expected.txt | 8 +- .../get-possible-breakpoints-expected.txt | 6 +- .../debugger/get-possible-breakpoints.js | 6 +- deps/v8/test/inspector/isolate-data.cc | 14 +- .../runtime/add-web-driver-value-expected.txt | 633 ++++++++ .../inspector/runtime/add-web-driver-value.js | 132 ++ .../runtime/remote-object-expected.txt | 68 +- .../test/inspector/runtime/remote-object.js | 36 + deps/v8/test/intl/intl.status | 8 + deps/v8/test/js-perf-test/Array/includes.js | 67 - deps/v8/test/js-perf-test/Array/index-of.js | 67 - deps/v8/test/js-perf-test/Array/run.js | 3 - .../js-perf-test/BytecodeHandlers/compare.js | 114 ++ deps/v8/test/js-perf-test/JSTests2.json | 21 +- deps/v8/test/js-perf-test/JSTests3.json | 1 + deps/v8/test/js-perf-test/JSTests5.json | 12 + .../ObjectDestructuringAssignment/run.js | 98 ++ deps/v8/test/message/message.status | 28 +- ...ename-\360\237\216\205\360\237\216\204.js" | 5 + ...name-\360\237\216\205\360\237\216\204.out" | 1 + .../async-stack-traces-promise-all-settled.js | 45 + .../test/mjsunit/compiler/regress-1302572.js | 15 + deps/v8/test/mjsunit/es6/destructuring.js | 2 +- .../es6/typedarray-construct-by-array-like.js | 36 - deps/v8/test/mjsunit/es6/typedarray.js | 2 +- ...prototype-groupby-fast-path-assumptions.js | 37 + ...xtensible-global-proxy-no-lazy-feedback.js | 7 + ...index-fields-nonextensible-global-proxy.js | 25 + ...xtensible-global-proxy-no-lazy-feedback.js | 7 + ...ivate-fields-nonextensible-global-proxy.js | 25 + ...erence-logical-assignment-short-circuit.js | 135 ++ .../mjsunit/harmony/shadowrealm-evaluate.js | 6 +- .../shadowrealm-wrapped-function-bind.js | 25 + ...hadowrealm-wrapped-function-props-stack.js | 18 + .../shadowrealm-wrapped-function-props.js | 121 ++ .../harmony/typedarray-set-length-detach.js | 19 - deps/v8/test/mjsunit/maglev/19.js | 25 + deps/v8/test/mjsunit/maglev/add-smi.js | 41 + .../maglev/argument-over-under-application.js | 21 + .../lazy-deopt-with-onstack-activation.js | 33 + .../lazy-deopt-without-onstack-activation.js | 24 + deps/v8/test/mjsunit/mjsunit.js | 36 +- deps/v8/test/mjsunit/mjsunit.status | 38 +- .../test/mjsunit/optimized-array-includes.js | 358 ----- .../test/mjsunit/optimized-array-indexof.js | 360 ----- .../test/mjsunit/optimized-string-includes.js | 152 ++ .../test/mjsunit/regress/regress-1309769.js | 15 + .../test/mjsunit/regress/regress-1312022.js | 42 + .../test/mjsunit/regress/regress-1312310.js | 7 + .../test/mjsunit/regress/regress-1313419.js | 27 + .../test/mjsunit/regress/regress-1313475.js | 9 + .../v8/test/mjsunit/regress/regress-331444.js | 44 - .../v8/test/mjsunit/regress/regress-454725.js | 42 - .../v8/test/mjsunit/regress/regress-840106.js | 17 - .../regress-crbug-1302527-no-lazy-feedback.js | 7 + .../mjsunit/regress/regress-crbug-1302527.js | 612 ++++++++ .../mjsunit/regress/regress-crbug-1306929.js | 9 + .../mjsunit/regress/regress-crbug-1307310.js | 19 + .../test/mjsunit/regress/regress-v8-10817.js | 7 + .../test/mjsunit/regress/regress-v8-11614.js | 17 + .../test/mjsunit/regress/regress-v8-12219.js | 11 + .../test/mjsunit/regress/regress-v8-12421.js | 140 +- .../test/mjsunit/regress/regress-v8-12632.js | 17 + .../test/mjsunit/regress/regress-v8-12705.js | 11 + .../mjsunit/regress/regress-v8-12729-1.mjs | 9 + .../test/mjsunit/regress/regress-v8-12729.mjs | 8 + .../test/mjsunit/regress/regress-v8-12762.js | 23 + .../test/mjsunit/regress/regress-v8-5697.js | 8 +- .../mjsunit/regress/wasm/regress-1299183.js | 215 +++ .../mjsunit/regress/wasm/regress-1308333.js | 260 +++ .../mjsunit/regress/wasm/regress-1314363.js | 17 + .../shared-memory/shared-struct-atomics.js | 16 +- .../shared-struct-without-map-space.js | 12 + deps/v8/test/mjsunit/smi-ops-inlined.js | 2 +- deps/v8/test/mjsunit/smi-ops.js | 2 +- .../test/mjsunit/stack-traces-class-fields.js | 8 +- .../test/mjsunit/temporal/duration-negated.js | 2 +- deps/v8/test/mjsunit/testcfg.py | 6 +- deps/v8/test/mjsunit/thin-strings.js | 15 + .../typedarray-growablesharedarraybuffer.js | 117 ++ deps/v8/test/mjsunit/typedarray-helpers.js | 18 + .../typedarray-resizablearraybuffer-detach.js | 143 +- .../typedarray-resizablearraybuffer.js | 345 ++-- deps/v8/test/mjsunit/wasm/call-ref.js | 3 +- .../mjsunit/wasm/compilation-hints-decoder.js | 34 +- deps/v8/test/mjsunit/wasm/generic-wrapper.js | 23 + .../mjsunit/wasm/imported-function-types.js | 3 +- .../v8/test/mjsunit/wasm/reference-globals.js | 2 - deps/v8/test/mjsunit/wasm/reference-tables.js | 4 +- ...aybuffer-growablesharedarraybuffer-wasm.js | 15 + .../wasm/runtime-type-canonicalization.js | 67 + .../test/mjsunit/wasm/speculative-inlining.js | 2 - deps/v8/test/mjsunit/wasm/worker-memory.js | 8 +- ...worker-running-empty-loop-interruptible.js | 32 + deps/v8/test/mkgrokdump/mkgrokdump.cc | 1 + deps/v8/test/mozilla/testcfg.py | 1 - deps/v8/test/test262/test262.status | 344 ++-- deps/v8/test/test262/testcfg.py | 3 - deps/v8/test/unittests/BUILD.gn | 4 +- .../unittests/api/deserialize-unittest.cc | 2 +- .../base/platform/platform-unittest.cc | 25 + .../unittests/base/template-utils-unittest.cc | 57 - .../compiler-dispatcher-unittest.cc | 11 +- .../optimizing-compile-dispatcher-unittest.cc | 5 +- .../compiler/bytecode-analysis-unittest.cc | 8 +- .../common-operator-reducer-unittest.cc | 75 +- .../compiler/graph-reducer-unittest.cc | 8 +- .../instruction-selector-ia32-unittest.cc | 25 + .../unittests/compiler/persistent-unittest.cc | 6 +- .../compiler/simplified-lowering-unittest.cc | 3 +- .../simplified-operator-reducer-unittest.cc | 3 +- .../x64/instruction-selector-x64-unittest.cc | 145 ++ .../unittests/compiler/zone-stats-unittest.cc | 2 +- .../execution/microtask-queue-unittest.cc | 11 +- .../test/unittests/heap/barrier-unittest.cc | 153 -- .../heap/cppgc/allocation-unittest.cc | 16 +- .../heap/cppgc/garbage-collected-unittest.cc | 3 +- .../heap/cppgc/metric-recorder-unittest.cc | 108 +- .../unittests/heap/cppgc/minor-gc-unittest.cc | 5 +- .../unittests/heap/cppgc/run-all-unittests.cc | 17 +- deps/v8/test/unittests/heap/cppgc/tests.cc | 20 +- .../heap/embedder-tracing-unittest.cc | 1000 +++++++++++- .../test/unittests/heap/gc-tracer-unittest.cc | 98 +- deps/v8/test/unittests/heap/heap-utils.h | 36 +- .../heap/lab-unittest.cc} | 227 ++- .../test/unittests/heap/slot-set-unittest.cc | 4 +- .../test/unittests/heap/unmapper-unittest.cc | 57 +- ...ngle-threaded-default-platform-unittest.cc | 82 + .../logging/runtime-call-stats-unittest.cc | 13 +- .../osr-optimized-code-cache-unittest.cc | 215 +-- .../swiss-hash-table-helpers-unittest.cc | 109 ++ .../objects/value-serializer-unittest.cc | 48 +- deps/v8/test/unittests/run-all-unittests.cc | 29 +- .../tasks/background-compile-task-unittest.cc | 8 +- deps/v8/test/unittests/test-utils.cc | 18 + deps/v8/test/unittests/test-utils.h | 196 ++- deps/v8/test/unittests/testcfg.py | 3 - .../unittests/utils/allocation-unittest.cc | 10 +- .../wasm/function-body-decoder-unittest.cc | 35 +- .../unittests/wasm/module-decoder-unittest.cc | 59 +- .../test/unittests/wasm/subtyping-unittest.cc | 107 +- .../wasm/trap-handler-win-unittest.cc | 3 +- .../unittests/zone/zone-allocator-unittest.cc | 14 +- .../zone/zone-chunk-list-unittest.cc | 33 +- deps/v8/test/unittests/zone/zone-unittest.cc | 9 +- deps/v8/test/wasm-api-tests/testcfg.py | 3 - .../src/googletest/include/gtest/gtest_prod.h | 4 +- .../v8/third_party/inspector_protocol/roll.py | 5 +- deps/v8/third_party/zlib/README.chromium | 3 +- .../contrib/optimizations/inffast_chunk.c | 28 +- .../zlib/contrib/optimizations/inflate.c | 14 +- deps/v8/third_party/zlib/crc32.c | 6 +- deps/v8/third_party/zlib/deflate.c | 34 +- deps/v8/third_party/zlib/google/zip.cc | 27 +- deps/v8/third_party/zlib/google/zip.h | 6 + deps/v8/third_party/zlib/google/zip_reader.cc | 192 ++- deps/v8/third_party/zlib/google/zip_reader.h | 33 +- .../zlib/google/zip_reader_unittest.cc | 18 +- .../third_party/zlib/google/zip_unittest.cc | 564 ++++++- deps/v8/third_party/zlib/gzguts.h | 2 +- deps/v8/third_party/zlib/gzlib.c | 4 +- deps/v8/third_party/zlib/gzread.c | 10 +- deps/v8/third_party/zlib/gzwrite.c | 25 +- deps/v8/third_party/zlib/inffast.c | 28 +- deps/v8/third_party/zlib/inflate.c | 14 +- deps/v8/third_party/zlib/inflate.h | 3 +- .../zlib/patches/0009-infcover-oob.patch | 24 + deps/v8/third_party/zlib/trees.c | 5 +- deps/v8/third_party/zlib/zlib.h | 26 +- deps/v8/third_party/zlib/zutil.c | 4 +- deps/v8/third_party/zlib/zutil.h | 8 - deps/v8/tools/PRESUBMIT.py | 3 +- .../tools/chrome/linux-perf-renderer-cmd.sh | 45 + deps/v8/tools/chrome/linux_perf.py | 207 +++ .../v8/tools/clusterfuzz/foozzie/PRESUBMIT.py | 6 +- .../tools/clusterfuzz/foozzie/v8_foozzie.py | 2 +- .../clusterfuzz/foozzie/v8_foozzie_test.py | 2 +- .../clusterfuzz/js_fuzzer/foozzie_launcher.py | 8 +- deps/v8/tools/csvparser.mjs | 18 +- .../tools/debug_helper/gen-heap-constants.py | 2 +- deps/v8/tools/disasm.py | 2 +- deps/v8/tools/dumpcpp.mjs | 6 +- deps/v8/tools/gcmole/BUILD.gn | 2 +- deps/v8/tools/gcmole/gcmole.cc | 3 - deps/v8/tools/gcmole/gcmole.py | 61 +- deps/v8/tools/gcmole/run-gcmole.py | 5 +- ...{suspects.whitelist => suspects.allowlist} | 0 deps/v8/tools/get_landmines.py | 5 +- deps/v8/tools/grokdump.py | 113 +- deps/v8/tools/js/helper.mjs | 19 +- .../v8/tools/js/log-file-reader-template.html | 38 +- deps/v8/tools/js/web-api-helper.mjs | 60 +- deps/v8/tools/logreader.mjs | 121 +- deps/v8/tools/mb/PRESUBMIT.py | 3 +- .../tools/mb/{mb_unittest.py => mb_test.py} | 431 ++--- deps/v8/tools/parse-processor.mjs | 19 +- deps/v8/tools/profile.mjs | 36 +- deps/v8/tools/run.py | 4 +- deps/v8/tools/run_perf.py | 27 +- deps/v8/tools/system-analyzer/app-model.mjs | 13 +- deps/v8/tools/system-analyzer/helper.mjs | 36 +- deps/v8/tools/system-analyzer/index.css | 19 +- deps/v8/tools/system-analyzer/index.html | 14 +- deps/v8/tools/system-analyzer/index.mjs | 151 +- deps/v8/tools/system-analyzer/log/api.mjs | 24 - deps/v8/tools/system-analyzer/log/code.mjs | 62 +- deps/v8/tools/system-analyzer/log/timer.mjs | 4 +- deps/v8/tools/system-analyzer/processor.mjs | 91 +- .../view/code-panel-template.html | 4 + .../tools/system-analyzer/view/code-panel.mjs | 160 +- deps/v8/tools/system-analyzer/view/events.mjs | 4 +- .../view/property-link-table-template.html | 48 +- .../view/property-link-table.mjs | 34 +- .../view/script-panel-template.html | 2 +- .../system-analyzer/view/script-panel.mjs | 3 +- .../system-analyzer/view/timeline-panel.mjs | 27 +- .../view/timeline/timeline-track-base.mjs | 208 ++- .../view/timeline/timeline-track-map.mjs | 119 +- .../timeline/timeline-track-stacked-base.mjs | 17 +- .../timeline/timeline-track-template.html | 45 +- .../view/timeline/timeline-track-tick.mjs | 9 +- .../view/tool-tip-template.html | 21 +- .../tools/system-analyzer/view/tool-tip.mjs | 6 + deps/v8/tools/testrunner/PRESUBMIT.py | 17 +- deps/v8/tools/testrunner/base_runner.py | 8 - deps/v8/tools/testrunner/local/command.py | 15 +- .../v8/tools/testrunner/local/junit_output.py | 49 - deps/v8/tools/testrunner/local/pool.py | 5 +- .../local/{pool_unittest.py => pool_test.py} | 19 +- deps/v8/tools/testrunner/local/statusfile.py | 4 - ...tusfile_unittest.py => statusfile_test.py} | 62 +- ...estsuite_unittest.py => testsuite_test.py} | 23 +- deps/v8/tools/testrunner/local/utils.py | 3 - deps/v8/tools/testrunner/local/variants.py | 11 +- deps/v8/tools/testrunner/local/verbose.py | 3 - deps/v8/tools/testrunner/num_fuzzer.py | 6 +- deps/v8/tools/testrunner/objects/testcase.py | 16 +- deps/v8/tools/testrunner/outproc/base.py | 11 +- deps/v8/tools/testrunner/outproc/message.py | 5 +- deps/v8/tools/testrunner/standard_runner.py | 5 +- deps/v8/tools/testrunner/testproc/combiner.py | 3 - deps/v8/tools/testrunner/testproc/progress.py | 81 +- ...{sequence_unittest.py => sequence_test.py} | 83 +- .../{shard_unittest.py => shard_test.py} | 25 +- deps/v8/tools/testrunner/testproc/sigproc.py | 3 - deps/v8/tools/testrunner/testproc/timeout.py | 1 - deps/v8/tools/testrunner/testproc/util.py | 2 +- .../{util_unittest.py => util_test.py} | 34 +- .../{variant_unittest.py => variant_test.py} | 42 +- .../testrunner/utils/dump_build_config_gyp.py | 3 - deps/v8/tools/tickprocessor.mjs | 8 +- deps/v8/tools/torque/format-torque.py | 21 +- deps/v8/tools/turbolizer/info-view.html | 8 + deps/v8/tools/turbolizer/src/edge.ts | 35 +- deps/v8/tools/turbolizer/src/graph-layout.ts | 6 +- deps/v8/tools/turbolizer/src/graph-view.ts | 50 +- deps/v8/tools/turbolizer/src/graph.ts | 4 +- .../v8/tools/turbolizer/src/graphmultiview.ts | 39 +- deps/v8/tools/turbolizer/src/node.ts | 3 +- deps/v8/tools/turbolizer/src/selection.ts | 8 +- .../tools/turbolizer/src/source-resolver.ts | 6 +- deps/v8/tools/turbolizer/src/text-view.ts | 10 +- deps/v8/tools/turbolizer/src/view.ts | 6 +- deps/v8/tools/unittests/__init__.py | 2 +- .../unittests/compare_torque_output_test.py | 13 +- deps/v8/tools/unittests/run_perf_test.py | 28 +- deps/v8/tools/unittests/run_tests_test.py | 11 +- deps/v8/tools/unittests/v8_presubmit_test.py | 2 +- deps/v8/tools/v8_presubmit.py | 102 +- deps/v8/tools/v8heapconst.py | 701 ++++----- 882 files changed, 29302 insertions(+), 15793 deletions(-) delete mode 100644 deps/v8/src/base/type-traits.h create mode 100644 deps/v8/src/compiler/branch-condition-duplicator.cc create mode 100644 deps/v8/src/compiler/branch-condition-duplicator.h delete mode 100644 deps/v8/src/heap/barrier.h create mode 100644 deps/v8/src/heap/cppgc-js/unified-heap-marking-state-inl.h create mode 100644 deps/v8/src/heap/cppgc-js/unified-heap-marking-state.cc delete mode 100644 deps/v8/src/heap/cppgc/default-platform.cc create mode 100644 deps/v8/src/heap/gc-tracer-inl.h create mode 100644 deps/v8/src/inspector/v8-webdriver-serializer.cc create mode 100644 deps/v8/src/inspector/v8-webdriver-serializer.h create mode 100644 deps/v8/src/maglev/maglev-graph-verifier.h create mode 100644 deps/v8/src/runtime/runtime-shadow-realm.cc create mode 100644 deps/v8/src/snapshot/embedded/embedded-data-inl.h create mode 100644 deps/v8/src/wasm/canonical-types.cc create mode 100644 deps/v8/src/wasm/canonical-types.h delete mode 100644 deps/v8/test/cctest/heap/test-embedder-tracing.cc create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/CompareBoolean.golden create mode 100644 deps/v8/test/fuzzer/inspector/regress-1307449 create mode 100644 deps/v8/test/inspector/runtime/add-web-driver-value-expected.txt create mode 100644 deps/v8/test/inspector/runtime/add-web-driver-value.js delete mode 100644 deps/v8/test/js-perf-test/Array/includes.js delete mode 100644 deps/v8/test/js-perf-test/Array/index-of.js create mode 100644 deps/v8/test/js-perf-test/ObjectDestructuringAssignment/run.js create mode 100644 "deps/v8/test/message/unicode-filename-\360\237\216\205\360\237\216\204.js" create mode 100644 "deps/v8/test/message/unicode-filename-\360\237\216\205\360\237\216\204.out" create mode 100644 deps/v8/test/mjsunit/async-stack-traces-promise-all-settled.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-1302572.js create mode 100644 deps/v8/test/mjsunit/harmony/array-prototype-groupby-fast-path-assumptions.js create mode 100644 deps/v8/test/mjsunit/harmony/index-fields-nonextensible-global-proxy-no-lazy-feedback.js create mode 100644 deps/v8/test/mjsunit/harmony/index-fields-nonextensible-global-proxy.js create mode 100644 deps/v8/test/mjsunit/harmony/private-fields-nonextensible-global-proxy-no-lazy-feedback.js create mode 100644 deps/v8/test/mjsunit/harmony/private-fields-nonextensible-global-proxy.js create mode 100644 deps/v8/test/mjsunit/harmony/private-reference-logical-assignment-short-circuit.js create mode 100644 deps/v8/test/mjsunit/harmony/shadowrealm-wrapped-function-bind.js create mode 100644 deps/v8/test/mjsunit/harmony/shadowrealm-wrapped-function-props-stack.js create mode 100644 deps/v8/test/mjsunit/harmony/shadowrealm-wrapped-function-props.js delete mode 100644 deps/v8/test/mjsunit/harmony/typedarray-set-length-detach.js create mode 100644 deps/v8/test/mjsunit/maglev/19.js create mode 100644 deps/v8/test/mjsunit/maglev/add-smi.js create mode 100644 deps/v8/test/mjsunit/maglev/argument-over-under-application.js create mode 100644 deps/v8/test/mjsunit/maglev/lazy-deopt-with-onstack-activation.js create mode 100644 deps/v8/test/mjsunit/maglev/lazy-deopt-without-onstack-activation.js delete mode 100644 deps/v8/test/mjsunit/optimized-array-includes.js delete mode 100644 deps/v8/test/mjsunit/optimized-array-indexof.js create mode 100644 deps/v8/test/mjsunit/optimized-string-includes.js create mode 100644 deps/v8/test/mjsunit/regress/regress-1309769.js create mode 100644 deps/v8/test/mjsunit/regress/regress-1312022.js create mode 100644 deps/v8/test/mjsunit/regress/regress-1312310.js create mode 100644 deps/v8/test/mjsunit/regress/regress-1313419.js create mode 100644 deps/v8/test/mjsunit/regress/regress-1313475.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-331444.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-454725.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-840106.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-1302527-no-lazy-feedback.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-1302527.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-1306929.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-1307310.js create mode 100644 deps/v8/test/mjsunit/regress/regress-v8-10817.js create mode 100644 deps/v8/test/mjsunit/regress/regress-v8-11614.js create mode 100644 deps/v8/test/mjsunit/regress/regress-v8-12219.js create mode 100644 deps/v8/test/mjsunit/regress/regress-v8-12632.js create mode 100644 deps/v8/test/mjsunit/regress/regress-v8-12705.js create mode 100644 deps/v8/test/mjsunit/regress/regress-v8-12729-1.mjs create mode 100644 deps/v8/test/mjsunit/regress/regress-v8-12729.mjs create mode 100644 deps/v8/test/mjsunit/regress/regress-v8-12762.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-1299183.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-1308333.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-1314363.js create mode 100644 deps/v8/test/mjsunit/shared-memory/shared-struct-without-map-space.js create mode 100644 deps/v8/test/mjsunit/wasm/resizablearraybuffer-growablesharedarraybuffer-wasm.js create mode 100644 deps/v8/test/mjsunit/wasm/runtime-type-canonicalization.js create mode 100644 deps/v8/test/mjsunit/wasm/worker-running-empty-loop-interruptible.js delete mode 100644 deps/v8/test/unittests/heap/barrier-unittest.cc rename deps/v8/test/{cctest/heap/test-lab.cc => unittests/heap/lab-unittest.cc} (56%) create mode 100644 deps/v8/test/unittests/libplatform/single-threaded-default-platform-unittest.cc create mode 100644 deps/v8/test/unittests/objects/swiss-hash-table-helpers-unittest.cc create mode 100644 deps/v8/third_party/zlib/patches/0009-infcover-oob.patch create mode 100755 deps/v8/tools/chrome/linux-perf-renderer-cmd.sh create mode 100755 deps/v8/tools/chrome/linux_perf.py rename deps/v8/tools/gcmole/{suspects.whitelist => suspects.allowlist} (100%) rename deps/v8/tools/mb/{mb_unittest.py => mb_test.py} (64%) delete mode 100644 deps/v8/tools/system-analyzer/log/api.mjs delete mode 100644 deps/v8/tools/testrunner/local/junit_output.py rename deps/v8/tools/testrunner/local/{pool_unittest.py => pool_test.py} (82%) rename deps/v8/tools/testrunner/local/{statusfile_unittest.py => statusfile_test.py} (72%) rename deps/v8/tools/testrunner/local/{testsuite_unittest.py => testsuite_test.py} (82%) rename deps/v8/tools/testrunner/testproc/{sequence_unittest.py => sequence_test.py} (74%) rename deps/v8/tools/testrunner/testproc/{shard_unittest.py => shard_test.py} (70%) rename deps/v8/tools/testrunner/testproc/{util_unittest.py => util_test.py} (63%) rename deps/v8/tools/testrunner/testproc/{variant_unittest.py => variant_test.py} (86%) diff --git a/deps/v8/AUTHORS b/deps/v8/AUTHORS index f05ba729c58624..e095f812659d7a 100644 --- a/deps/v8/AUTHORS +++ b/deps/v8/AUTHORS @@ -41,6 +41,7 @@ Meteor Development Group <*@meteor.com> Cloudflare, Inc. <*@cloudflare.com> Julia Computing, Inc. <*@juliacomputing.com> CodeWeavers, Inc. <*@codeweavers.com> +Alibaba, Inc. <*@alibaba-inc.com> Aaron Bieber Aaron O'Mullan @@ -90,9 +91,11 @@ Daniel Bevenius Daniel Dromboski Daniel James Daniel Shelton +Danylo Boiko Darshan Sen David Carlier David Manouchehri +David Sanders Deepak Mohan Deon Dior Derek Tu @@ -115,6 +118,7 @@ Gus Caplan Gwang Yoon Hwang Haichuan Wang Hannu Trey +Harshal Nandigramwar Harshil Jain Henrique Ferreiro Hirofumi Mako @@ -135,7 +139,6 @@ Javad Amiri Jay Freeman Jesper van den Ende Ji Qiu -Jianghua Yang Jiawen Geng Jiaxun Yang Joel Stanley @@ -198,8 +201,6 @@ Peter Rybin Peter Varga Peter Wong PhistucK -Qingyan Li -Qiuyi Zhang Rafal Krypa Raul Tambre Ray Glover @@ -248,6 +249,7 @@ Vladimir Shutoff Wael Almattar Wei Wu Wenlu Wang +Wenming Yang Wenyu Zhao Wiktor Garbacz Wouter Vermeiren diff --git a/deps/v8/BUILD.bazel b/deps/v8/BUILD.bazel index bc18ab8c27b987..279e3e55a0dca8 100644 --- a/deps/v8/BUILD.bazel +++ b/deps/v8/BUILD.bazel @@ -44,7 +44,6 @@ load(":bazel/v8-non-pointer-compression.bzl", "v8_binary_non_pointer_compression # v8_enable_builtins_profiling # v8_enable_builtins_profiling_verbose # v8_builtins_profiling_log_file -# v8_enable_short_builtin_calls # v8_enable_external_code_space # v8_postmortem_support # v8_use_siphash @@ -231,6 +230,62 @@ selects.config_setting_group( ], ) +# We use a string flag to create a 3 value-logic. +# If no explicit value for v8_enable_short_builtin_calls, we set it to 'none'. +v8_string( + name = "v8_enable_short_builtin_calls", + default = "none", +) + +# Default setting for v8_enable_pointer_compression. +config_setting( + name = "v8_enable_short_builtin_calls_is_none", + flag_values = { + ":v8_enable_short_builtin_calls": "none", + }, +) + +# Explicity defined v8_enable_pointer_compression. +config_setting( + name = "v8_enable_short_builtin_calls_is_true", + flag_values = { + ":v8_enable_short_builtin_calls": "True", + }, +) + +# Default setting for v8_enable_short_builtin_calls when target is x64. +# Disable short calls when pointer compression is not enabled. +selects.config_setting_group( + name = "v8_target_x64_default_short_builtin_calls", + match_all = [ + ":v8_enable_short_builtin_calls_is_none", + "@v8//bazel/config:v8_target_x64", + ":is_v8_enable_pointer_compression", + ], +) + +# Default setting for v8_enable_short_builtin_calls when target is arm64, but not Android. +selects.config_setting_group( + name = "v8_target_arm64_default_short_builtin_calls", + match_all = [ + ":v8_enable_short_builtin_calls_is_none", + "@v8//bazel/config:v8_target_arm64", + "@v8//bazel/config:is_not_android", + ], +) + +# v8_enable_short_builtin_calls is valid whenever it is explicitly defined +# or we have the default settings for targets x64 and arm64. +# TODO(victorgomes): v8_enable_short_builtin_calls should not be enabled when CFI is enabled. +selects.config_setting_group( + name = "is_v8_enable_short_builtin_calls", + match_any = [ + ":v8_enable_short_builtin_calls_is_true", + ":v8_target_x64_default_short_builtin_calls", + ":v8_target_arm64_default_short_builtin_calls", + ], +) + # Enable -rdynamic. selects.config_setting_group( name = "should_add_rdynamic", @@ -339,6 +394,11 @@ v8_config( "V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE", ], "//conditions:default": [], + }) + select({ + ":is_v8_enable_short_builtin_calls": [ + "V8_SHORT_BUILTIN_CALLS", + ], + "//conditions:default": [], }) + select({ ":is_v8_enable_test_features": [ "V8_ENABLE_ALLOCATION_TIMEOUT", @@ -606,7 +666,6 @@ filegroup( "src/base/template-utils.h", "src/base/timezone-cache.h", "src/base/threaded-list.h", - "src/base/type-traits.h", "src/base/utils/random-number-generator.cc", "src/base/utils/random-number-generator.h", "src/base/vector.h", @@ -1305,7 +1364,6 @@ filegroup( "src/heap/allocation-stats.h", "src/heap/array-buffer-sweeper.cc", "src/heap/array-buffer-sweeper.h", - "src/heap/barrier.h", "src/heap/base-space.cc", "src/heap/base-space.h", "src/heap/basic-memory-chunk.cc", @@ -1331,7 +1389,9 @@ filegroup( "src/heap/cppgc-js/cpp-marking-state-inl.h", "src/heap/cppgc-js/cpp-snapshot.cc", "src/heap/cppgc-js/cpp-snapshot.h", + "src/heap/cppgc-js/unified-heap-marking-state.cc", "src/heap/cppgc-js/unified-heap-marking-state.h", + "src/heap/cppgc-js/unified-heap-marking-state-inl.h", "src/heap/cppgc-js/unified-heap-marking-verifier.cc", "src/heap/cppgc-js/unified-heap-marking-verifier.h", "src/heap/cppgc-js/unified-heap-marking-visitor.cc", @@ -1353,6 +1413,7 @@ filegroup( "src/heap/gc-idle-time-handler.cc", "src/heap/gc-idle-time-handler.h", "src/heap/gc-tracer.cc", + "src/heap/gc-tracer-inl.h", "src/heap/gc-tracer.h", "src/heap/heap-allocator-inl.h", "src/heap/heap-allocator.cc", @@ -1930,6 +1991,7 @@ filegroup( "src/runtime/runtime-proxy.cc", "src/runtime/runtime-regexp.cc", "src/runtime/runtime-scopes.cc", + "src/runtime/runtime-shadow-realm.cc", "src/runtime/runtime-strings.cc", "src/runtime/runtime-symbol.cc", "src/runtime/runtime-test.cc", @@ -1964,6 +2026,7 @@ filegroup( "src/snapshot/deserializer.cc", "src/snapshot/deserializer.h", "src/snapshot/embedded/embedded-data.cc", + "src/snapshot/embedded/embedded-data-inl.h", "src/snapshot/embedded/embedded-data.h", "src/snapshot/embedded/embedded-file-writer-interface.h", "src/snapshot/object-deserializer.cc", @@ -2374,6 +2437,8 @@ filegroup( "src/wasm/baseline/liftoff-compiler.h", "src/wasm/baseline/liftoff-register.h", "src/wasm/branch-hint-map.h", + "src/wasm/canonical-types.cc", + "src/wasm/canonical-types.h", "src/wasm/code-space-access.cc", "src/wasm/code-space-access.h", "src/wasm/compilation-environment.h", @@ -2550,6 +2615,8 @@ filegroup( "src/compiler/backend/unwinding-info-writer.h", "src/compiler/basic-block-instrumentor.cc", "src/compiler/basic-block-instrumentor.h", + "src/compiler/branch-condition-duplicator.cc", + "src/compiler/branch-condition-duplicator.h", "src/compiler/branch-elimination.cc", "src/compiler/branch-elimination.h", "src/compiler/bytecode-analysis.cc", @@ -2857,7 +2924,6 @@ filegroup( "src/heap/cppgc/compactor.h", "src/heap/cppgc/concurrent-marker.cc", "src/heap/cppgc/concurrent-marker.h", - "src/heap/cppgc/default-platform.cc", "src/heap/cppgc/explicit-management.cc", "src/heap/cppgc/free-list.cc", "src/heap/cppgc/free-list.h", diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn index 9e801d2455b314..988c907d964a25 100644 --- a/deps/v8/BUILD.gn +++ b/deps/v8/BUILD.gn @@ -299,7 +299,7 @@ declare_args() { # Enable the experimental V8 sandbox. # Sets -DV8_SANDBOX. - v8_enable_sandbox = false + v8_enable_sandbox = "" # Enable external pointer sandboxing. Requires v8_enable_sandbox. # Sets -DV8_SANDBOXED_EXTERNAL_POINRTERS. @@ -421,13 +421,10 @@ if (v8_enable_short_builtin_calls == "") { v8_current_cpu == "x64" || (!is_android && v8_current_cpu == "arm64") } if (v8_enable_external_code_space == "") { - # Can't use !is_android here, because Torque toolchain is affected by - # the value of this flag but actually runs on the host side. v8_enable_external_code_space = v8_enable_pointer_compression && (v8_current_cpu == "x64" || - (target_os != "android" && target_os != "fuchsia" && - v8_current_cpu == "arm64")) + (target_os != "fuchsia" && v8_current_cpu == "arm64")) } if (v8_enable_maglev == "") { v8_enable_maglev = v8_current_cpu == "x64" && v8_enable_pointer_compression @@ -474,7 +471,8 @@ if (v8_multi_arch_build && # Check if it is a Chromium build and activate PAC/BTI if needed. # TODO(cavalcantii): have a single point of integration with PAC/BTI flags. if (build_with_chromium && v8_current_cpu == "arm64" && - arm_control_flow_integrity == "standard") { + (arm_control_flow_integrity == "standard" || + arm_control_flow_integrity == "pac")) { v8_control_flow_integrity = true } @@ -492,10 +490,12 @@ if (v8_enable_shared_ro_heap == "") { v8_enable_pointer_compression_shared_cage } -# Enable the v8 sandbox on 64-bit Chromium builds. -if (build_with_chromium && v8_enable_pointer_compression_shared_cage && - v8_enable_external_code_space) { - v8_enable_sandbox = true +if (v8_enable_sandbox == "") { + # TODO(saelo, v8:11880) remove dependency on v8_enable_external_code_space + # once that is enabled everywhere by default. + v8_enable_sandbox = + build_with_chromium && v8_enable_pointer_compression_shared_cage && + v8_enable_external_code_space } # Enable all available sandbox features if sandbox future is enabled. @@ -1044,8 +1044,8 @@ config("toolchain") { defines += [ "V8_TARGET_ARCH_ARM64" ] if (current_cpu == "arm64") { # This will enable PAC+BTI in code generation and static code. - if (v8_control_flow_integrity) { - # TODO(v8:10026): Enable this in src/build. + if (v8_control_flow_integrity && + (!build_with_chromium || arm_control_flow_integrity == "standard")) { cflags += [ "-mbranch-protection=standard" ] asmflags = [ "-mmark-bti-property" ] } else if (build_with_chromium && arm_control_flow_integrity == "pac") { @@ -1179,6 +1179,9 @@ config("toolchain") { #FIXME: Temporarily use MIPS macro for the building. defines += [ "CAN_USE_FPU_INSTRUCTIONS" ] + if (target_is_simulator) { + defines += [ "CAN_USE_RVV_INSTRUCTIONS" ] + } } if (v8_current_cpu == "x86") { @@ -2778,6 +2781,7 @@ v8_header_set("v8_internal_headers") { "src/compiler/backend/spill-placer.h", "src/compiler/backend/unwinding-info-writer.h", "src/compiler/basic-block-instrumentor.h", + "src/compiler/branch-condition-duplicator.h", "src/compiler/branch-elimination.h", "src/compiler/bytecode-analysis.h", "src/compiler/bytecode-graph-builder.h", @@ -2963,7 +2967,6 @@ v8_header_set("v8_internal_headers") { "src/heap/allocation-result.h", "src/heap/allocation-stats.h", "src/heap/array-buffer-sweeper.h", - "src/heap/barrier.h", "src/heap/base-space.h", "src/heap/basic-memory-chunk.h", "src/heap/code-object-registry.h", @@ -2978,6 +2981,7 @@ v8_header_set("v8_internal_headers") { "src/heap/cppgc-js/cpp-marking-state-inl.h", "src/heap/cppgc-js/cpp-marking-state.h", "src/heap/cppgc-js/cpp-snapshot.h", + "src/heap/cppgc-js/unified-heap-marking-state-inl.h", "src/heap/cppgc-js/unified-heap-marking-state.h", "src/heap/cppgc-js/unified-heap-marking-verifier.h", "src/heap/cppgc-js/unified-heap-marking-visitor.h", @@ -2993,6 +2997,7 @@ v8_header_set("v8_internal_headers") { "src/heap/free-list-inl.h", "src/heap/free-list.h", "src/heap/gc-idle-time-handler.h", + "src/heap/gc-tracer-inl.h", "src/heap/gc-tracer.h", "src/heap/heap-allocator-inl.h", "src/heap/heap-allocator.h", @@ -3390,6 +3395,7 @@ v8_header_set("v8_internal_headers") { "src/snapshot/context-deserializer.h", "src/snapshot/context-serializer.h", "src/snapshot/deserializer.h", + "src/snapshot/embedded/embedded-data-inl.h", "src/snapshot/embedded/embedded-data.h", "src/snapshot/embedded/embedded-file-writer-interface.h", "src/snapshot/object-deserializer.h", @@ -3479,6 +3485,7 @@ v8_header_set("v8_internal_headers") { "src/maglev/maglev-graph-labeller.h", "src/maglev/maglev-graph-printer.h", "src/maglev/maglev-graph-processor.h", + "src/maglev/maglev-graph-verifier.h", "src/maglev/maglev-graph.h", "src/maglev/maglev-interpreter-frame-state.h", "src/maglev/maglev-ir.h", @@ -3510,6 +3517,7 @@ v8_header_set("v8_internal_headers") { "src/wasm/baseline/liftoff-assembler.h", "src/wasm/baseline/liftoff-compiler.h", "src/wasm/baseline/liftoff-register.h", + "src/wasm/canonical-types.h", "src/wasm/code-space-access.h", "src/wasm/compilation-environment.h", "src/wasm/decoder.h", @@ -3890,6 +3898,7 @@ v8_compiler_sources = [ "src/compiler/backend/register-allocator.cc", "src/compiler/backend/spill-placer.cc", "src/compiler/basic-block-instrumentor.cc", + "src/compiler/branch-condition-duplicator.cc", "src/compiler/branch-elimination.cc", "src/compiler/bytecode-analysis.cc", "src/compiler/bytecode-graph-builder.cc", @@ -4227,6 +4236,7 @@ v8_source_set("v8_base_without_compiler") { "src/heap/concurrent-marking.cc", "src/heap/cppgc-js/cpp-heap.cc", "src/heap/cppgc-js/cpp-snapshot.cc", + "src/heap/cppgc-js/unified-heap-marking-state.cc", "src/heap/cppgc-js/unified-heap-marking-verifier.cc", "src/heap/cppgc-js/unified-heap-marking-visitor.cc", "src/heap/embedder-tracing.cc", @@ -4445,6 +4455,7 @@ v8_source_set("v8_base_without_compiler") { "src/runtime/runtime-proxy.cc", "src/runtime/runtime-regexp.cc", "src/runtime/runtime-scopes.cc", + "src/runtime/runtime-shadow-realm.cc", "src/runtime/runtime-strings.cc", "src/runtime/runtime-symbol.cc", "src/runtime/runtime-test.cc", @@ -4535,6 +4546,7 @@ v8_source_set("v8_base_without_compiler") { "src/trap-handler/handler-shared.cc", "src/wasm/baseline/liftoff-assembler.cc", "src/wasm/baseline/liftoff-compiler.cc", + "src/wasm/canonical-types.cc", "src/wasm/code-space-access.cc", "src/wasm/function-body-decoder.cc", "src/wasm/function-compiler.cc", @@ -5185,7 +5197,6 @@ v8_component("v8_libbase") { "src/base/template-utils.h", "src/base/threaded-list.h", "src/base/timezone-cache.h", - "src/base/type-traits.h", "src/base/utils/random-number-generator.cc", "src/base/utils/random-number-generator.h", "src/base/v8-fallthrough.h", @@ -5603,7 +5614,6 @@ v8_source_set("cppgc_base") { "src/heap/cppgc/compactor.h", "src/heap/cppgc/concurrent-marker.cc", "src/heap/cppgc/concurrent-marker.h", - "src/heap/cppgc/default-platform.cc", "src/heap/cppgc/explicit-management.cc", "src/heap/cppgc/free-list.cc", "src/heap/cppgc/free-list.h", diff --git a/deps/v8/DEPS b/deps/v8/DEPS index 61577d45ab6c23..54ac85a4bdbb8a 100644 --- a/deps/v8/DEPS +++ b/deps/v8/DEPS @@ -40,10 +40,10 @@ vars = { 'reclient_version': 're_client_version:0.40.0.40ff5a5', # GN CIPD package version. - 'gn_version': 'git_revision:bd99dbf98cbdefe18a4128189665c5761263bcfb', + 'gn_version': 'git_revision:ae110f8b525009255ba1f9ae96982176d3bfad3d', # luci-go CIPD package version. - 'luci_go': 'git_revision:cb424e70e75136736a86359ef070aa96425fe7a3', + 'luci_go': 'git_revision:6da0608e4fa8a3c6d1fa4f855485c0038b05bf72', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling android_sdk_build-tools_version @@ -83,9 +83,9 @@ deps = { 'base/trace_event/common': Var('chromium_url') + '/chromium/src/base/trace_event/common.git' + '@' + 'd115b033c4e53666b535cbd1985ffe60badad082', 'build': - Var('chromium_url') + '/chromium/src/build.git' + '@' + '3d9590754d5d23e62d15472c5baf6777ca59df20', + Var('chromium_url') + '/chromium/src/build.git' + '@' + 'b37c340767cf9e7777d4ca5a588c34c5744df9b2', 'buildtools': - Var('chromium_url') + '/chromium/src/buildtools.git' + '@' + '113dd1badbcbffea108a8c95ac7c89c22bfd25f3', + Var('chromium_url') + '/chromium/src/buildtools.git' + '@' + 'c2e4795660817c2776dbabd778b92ed58c074032', 'buildtools/clang_format/script': Var('chromium_url') + '/external/github.com/llvm/llvm-project/clang/tools/clang-format.git' + '@' + 'e435ad79c17b1888b34df88d6a30a094936e3836', 'buildtools/linux64': { @@ -111,9 +111,9 @@ deps = { 'buildtools/third_party/libc++/trunk': Var('chromium_url') + '/external/github.com/llvm/llvm-project/libcxx.git' + '@' + '79a2e924d96e2fc1e4b937c42efd08898fa472d7', 'buildtools/third_party/libc++abi/trunk': - Var('chromium_url') + '/external/github.com/llvm/llvm-project/libcxxabi.git' + '@' + 'a897d0f3f8e8c28ac2abf848f3b695b724409298', + Var('chromium_url') + '/external/github.com/llvm/llvm-project/libcxxabi.git' + '@' + 'e025ba5dc85202540099d7cd8e72eae2d4ee9e33', 'buildtools/third_party/libunwind/trunk': - Var('chromium_url') + '/external/github.com/llvm/llvm-project/libunwind.git' + '@' + 'd1c7f92b8b0bff8d9f710ca40e44563a63db376e', + Var('chromium_url') + '/external/github.com/llvm/llvm-project/libunwind.git' + '@' + 'c39fea88739be63a2d5590a938ce19d762b915fc', 'buildtools/win': { 'packages': [ { @@ -139,7 +139,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' + '@' + 'f7fb969cc4934bbc5aa29a378d59325eaa84f475', + Var('chromium_url') + '/external/github.com/tc39/test262.git' + '@' + 'd7c0a2076c2b0c1531aef7069d4abe70eec44ee3', 'third_party/aemu-linux-x64': { 'packages': [ { @@ -161,11 +161,11 @@ deps = { 'dep_type': 'cipd', }, 'third_party/android_ndk': { - 'url': Var('chromium_url') + '/android_ndk.git' + '@' + '9644104c8cf85bf1bdce5b1c0691e9778572c3f8', + 'url': Var('chromium_url') + '/android_ndk.git' + '@' + '8388a2be5421311dc75c5f937aae13d821a27f3d', 'condition': 'checkout_android', }, 'third_party/android_platform': { - 'url': Var('chromium_url') + '/chromium/src/third_party/android_platform.git' + '@' + '87b4b48de3c8204224d63612c287eb5a447a562d', + 'url': Var('chromium_url') + '/chromium/src/third_party/android_platform.git' + '@' + '2760db43ffc8b074cb7960c90b5254f74a5c299a', 'condition': 'checkout_android', }, 'third_party/android_sdk/public': { @@ -207,7 +207,7 @@ deps = { 'dep_type': 'cipd', }, 'third_party/catapult': { - 'url': Var('chromium_url') + '/catapult.git' + '@' + 'b3fe2c177912640bc676b332a2f41dc812ea5843', + 'url': Var('chromium_url') + '/catapult.git' + '@' + '3a1ae18f882d024686144edbec3050aae055f146', 'condition': 'checkout_android', }, 'third_party/colorama/src': { @@ -215,18 +215,18 @@ deps = { 'condition': 'checkout_android', }, 'third_party/depot_tools': - Var('chromium_url') + '/chromium/tools/depot_tools.git' + '@' + 'b199f549263a02900faef8c8c3d581c580e837c3', + Var('chromium_url') + '/chromium/tools/depot_tools.git' + '@' + '3b97fa826eee4bd1978c4c049038b1e4f201e8f2', 'third_party/fuchsia-sdk': { 'url': Var('chromium_url') + '/chromium/src/third_party/fuchsia-sdk.git' + '@' + '7c9c220d13ab367d49420144a257886ebfbce278', 'condition': 'checkout_fuchsia', }, 'third_party/google_benchmark/src': { - 'url': Var('chromium_url') + '/external/github.com/google/benchmark.git' + '@' + '5704cd4c8cea889d68f9ae29ca5aaee97ef91816', + 'url': Var('chromium_url') + '/external/github.com/google/benchmark.git' + '@' + 'dc901ff9090e2b931433790cc44afc3af3b09ab2', }, 'third_party/googletest/src': - Var('chromium_url') + '/external/github.com/google/googletest.git' + '@' + 'ae5e06dd35c6137d335331b0815cf1f60fd7e3c5', + Var('chromium_url') + '/external/github.com/google/googletest.git' + '@' + 'af29db7ec28d6df1c7f0f745186884091e602e07', 'third_party/icu': - Var('chromium_url') + '/chromium/deps/icu.git' + '@' + '8a5b728e4f43b0eabdb9ea450f956d67cfb22719', + Var('chromium_url') + '/chromium/deps/icu.git' + '@' + '1fd0dbea04448c3f73fe5cb7599f9472f0f107f1', 'third_party/instrumented_libraries': Var('chromium_url') + '/chromium/src/third_party/instrumented_libraries.git' + '@' + 'e09c4b66b6e87116eb190651421f1a6e2f3b9c52', 'third_party/ittapi': { @@ -272,19 +272,9 @@ deps = { 'condition': 'checkout_android', }, 'third_party/zlib': - Var('chromium_url') + '/chromium/src/third_party/zlib.git'+ '@' + 'b0676a1f52484bf53a1a49d0e48ff8abc430fafe', + Var('chromium_url') + '/chromium/src/third_party/zlib.git'+ '@' + 'a6d209ab932df0f1c9d5b7dc67cfa74e8a3272c0', 'tools/clang': - Var('chromium_url') + '/chromium/src/tools/clang.git' + '@' + 'b60d34c100e5a8f4b01d838527f000faab673da3', - 'tools/clang/dsymutil': { - 'packages': [ - { - 'package': 'chromium/llvm-build-tools/dsymutil', - 'version': 'M56jPzDv1620Rnm__jTMYS62Zi8rxHVq7yw0qeBFEgkC', - } - ], - 'condition': 'checkout_mac', - 'dep_type': 'cipd', - }, + Var('chromium_url') + '/chromium/src/tools/clang.git' + '@' + 'b5e2f7c16bbf3aefc9354e8fbad3de0a543f2193', 'tools/luci-go': { 'packages': [ { @@ -355,45 +345,87 @@ hooks = [ 'name': 'bazel', 'pattern': '.', 'condition': 'download_prebuilt_bazel', - 'action': [ 'download_from_google_storage', + 'action': [ 'python3', + 'third_party/depot_tools/download_from_google_storage.py', '--bucket', 'chromium-v8-prebuilt-bazel/linux', '--no_resume', '-s', 'tools/bazel/bazel.sha1', '--platform=linux*', ], }, + # Pull dsymutil binaries using checked-in hashes. + { + 'name': 'dsymutil_mac_arm64', + 'pattern': '.', + 'condition': 'host_os == "mac" and host_cpu == "arm64"', + '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', + ], + }, + { + 'name': 'dsymutil_mac_x64', + 'pattern': '.', + 'condition': 'host_os == "mac" and host_cpu == "x64"', + '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', + ], + }, # Pull clang-format binaries using checked-in hashes. { 'name': 'clang_format_win', 'pattern': '.', 'condition': 'host_os == "win"', - 'action': [ 'download_from_google_storage', + 'action': [ 'python3', + 'third_party/depot_tools/download_from_google_storage.py', '--no_resume', - '--platform=win32', '--no_auth', '--bucket', 'chromium-clang-format', '-s', 'buildtools/win/clang-format.exe.sha1', ], }, { - 'name': 'clang_format_mac', + 'name': 'clang_format_mac_x64', 'pattern': '.', - 'condition': 'host_os == "mac"', - 'action': [ 'download_from_google_storage', + 'condition': 'host_os == "mac" and host_cpu == "x64"', + 'action': [ 'python3', + 'third_party/depot_tools/download_from_google_storage.py', + '--no_resume', + '--no_auth', + '--bucket', 'chromium-clang-format', + '-s', 'buildtools/mac/clang-format.x64.sha1', + '-o', 'buildtools/mac/clang-format', + ], + }, + { + 'name': 'clang_format_mac_arm64', + 'pattern': '.', + 'condition': 'host_os == "mac" and host_cpu == "arm64"', + 'action': [ 'python3', + 'third_party/depot_tools/download_from_google_storage.py', '--no_resume', - '--platform=darwin', '--no_auth', '--bucket', 'chromium-clang-format', - '-s', 'buildtools/mac/clang-format.sha1', + '-s', 'buildtools/mac/clang-format.arm64.sha1', + '-o', 'buildtools/mac/clang-format', ], }, { 'name': 'clang_format_linux', 'pattern': '.', 'condition': 'host_os == "linux"', - 'action': [ 'download_from_google_storage', + 'action': [ 'python3', + 'third_party/depot_tools/download_from_google_storage.py', '--no_resume', - '--platform=linux*', '--no_auth', '--bucket', 'chromium-clang-format', '-s', 'buildtools/linux64/clang-format.sha1', @@ -403,7 +435,8 @@ hooks = [ 'name': 'gcmole', 'pattern': '.', 'condition': 'download_gcmole', - 'action': [ 'download_from_google_storage', + 'action': [ 'python3', + 'third_party/depot_tools/download_from_google_storage.py', '--bucket', 'chrome-v8-gcmole', '-u', '--no_resume', '-s', 'tools/gcmole/gcmole-tools.tar.gz.sha1', @@ -414,7 +447,8 @@ hooks = [ 'name': 'jsfunfuzz', 'pattern': '.', 'condition': 'download_jsfunfuzz', - 'action': [ 'download_from_google_storage', + 'action': [ 'python3', + 'third_party/depot_tools/download_from_google_storage.py', '--bucket', 'chrome-v8-jsfunfuzz', '-u', '--no_resume', '-s', 'tools/jsfunfuzz/jsfunfuzz.tar.gz.sha1', @@ -424,7 +458,8 @@ hooks = [ { 'name': 'wasm_spec_tests', 'pattern': '.', - 'action': [ 'download_from_google_storage', + 'action': [ 'python3', + 'third_party/depot_tools/download_from_google_storage.py', '--no_resume', '--no_auth', '-u', @@ -435,7 +470,8 @@ hooks = [ { 'name': 'wasm_js', 'pattern': '.', - 'action': [ 'download_from_google_storage', + 'action': [ 'python3', + 'third_party/depot_tools/download_from_google_storage.py', '--no_resume', '--no_auth', '-u', @@ -475,7 +511,8 @@ hooks = [ 'name': 'msan_chained_origins', 'pattern': '.', 'condition': 'checkout_instrumented_libraries', - 'action': [ 'download_from_google_storage', + 'action': [ 'python3', + 'third_party/depot_tools/download_from_google_storage.py', '--no_resume', '--no_auth', '--bucket', 'chromium-instrumented-libraries', @@ -486,7 +523,8 @@ hooks = [ 'name': 'msan_no_origins', 'pattern': '.', 'condition': 'checkout_instrumented_libraries', - 'action': [ 'download_from_google_storage', + 'action': [ 'python3', + 'third_party/depot_tools/download_from_google_storage.py', '--no_resume', '--no_auth', '--bucket', 'chromium-instrumented-libraries', @@ -498,7 +536,8 @@ hooks = [ 'name': 'ciopfs_linux', 'pattern': '.', 'condition': 'checkout_win and host_os == "linux"', - 'action': [ 'download_from_google_storage', + 'action': [ 'python3', + 'third_party/depot_tools/download_from_google_storage.py', '--no_resume', '--no_auth', '--bucket', 'chromium-browser-clang/ciopfs', diff --git a/deps/v8/bazel/config/BUILD.bazel b/deps/v8/bazel/config/BUILD.bazel index ac79c428089db0..ffa9ef040722b4 100644 --- a/deps/v8/bazel/config/BUILD.bazel +++ b/deps/v8/bazel/config/BUILD.bazel @@ -177,6 +177,15 @@ selects.config_setting_group( ], ) +selects.config_setting_group( + name = "is_not_android", + match_any = [ + ":is_windows", + ":is_linux", + ":is_macos", + ] +) + selects.config_setting_group( name = "is_non_android_posix", match_any = [ diff --git a/deps/v8/gni/OWNERS b/deps/v8/gni/OWNERS index e87e9c95a1cfc8..fa1262b503174e 100644 --- a/deps/v8/gni/OWNERS +++ b/deps/v8/gni/OWNERS @@ -2,4 +2,4 @@ file:../INFRA_OWNERS per-file v8.cmx=victorgomes@chromium.org per-file release_branch_toggle.gni=v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com -per-file release_branch_toggle.gni=lutz@chromium.org \ No newline at end of file +per-file release_branch_toggle.gni=vahl@chromium.org \ No newline at end of file diff --git a/deps/v8/gni/release_branch_toggle.gni b/deps/v8/gni/release_branch_toggle.gni index c502c8c62e5836..43e3b6ae567631 100644 --- a/deps/v8/gni/release_branch_toggle.gni +++ b/deps/v8/gni/release_branch_toggle.gni @@ -4,4 +4,4 @@ declare_args() { is_on_release_branch = true -} \ No newline at end of file +} diff --git a/deps/v8/include/cppgc/default-platform.h b/deps/v8/include/cppgc/default-platform.h index f9af756c39a0a5..a27871cc37ee47 100644 --- a/deps/v8/include/cppgc/default-platform.h +++ b/deps/v8/include/cppgc/default-platform.h @@ -19,15 +19,6 @@ namespace cppgc { */ class V8_EXPORT DefaultPlatform : public Platform { public: - /** - * Use this method instead of 'cppgc::InitializeProcess' when using - * 'cppgc::DefaultPlatform'. 'cppgc::DefaultPlatform::InitializeProcess' - * will initialize cppgc and v8 if needed (for non-standalone builds). - * - * \param platform DefaultPlatform instance used to initialize cppgc/v8. - */ - static void InitializeProcess(DefaultPlatform* platform); - using IdleTaskSupport = v8::platform::IdleTaskSupport; explicit DefaultPlatform( int thread_pool_size = 0, diff --git a/deps/v8/include/cppgc/internal/api-constants.h b/deps/v8/include/cppgc/internal/api-constants.h index 791039f1ee1326..a50d4d046c953c 100644 --- a/deps/v8/include/cppgc/internal/api-constants.h +++ b/deps/v8/include/cppgc/internal/api-constants.h @@ -44,6 +44,9 @@ static constexpr size_t kDefaultAlignment = sizeof(void*); // Maximum support alignment for a type as in `alignof(T)`. static constexpr size_t kMaxSupportedAlignment = 2 * kDefaultAlignment; +// Granularity of heap allocations. +constexpr size_t kAllocationGranularity = sizeof(void*); + } // namespace api_constants } // namespace internal diff --git a/deps/v8/include/cppgc/internal/caged-heap-local-data.h b/deps/v8/include/cppgc/internal/caged-heap-local-data.h index 5b30d6702920c2..a27649c17fce5b 100644 --- a/deps/v8/include/cppgc/internal/caged-heap-local-data.h +++ b/deps/v8/include/cppgc/internal/caged-heap-local-data.h @@ -6,6 +6,8 @@ #define INCLUDE_CPPGC_INTERNAL_CAGED_HEAP_LOCAL_DATA_H_ #include +#include +#include #include "cppgc/internal/api-constants.h" #include "cppgc/internal/logging.h" @@ -19,32 +21,41 @@ class HeapBase; #if defined(CPPGC_YOUNG_GENERATION) -// AgeTable contains entries that correspond to 4KB memory regions. Each entry -// can be in one of three states: kOld, kYoung or kUnknown. +// AgeTable is the bytemap needed for the fast generation check in the write +// barrier. AgeTable contains entries that correspond to 512 bytes memory +// regions (cards). Each entry in the table represents generation of the objects +// that reside on the corresponding card (young, old or mixed). class AgeTable final { - static constexpr size_t kGranularityBits = 12; // 4KiB per byte. + static constexpr size_t kRequiredSize = 1 * api_constants::kMB; + static constexpr size_t kAllocationGranularity = + api_constants::kAllocationGranularity; public: - enum class Age : uint8_t { kOld, kYoung, kUnknown }; + enum class Age : uint8_t { kOld, kYoung, kMixed }; - static constexpr size_t kEntrySizeInBytes = 1 << kGranularityBits; + static constexpr size_t kCardSizeInBytes = + (api_constants::kCagedHeapReservationSize / kAllocationGranularity) / + kRequiredSize; - Age& operator[](uintptr_t offset) { return table_[entry(offset)]; } - Age operator[](uintptr_t offset) const { return table_[entry(offset)]; } + void SetAge(uintptr_t cage_offset, Age age) { + table_[card(cage_offset)] = age; + } + V8_INLINE Age GetAge(uintptr_t cage_offset) const { + return table_[card(cage_offset)]; + } void Reset(PageAllocator* allocator); private: - static constexpr size_t kAgeTableSize = - api_constants::kCagedHeapReservationSize >> kGranularityBits; - - size_t entry(uintptr_t offset) const { + V8_INLINE size_t card(uintptr_t offset) const { + constexpr size_t kGranularityBits = + __builtin_ctz(static_cast(kCardSizeInBytes)); const size_t entry = offset >> kGranularityBits; CPPGC_DCHECK(table_.size() > entry); return entry; } - std::array table_; + std::array table_; }; static_assert(sizeof(AgeTable) == 1 * api_constants::kMB, diff --git a/deps/v8/include/cppgc/internal/finalizer-trait.h b/deps/v8/include/cppgc/internal/finalizer-trait.h index 7bd6f83bf60b46..ab49af870e0ba3 100644 --- a/deps/v8/include/cppgc/internal/finalizer-trait.h +++ b/deps/v8/include/cppgc/internal/finalizer-trait.h @@ -19,7 +19,8 @@ struct HasFinalizeGarbageCollectedObject : std::false_type {}; template struct HasFinalizeGarbageCollectedObject< - T, void_t().FinalizeGarbageCollectedObject())>> + T, + std::void_t().FinalizeGarbageCollectedObject())>> : std::true_type {}; // The FinalizerTraitImpl specifies how to finalize objects. diff --git a/deps/v8/include/cppgc/internal/write-barrier.h b/deps/v8/include/cppgc/internal/write-barrier.h index cdb7ec6f9e7067..bfabc31e13a969 100644 --- a/deps/v8/include/cppgc/internal/write-barrier.h +++ b/deps/v8/include/cppgc/internal/write-barrier.h @@ -405,7 +405,8 @@ void WriteBarrier::GenerationalBarrier(const Params& params, const void* slot) { const AgeTable& age_table = local_data.age_table; // Bail out if the slot is in young generation. - if (V8_LIKELY(age_table[params.slot_offset] == AgeTable::Age::kYoung)) return; + if (V8_LIKELY(age_table.GetAge(params.slot_offset) == AgeTable::Age::kYoung)) + return; GenerationalBarrierSlow(local_data, age_table, slot, params.value_offset); } @@ -420,7 +421,8 @@ void WriteBarrier::GenerationalBarrierForSourceObject( // Assume that if the first element is in young generation, the whole range is // in young generation. - if (V8_LIKELY(age_table[params.slot_offset] == AgeTable::Age::kYoung)) return; + if (V8_LIKELY(age_table.GetAge(params.slot_offset) == AgeTable::Age::kYoung)) + return; GenerationalBarrierForSourceObjectSlow(local_data, inner_pointer); } diff --git a/deps/v8/include/cppgc/type-traits.h b/deps/v8/include/cppgc/type-traits.h index 56cd55d61e2a5a..970ffd4841abf4 100644 --- a/deps/v8/include/cppgc/type-traits.h +++ b/deps/v8/include/cppgc/type-traits.h @@ -24,14 +24,6 @@ class StrongMemberTag; class UntracedMemberTag; class WeakMemberTag; -// Pre-C++17 custom implementation of std::void_t. -template -struct make_void { - typedef void type; -}; -template -using void_t = typename make_void::type; - // Not supposed to be specialized by the user. template struct IsWeak : std::false_type {}; @@ -42,7 +34,7 @@ template struct IsTraceMethodConst : std::false_type {}; template -struct IsTraceMethodConst().Trace( +struct IsTraceMethodConst().Trace( std::declval()))>> : std::true_type { }; @@ -53,7 +45,7 @@ struct IsTraceable : std::false_type { template struct IsTraceable< - T, void_t().Trace(std::declval()))>> + T, std::void_t().Trace(std::declval()))>> : std::true_type { // All Trace methods should be marked as const. If an object of type // 'T' is traceable then any object of type 'const T' should also @@ -72,8 +64,8 @@ struct HasGarbageCollectedMixinTypeMarker : std::false_type { template struct HasGarbageCollectedMixinTypeMarker< - T, - void_t::IsGarbageCollectedMixinTypeMarker>> + T, std::void_t< + typename std::remove_const_t::IsGarbageCollectedMixinTypeMarker>> : std::true_type { static_assert(sizeof(T), "T must be fully defined"); }; @@ -85,7 +77,8 @@ struct HasGarbageCollectedTypeMarker : std::false_type { template struct HasGarbageCollectedTypeMarker< - T, void_t::IsGarbageCollectedTypeMarker>> + T, + std::void_t::IsGarbageCollectedTypeMarker>> : std::true_type { static_assert(sizeof(T), "T must be fully defined"); }; diff --git a/deps/v8/include/js_protocol.pdl b/deps/v8/include/js_protocol.pdl index 09c420e3a63610..53a5f4c11dcc02 100644 --- a/deps/v8/include/js_protocol.pdl +++ b/deps/v8/include/js_protocol.pdl @@ -952,6 +952,37 @@ domain Runtime # Unique script identifier. type ScriptId extends string + # Represents the value serialiazed by the WebDriver BiDi specification + # https://w3c.github.io/webdriver-bidi. + type WebDriverValue extends object + properties + enum type + undefined + null + string + number + boolean + bigint + regexp + date + symbol + array + object + function + map + set + weakmap + weakset + error + proxy + promise + typedarray + arraybuffer + node + window + optional any value + optional string objectId + # Unique object identifier. type RemoteObjectId extends string @@ -1004,6 +1035,8 @@ domain Runtime optional UnserializableValue unserializableValue # String representation of the object. optional string description + # WebDriver BiDi representation of the value. + experimental optional WebDriverValue webDriverValue # Unique object identifier (for non-primitive values). optional RemoteObjectId objectId # Preview containing abbreviated property values. Specified for `object` type values only. @@ -1309,6 +1342,8 @@ domain Runtime optional string objectGroup # Whether to throw an exception if side effect cannot be ruled out during evaluation. experimental optional boolean throwOnSideEffect + # Whether the result should be serialized according to https://w3c.github.io/webdriver-bidi. + experimental optional boolean generateWebDriverValue returns # Call result. RemoteObject result @@ -1394,6 +1429,8 @@ domain Runtime # boundaries). # This is mutually exclusive with `contextId`. experimental optional string uniqueContextId + # Whether the result should be serialized according to https://w3c.github.io/webdriver-bidi. + experimental optional boolean generateWebDriverValue returns # Evaluation result. RemoteObject result diff --git a/deps/v8/include/v8-cppgc.h b/deps/v8/include/v8-cppgc.h index 7761d87fd0a325..412154930f7d92 100644 --- a/deps/v8/include/v8-cppgc.h +++ b/deps/v8/include/v8-cppgc.h @@ -77,9 +77,6 @@ struct WrapperDescriptor final { }; struct V8_EXPORT CppHeapCreateParams { - CppHeapCreateParams(const CppHeapCreateParams&) = delete; - CppHeapCreateParams& operator=(const CppHeapCreateParams&) = delete; - std::vector> custom_spaces; WrapperDescriptor wrapper_descriptor; }; @@ -164,6 +161,7 @@ class V8_EXPORT CppHeap { class JSVisitor : public cppgc::Visitor { public: explicit JSVisitor(cppgc::Visitor::Key key) : cppgc::Visitor(key) {} + ~JSVisitor() override = default; void Trace(const TracedReferenceBase& ref) { if (ref.IsEmptyThreadSafe()) return; diff --git a/deps/v8/include/v8-inspector.h b/deps/v8/include/v8-inspector.h index edd968c766d82d..ce5430bd039870 100644 --- a/deps/v8/include/v8-inspector.h +++ b/deps/v8/include/v8-inspector.h @@ -205,6 +205,15 @@ class V8_EXPORT V8InspectorSession { virtual void triggerPreciseCoverageDeltaUpdate(StringView occasion) = 0; }; +class V8_EXPORT WebDriverValue { + public: + explicit WebDriverValue(StringView type, v8::MaybeLocal value = {}) + : type(type), value(value) {} + + StringView type; + v8::MaybeLocal value; +}; + class V8_EXPORT V8InspectorClient { public: virtual ~V8InspectorClient() = default; @@ -219,6 +228,10 @@ class V8_EXPORT V8InspectorClient { virtual void beginUserGesture() {} virtual void endUserGesture() {} + virtual std::unique_ptr serializeToWebDriverValue( + v8::Local v8_value, int max_depth) { + return nullptr; + } virtual std::unique_ptr valueSubtype(v8::Local) { return nullptr; } @@ -270,6 +283,9 @@ class V8_EXPORT V8InspectorClient { // The caller would defer to generating a random 64 bit integer if // this method returns 0. virtual int64_t generateUniqueId() { return 0; } + + virtual void dispatchError(v8::Local, v8::Local, + v8::Local) {} }; // These stack trace ids are intended to be passed between debuggers and be diff --git a/deps/v8/include/v8-internal.h b/deps/v8/include/v8-internal.h index e6e9cc5f9f5bbc..37c5b336dad935 100644 --- a/deps/v8/include/v8-internal.h +++ b/deps/v8/include/v8-internal.h @@ -365,8 +365,8 @@ class Internals { static const uint32_t kNumIsolateDataSlots = 4; static const int kStackGuardSize = 7 * kApiSystemPointerSize; - static const int kBuiltinTier0EntryTableSize = 10 * kApiSystemPointerSize; - static const int kBuiltinTier0TableSize = 10 * kApiSystemPointerSize; + static const int kBuiltinTier0EntryTableSize = 9 * kApiSystemPointerSize; + static const int kBuiltinTier0TableSize = 9 * kApiSystemPointerSize; // IsolateData layout guarantees. static const int kIsolateCageBaseOffset = 0; diff --git a/deps/v8/include/v8-metrics.h b/deps/v8/include/v8-metrics.h index 01bc538e22c769..d8e8bd865bfc03 100644 --- a/deps/v8/include/v8-metrics.h +++ b/deps/v8/include/v8-metrics.h @@ -61,26 +61,38 @@ struct GarbageCollectionFullMainThreadIncrementalMark { int64_t cpp_wall_clock_duration_in_us = -1; }; -struct GarbageCollectionFullMainThreadBatchedIncrementalMark { - std::vector events; -}; - struct GarbageCollectionFullMainThreadIncrementalSweep { int64_t wall_clock_duration_in_us = -1; int64_t cpp_wall_clock_duration_in_us = -1; }; -struct GarbageCollectionFullMainThreadBatchedIncrementalSweep { - std::vector events; +template +struct GarbageCollectionBatchedEvents { + std::vector events; }; +using GarbageCollectionFullMainThreadBatchedIncrementalMark = + GarbageCollectionBatchedEvents< + GarbageCollectionFullMainThreadIncrementalMark>; +using GarbageCollectionFullMainThreadBatchedIncrementalSweep = + GarbageCollectionBatchedEvents< + GarbageCollectionFullMainThreadIncrementalSweep>; + struct GarbageCollectionYoungCycle { int reason = -1; int64_t total_wall_clock_duration_in_us = -1; int64_t main_thread_wall_clock_duration_in_us = -1; - double collection_rate_in_percent; - double efficiency_in_bytes_per_us; - double main_thread_efficiency_in_bytes_per_us; + double collection_rate_in_percent = -1.0; + double efficiency_in_bytes_per_us = -1.0; + double main_thread_efficiency_in_bytes_per_us = -1.0; +#if defined(CPPGC_YOUNG_GENERATION) + GarbageCollectionPhases total_cpp; + GarbageCollectionSizes objects_cpp; + GarbageCollectionSizes memory_cpp; + double collection_rate_cpp_in_percent = -1.0; + double efficiency_cpp_in_bytes_per_us = -1.0; + double main_thread_efficiency_cpp_in_bytes_per_us = -1.0; +#endif // defined(CPPGC_YOUNG_GENERATION) }; struct WasmModuleDecoded { diff --git a/deps/v8/include/v8-script.h b/deps/v8/include/v8-script.h index 5644a3bb70c6b1..88252ac1897318 100644 --- a/deps/v8/include/v8-script.h +++ b/deps/v8/include/v8-script.h @@ -650,6 +650,7 @@ class V8_EXPORT ScriptCompiler { * It is possible to specify multiple context extensions (obj in the above * example). */ + V8_DEPRECATED("Use CompileFunction") static V8_WARN_UNUSED_RESULT MaybeLocal CompileFunctionInContext( Local context, Source* source, size_t arguments_count, Local arguments[], size_t context_extension_count, diff --git a/deps/v8/include/v8-version.h b/deps/v8/include/v8-version.h index 4312c9ff8b01a3..709fdc57900f09 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 10 -#define V8_MINOR_VERSION 1 -#define V8_BUILD_NUMBER 124 -#define V8_PATCH_LEVEL 8 +#define V8_MINOR_VERSION 2 +#define V8_BUILD_NUMBER 154 +#define V8_PATCH_LEVEL 2 // Use 1 for candidates and 0 otherwise. // (Boolean macro values are not supported by all preprocessors.) diff --git a/deps/v8/infra/mb/mb_config.pyl b/deps/v8/infra/mb/mb_config.pyl index e20cd6e7bd7183..769582188a11d5 100644 --- a/deps/v8/infra/mb/mb_config.pyl +++ b/deps/v8/infra/mb/mb_config.pyl @@ -116,7 +116,6 @@ 'V8 Linux64 - pointer compression - builder': 'release_x64_pointer_compression', 'V8 Linux64 - pointer compression without dchecks': 'release_x64_pointer_compression_without_dchecks', - 'V8 Linux64 - python3 - builder': 'release_x64', 'V8 Linux64 - arm64 - sim - pointer compression - builder': 'release_simulate_arm64_pointer_compression', 'V8 Linux64 gcc - debug builder': 'debug_x64_gcc', @@ -238,7 +237,6 @@ 'v8_linux64_nodcheck_rel_ng': 'release_x64', 'v8_linux64_perfetto_dbg_ng': 'debug_x64_perfetto', 'v8_linux64_pointer_compression_rel_ng': 'release_x64_pointer_compression', - 'v8_linux64_python3_rel_ng': 'release_x64', 'v8_linux64_rel_ng': 'release_x64_test_features_trybot', 'v8_linux64_shared_compile_rel': 'release_x64_shared_verify_heap', 'v8_linux64_single_generation_dbg_ng': 'debug_x64_single_generation', diff --git a/deps/v8/infra/testing/builders.pyl b/deps/v8/infra/testing/builders.pyl index 519adbdb076c34..11db9b11f714a3 100644 --- a/deps/v8/infra/testing/builders.pyl +++ b/deps/v8/infra/testing/builders.pyl @@ -280,11 +280,11 @@ 'os': 'Ubuntu-18.04', }, 'tests': [ - {'name': 'mjsunit_sp_frame_access'}, - {'name': 'mozilla'}, + {'name': 'mjsunit_sp_frame_access', 'shards': 3}, + {'name': 'mozilla', 'shards': 3}, {'name': 'test262', 'variant': 'default', 'shards': 2}, - {'name': 'v8testing', 'shards': 7}, - {'name': 'v8testing', 'variant': 'extra', 'shards': 7}, + {'name': 'v8testing', 'shards': 10}, + {'name': 'v8testing', 'variant': 'extra', 'shards': 10}, ], }, 'v8_linux_arm_lite_rel_ng_triggered': { @@ -347,15 +347,15 @@ 'os': 'Ubuntu-18.04', }, 'tests': [ - {'name': 'benchmarks'}, + {'name': 'benchmarks', 'shards': 2}, {'name': 'benchmarks', 'variant': 'extra'}, - {'name': 'mjsunit_sp_frame_access'}, + {'name': 'mjsunit_sp_frame_access', 'shards': 2}, {'name': 'mozilla'}, {'name': 'mozilla', 'variant': 'extra'}, - {'name': 'test262', 'variant': 'default'}, - {'name': 'test262', 'variant': 'extra', 'shards': 5}, - {'name': 'v8testing', 'shards': 3}, - {'name': 'v8testing', 'variant': 'extra', 'shards': 3}, + {'name': 'test262', 'variant': 'default', 'shards': 2}, + {'name': 'test262', 'variant': 'extra', 'shards': 9}, + {'name': 'v8testing', 'shards': 5}, + {'name': 'v8testing', 'variant': 'extra', 'shards': 5}, {'name': 'v8testing', 'variant': 'minor_mc'}, {'name': 'v8testing', 'variant': 'no_lfa'}, {'name': 'v8testing', 'variant': 'stress_instruction_scheduling'}, @@ -491,15 +491,6 @@ {'name': 'v8testing', 'shards': 3}, ], }, - 'v8_linux64_python3_rel_ng_triggered': { - 'swarming_dimensions' : { - 'os': 'Ubuntu-18.04', - }, - 'tests': [ - {'name': 'v8testing', 'shards': 2}, - {'name': 'gcmole'}, - ], - }, 'v8_linux64_single_generation_dbg_ng_triggered': { 'swarming_dimensions' : { 'os': 'Ubuntu-18.04', @@ -592,7 +583,7 @@ 'os': 'Ubuntu-18.04', }, 'tests': [ - {'name': 'mjsunit_sp_frame_access'}, + {'name': 'mjsunit_sp_frame_access', 'shards': 2}, {'name': 'mozilla', 'shards': 4}, {'name': 'test262', 'variant': 'default', 'shards': 4}, {'name': 'v8testing', 'shards': 14}, @@ -1369,15 +1360,6 @@ {'name': 'v8testing', 'shards': 2}, ], }, - 'V8 Linux64 - python3': { - 'swarming_dimensions' : { - 'os': 'Ubuntu-18.04', - }, - 'tests': [ - {'name': 'v8testing', 'shards': 2}, - {'name': 'gcmole'}, - ], - }, 'V8 Linux64 - shared': { 'swarming_dimensions' : { 'os': 'Ubuntu-18.04', @@ -1813,8 +1795,8 @@ 'os': 'Ubuntu-18.04', }, 'tests': [ - {'name': 'mjsunit_sp_frame_access', 'shards': 6}, - {'name': 'mozilla', 'shards': 6}, + {'name': 'mjsunit_sp_frame_access', 'shards': 3}, + {'name': 'mozilla', 'shards': 3}, {'name': 'test262', 'variant': 'default', 'shards': 2}, {'name': 'v8testing', 'shards': 10}, {'name': 'v8testing', 'variant': 'extra', 'shards': 10}, diff --git a/deps/v8/samples/cppgc/hello-world.cc b/deps/v8/samples/cppgc/hello-world.cc index fe0d002ab44760..65b7aa9db26d4d 100644 --- a/deps/v8/samples/cppgc/hello-world.cc +++ b/deps/v8/samples/cppgc/hello-world.cc @@ -57,7 +57,7 @@ int main(int argc, char* argv[]) { #endif // !CPPGC_IS_STANDALONE // Initialize the process. This must happen before any cppgc::Heap::Create() // calls. - cppgc::DefaultPlatform::InitializeProcess(cppgc_platform.get()); + cppgc::InitializeProcess(cppgc_platform->GetPageAllocator()); { // Create a managed heap. std::unique_ptr heap = cppgc::Heap::Create(cppgc_platform); diff --git a/deps/v8/src/api/api-arguments-inl.h b/deps/v8/src/api/api-arguments-inl.h index 786f849be6c148..5d437370bc0a08 100644 --- a/deps/v8/src/api/api-arguments-inl.h +++ b/deps/v8/src/api/api-arguments-inl.h @@ -87,24 +87,22 @@ inline JSReceiver FunctionCallbackArguments::holder() { ExternalCallbackScope call_scope(ISOLATE, FUNCTION_ADDR(F)); \ PropertyCallbackInfo callback_info(values_); -#define CREATE_NAMED_CALLBACK(FUNCTION, TYPE, RETURN_TYPE, API_RETURN_TYPE, \ - INFO_FOR_SIDE_EFFECT) \ - Handle PropertyCallbackArguments::CallNamed##FUNCTION( \ - Handle interceptor, Handle name) { \ - DCHECK_NAME_COMPATIBLE(interceptor, name); \ - Isolate* isolate = this->isolate(); \ - RCS_SCOPE(isolate, RuntimeCallCounterId::kNamed##FUNCTION##Callback); \ - Handle receiver_check_unsupported; \ - GenericNamedProperty##FUNCTION##Callback f = \ - ToCData( \ - interceptor->TYPE()); \ - PREPARE_CALLBACK_INFO(isolate, f, Handle, API_RETURN_TYPE, \ - INFO_FOR_SIDE_EFFECT, receiver_check_unsupported, \ - NotAccessor); \ - LOG(isolate, \ - ApiNamedPropertyAccess("interceptor-named-" #TYPE, holder(), *name)); \ - f(v8::Utils::ToLocal(name), callback_info); \ - return GetReturnValue(isolate); \ +#define CREATE_NAMED_CALLBACK(FUNCTION, TYPE, RETURN_TYPE, API_RETURN_TYPE, \ + INFO_FOR_SIDE_EFFECT) \ + Handle PropertyCallbackArguments::CallNamed##FUNCTION( \ + Handle interceptor, Handle name) { \ + DCHECK_NAME_COMPATIBLE(interceptor, name); \ + Isolate* isolate = this->isolate(); \ + RCS_SCOPE(isolate, RuntimeCallCounterId::kNamed##FUNCTION##Callback); \ + Handle receiver_check_unsupported; \ + GenericNamedProperty##FUNCTION##Callback f = \ + ToCData( \ + interceptor->TYPE()); \ + PREPARE_CALLBACK_INFO(isolate, f, Handle, API_RETURN_TYPE, \ + INFO_FOR_SIDE_EFFECT, receiver_check_unsupported, \ + NotAccessor); \ + f(v8::Utils::ToLocal(name), callback_info); \ + return GetReturnValue(isolate); \ } FOR_EACH_CALLBACK(CREATE_NAMED_CALLBACK) @@ -123,8 +121,6 @@ FOR_EACH_CALLBACK(CREATE_NAMED_CALLBACK) PREPARE_CALLBACK_INFO(isolate, f, Handle, API_RETURN_TYPE, \ INFO_FOR_SIDE_EFFECT, receiver_check_unsupported, \ NotAccessor); \ - LOG(isolate, ApiIndexedPropertyAccess("interceptor-indexed-" #TYPE, \ - holder(), index)); \ f(index, callback_info); \ return GetReturnValue(isolate); \ } @@ -136,7 +132,6 @@ FOR_EACH_CALLBACK(CREATE_INDEXED_CALLBACK) Handle FunctionCallbackArguments::Call(CallHandlerInfo handler) { Isolate* isolate = this->isolate(); - LOG(isolate, ApiObjectAccess("call", holder())); RCS_SCOPE(isolate, RuntimeCallCounterId::kFunctionCallback); v8::FunctionCallback f = v8::ToCData(handler.callback()); @@ -156,7 +151,6 @@ Handle FunctionCallbackArguments::Call(CallHandlerInfo handler) { Handle PropertyCallbackArguments::CallNamedEnumerator( Handle interceptor) { DCHECK(interceptor->is_named()); - LOG(isolate(), ApiObjectAccess("interceptor-named-enumerator", holder())); RCS_SCOPE(isolate(), RuntimeCallCounterId::kNamedEnumeratorCallback); return CallPropertyEnumerator(interceptor); } @@ -164,7 +158,6 @@ Handle PropertyCallbackArguments::CallNamedEnumerator( Handle PropertyCallbackArguments::CallIndexedEnumerator( Handle interceptor) { DCHECK(!interceptor->is_named()); - LOG(isolate(), ApiObjectAccess("interceptor-indexed-enumerator", holder())); RCS_SCOPE(isolate(), RuntimeCallCounterId::kIndexedEnumeratorCallback); return CallPropertyEnumerator(interceptor); } @@ -172,10 +165,7 @@ Handle PropertyCallbackArguments::CallIndexedEnumerator( Handle PropertyCallbackArguments::CallNamedGetter( Handle interceptor, Handle name) { DCHECK_NAME_COMPATIBLE(interceptor, name); - Isolate* isolate = this->isolate(); - RCS_SCOPE(isolate, RuntimeCallCounterId::kNamedGetterCallback); - LOG(isolate, - ApiNamedPropertyAccess("interceptor-named-getter", holder(), *name)); + RCS_SCOPE(isolate(), RuntimeCallCounterId::kNamedGetterCallback); GenericNamedPropertyGetterCallback f = ToCData(interceptor->getter()); return BasicCallNamedGetterCallback(f, name, interceptor); @@ -184,10 +174,7 @@ Handle PropertyCallbackArguments::CallNamedGetter( Handle PropertyCallbackArguments::CallNamedDescriptor( Handle interceptor, Handle name) { DCHECK_NAME_COMPATIBLE(interceptor, name); - Isolate* isolate = this->isolate(); - RCS_SCOPE(isolate, RuntimeCallCounterId::kNamedDescriptorCallback); - LOG(isolate, - ApiNamedPropertyAccess("interceptor-named-descriptor", holder(), *name)); + RCS_SCOPE(isolate(), RuntimeCallCounterId::kNamedDescriptorCallback); GenericNamedPropertyDescriptorCallback f = ToCData( interceptor->descriptor()); @@ -215,8 +202,6 @@ Handle PropertyCallbackArguments::CallNamedSetter( RCS_SCOPE(isolate, RuntimeCallCounterId::kNamedSetterCallback); PREPARE_CALLBACK_INFO_FAIL_SIDE_EFFECT_CHECK(isolate, f, Handle, v8::Value); - LOG(isolate, - ApiNamedPropertyAccess("interceptor-named-set", holder(), *name)); f(v8::Utils::ToLocal(name), v8::Utils::ToLocal(value), callback_info); return GetReturnValue(isolate); } @@ -231,8 +216,6 @@ Handle PropertyCallbackArguments::CallNamedDefiner( ToCData(interceptor->definer()); PREPARE_CALLBACK_INFO_FAIL_SIDE_EFFECT_CHECK(isolate, f, Handle, v8::Value); - LOG(isolate, - ApiNamedPropertyAccess("interceptor-named-define", holder(), *name)); f(v8::Utils::ToLocal(name), desc, callback_info); return GetReturnValue(isolate); } @@ -246,8 +229,6 @@ Handle PropertyCallbackArguments::CallIndexedSetter( ToCData(interceptor->setter()); PREPARE_CALLBACK_INFO_FAIL_SIDE_EFFECT_CHECK(isolate, f, Handle, v8::Value); - LOG(isolate, - ApiIndexedPropertyAccess("interceptor-indexed-set", holder(), index)); f(index, v8::Utils::ToLocal(value), callback_info); return GetReturnValue(isolate); } @@ -262,8 +243,6 @@ Handle PropertyCallbackArguments::CallIndexedDefiner( ToCData(interceptor->definer()); PREPARE_CALLBACK_INFO_FAIL_SIDE_EFFECT_CHECK(isolate, f, Handle, v8::Value); - LOG(isolate, - ApiIndexedPropertyAccess("interceptor-indexed-define", holder(), index)); f(index, desc, callback_info); return GetReturnValue(isolate); } @@ -271,10 +250,7 @@ Handle PropertyCallbackArguments::CallIndexedDefiner( Handle PropertyCallbackArguments::CallIndexedGetter( Handle interceptor, uint32_t index) { DCHECK(!interceptor->is_named()); - Isolate* isolate = this->isolate(); - RCS_SCOPE(isolate, RuntimeCallCounterId::kNamedGetterCallback); - LOG(isolate, - ApiIndexedPropertyAccess("interceptor-indexed-getter", holder(), index)); + RCS_SCOPE(isolate(), RuntimeCallCounterId::kNamedGetterCallback); IndexedPropertyGetterCallback f = ToCData(interceptor->getter()); return BasicCallIndexedGetterCallback(f, index, interceptor); @@ -283,10 +259,7 @@ Handle PropertyCallbackArguments::CallIndexedGetter( Handle PropertyCallbackArguments::CallIndexedDescriptor( Handle interceptor, uint32_t index) { DCHECK(!interceptor->is_named()); - Isolate* isolate = this->isolate(); - RCS_SCOPE(isolate, RuntimeCallCounterId::kIndexedDescriptorCallback); - LOG(isolate, ApiIndexedPropertyAccess("interceptor-indexed-descriptor", - holder(), index)); + RCS_SCOPE(isolate(), RuntimeCallCounterId::kIndexedDescriptorCallback); IndexedPropertyDescriptorCallback f = ToCData(interceptor->descriptor()); return BasicCallIndexedGetterCallback(f, index, interceptor); @@ -323,7 +296,6 @@ Handle PropertyCallbackArguments::CallAccessorGetter( Handle info, Handle name) { Isolate* isolate = this->isolate(); RCS_SCOPE(isolate, RuntimeCallCounterId::kAccessorGetterCallback); - LOG(isolate, ApiNamedPropertyAccess("accessor-getter", holder(), *name)); AccessorNameGetterCallback f = ToCData(info->getter()); return BasicCallNamedGetterCallback(f, name, info, @@ -339,7 +311,6 @@ Handle PropertyCallbackArguments::CallAccessorSetter( ToCData(accessor_info->setter()); PREPARE_CALLBACK_INFO(isolate, f, Handle, void, accessor_info, handle(receiver(), isolate), Setter); - LOG(isolate, ApiNamedPropertyAccess("accessor-setter", holder(), *name)); f(v8::Utils::ToLocal(name), v8::Utils::ToLocal(value), callback_info); return GetReturnValue(isolate); } diff --git a/deps/v8/src/api/api-macros.h b/deps/v8/src/api/api-macros.h index 07b2e2d0f20acb..9fbe9a973903ae 100644 --- a/deps/v8/src/api/api-macros.h +++ b/deps/v8/src/api/api-macros.h @@ -35,10 +35,9 @@ * TODO(verwaest): Remove calls form API methods to DO_NOT_USE macros. */ -#define LOG_API(isolate, class_name, function_name) \ - RCS_SCOPE(isolate, \ - i::RuntimeCallCounterId::kAPI_##class_name##_##function_name); \ - LOG(isolate, ApiEntryCall("v8::" #class_name "::" #function_name)) +#define API_RCS_SCOPE(isolate, class_name, function_name) \ + RCS_SCOPE(isolate, \ + i::RuntimeCallCounterId::kAPI_##class_name##_##function_name); #define ENTER_V8_DO_NOT_USE(isolate) i::VMState __state__((isolate)) @@ -50,7 +49,7 @@ } \ HandleScopeClass handle_scope(isolate); \ CallDepthScope call_depth_scope(isolate, context); \ - LOG_API(isolate, class_name, function_name); \ + API_RCS_SCOPE(isolate, class_name, function_name); \ i::VMState __state__((isolate)); \ bool has_pending_exception = false diff --git a/deps/v8/src/api/api-natives.cc b/deps/v8/src/api/api-natives.cc index 75109e35b7ece4..29b94d8dea1d71 100644 --- a/deps/v8/src/api/api-natives.cc +++ b/deps/v8/src/api/api-natives.cc @@ -386,7 +386,7 @@ bool IsSimpleInstantiation(Isolate* isolate, ObjectTemplateInfo info, if (fun.shared().function_data(kAcquireLoad) != info.constructor()) return false; if (info.immutable_proto()) return false; - return fun.context().native_context() == isolate->raw_native_context(); + return fun.native_context() == isolate->raw_native_context(); } MaybeHandle InstantiateObject(Isolate* isolate, diff --git a/deps/v8/src/api/api.cc b/deps/v8/src/api/api.cc index 29d4bea237acc4..a0ab21d71a378a 100644 --- a/deps/v8/src/api/api.cc +++ b/deps/v8/src/api/api.cc @@ -50,7 +50,6 @@ #endif // V8_ENABLE_WEBASSEMBLY #include "src/debug/liveedit.h" #include "src/deoptimizer/deoptimizer.h" -#include "src/diagnostics/gdb-jit.h" #include "src/execution/embedder-state.h" #include "src/execution/execution.h" #include "src/execution/frames-inl.h" @@ -157,9 +156,6 @@ #include "src/base/platform/wrappers.h" #include "src/diagnostics/unwinding-info-win64.h" #endif // V8_OS_WIN64 -#if defined(V8_ENABLE_SYSTEM_INSTRUMENTATION) -#include "src/diagnostics/system-jit-win.h" -#endif #endif // V8_OS_WIN // Has to be the last include (doesn't have include guards): @@ -814,7 +810,7 @@ namespace internal { i::Address* GlobalizeTracedReference(i::Isolate* isolate, i::Address* obj, internal::Address* slot, GlobalHandleStoreMode store_mode) { - LOG_API(isolate, TracedGlobal, New); + API_RCS_SCOPE(isolate, TracedGlobal, New); #ifdef DEBUG Utils::ApiCheck((slot != nullptr), "v8::GlobalizeTracedReference", "the address slot must be not null"); @@ -847,7 +843,7 @@ void DisposeTracedReference(internal::Address* location) { namespace api_internal { i::Address* GlobalizeReference(i::Isolate* isolate, i::Address* obj) { - LOG_API(isolate, Persistent, New); + API_RCS_SCOPE(isolate, Persistent, New); i::Handle result = isolate->global_handles()->Create(*obj); #ifdef VERIFY_HEAP if (i::FLAG_verify_heap) { @@ -1338,7 +1334,7 @@ Local FunctionTemplate::New( i::Isolate* i_isolate = reinterpret_cast(isolate); // Changes to the environment cannot be captured in the snapshot. Expect no // function templates when the isolate is created for serialization. - LOG_API(i_isolate, FunctionTemplate, New); + API_RCS_SCOPE(i_isolate, FunctionTemplate, New); if (!Utils::ApiCheck( !c_function || behavior == ConstructorBehavior::kThrow, @@ -1363,7 +1359,7 @@ Local FunctionTemplate::NewWithCFunctionOverloads( SideEffectType side_effect_type, const MemorySpan& c_function_overloads) { i::Isolate* i_isolate = reinterpret_cast(isolate); - LOG_API(i_isolate, FunctionTemplate, New); + API_RCS_SCOPE(i_isolate, FunctionTemplate, New); if (!Utils::ApiCheck( c_function_overloads.size() == 0 || @@ -1384,7 +1380,7 @@ Local FunctionTemplate::NewWithCache( Local data, Local signature, int length, SideEffectType side_effect_type) { i::Isolate* i_isolate = reinterpret_cast(isolate); - LOG_API(i_isolate, FunctionTemplate, NewWithCache); + API_RCS_SCOPE(i_isolate, FunctionTemplate, NewWithCache); ENTER_V8_NO_SCRIPT_NO_EXCEPTION(i_isolate); return FunctionTemplateNew(i_isolate, callback, data, signature, length, ConstructorBehavior::kAllow, false, cache_property, @@ -1567,7 +1563,7 @@ Local ObjectTemplate::New( static Local ObjectTemplateNew( i::Isolate* isolate, v8::Local constructor, bool do_not_cache) { - LOG_API(isolate, ObjectTemplate, New); + API_RCS_SCOPE(isolate, ObjectTemplate, New); ENTER_V8_NO_SCRIPT_NO_EXCEPTION(isolate); i::Handle struct_obj = isolate->factory()->NewStruct( i::OBJECT_TEMPLATE_INFO_TYPE, i::AllocationType::kOld); @@ -2031,8 +2027,7 @@ Local