@@ -337,10 +337,6 @@ declare_args() {
337337 # Sets -DV8_ENABLE_SANDBOX.
338338 v8_enable_sandbox = " "
339339
340- # Enable experimental code pointer sandboxing for the V8 sandbox.
341- # Sets -DV8_CODE_POINTER_SANDBOXING
342- v8_code_pointer_sandboxing = " "
343-
344340 # Expose the memory corruption API to JavaScript. Useful for testing the sandbox.
345341 # WARNING This will expose builtins that (by design) cause memory corruption.
346342 # Sets -DV8_EXPOSE_MEMORY_CORRUPTION_API
@@ -568,11 +564,6 @@ if (v8_enable_sandbox == "") {
568564 v8 _enable_external_code_space && target_os != " fuchsia"
569565}
570566
571- if (v8_code_pointer_sandboxing == " " ) {
572- # By default, enable code pointer sandboxing if the sandbox is enabled.
573- v8_code_pointer_sandboxing = v8_enable_sandbox
574- }
575-
576567if (v8_enable_static_roots == " " ) {
577568 # Static roots are only valid for builds with pointer compression and a
578569 # shared read-only heap.
@@ -674,8 +665,8 @@ assert(!v8_enable_sandbox || v8_enable_pointer_compression_shared_cage,
674665assert (! v8_enable_sandbox || v8_enable_external_code_space ,
675666 " The sandbox requires the external code space" )
676667
677- assert (! v8_code_pointer_sandboxing || v8_enable_sandbox ,
678- " Code pointer sandboxing requires the sandbox " )
668+ assert (! v8_enable_sandbox || ! v8_enable_third_party_heap ,
669+ " The sandbox is incompatible with the third-party heap " )
679670
680671assert (! v8_expose_memory_corruption_api || v8_enable_sandbox ,
681672 " The Memory Corruption API requires the sandbox" )
@@ -769,7 +760,7 @@ config("internal_config") {
769760config (" v8_tracing_config" ) {
770761 if (v8_use_perfetto ) {
771762 include_dirs = [
772- " third_party/perfetto/include" ,
763+ " // third_party/perfetto/include" ,
773764 " $root_gen_dir /third_party/perfetto" ,
774765 " $root_gen_dir /third_party/perfetto/build_config" ,
775766 ]
@@ -1210,9 +1201,6 @@ config("features") {
12101201 if (v8_enable_wasm_simd256_revec ) {
12111202 defines += [ " V8_ENABLE_WASM_SIMD256_REVEC" ]
12121203 }
1213- if (v8_code_pointer_sandboxing ) {
1214- defines += [ " V8_CODE_POINTER_SANDBOXING" ]
1215- }
12161204 if (v8_enable_maglev_graph_printer ) {
12171205 defines += [ " V8_ENABLE_MAGLEV_GRAPH_PRINTER" ]
12181206 }
@@ -1842,6 +1830,7 @@ torque_files = [
18421830 " src/builtins/array-findlast.tq" ,
18431831 " src/builtins/array-findlastindex.tq" ,
18441832 " src/builtins/array-foreach.tq" ,
1833+ " src/builtins/array-from-async.tq" ,
18451834 " src/builtins/array-from.tq" ,
18461835 " src/builtins/array-isarray.tq" ,
18471836 " src/builtins/array-join.tq" ,
@@ -2025,6 +2014,7 @@ torque_files = [
20252014 " src/objects/name.tq" ,
20262015 " src/objects/oddball.tq" ,
20272016 " src/objects/hole.tq" ,
2017+ " src/objects/trusted-object.tq" ,
20282018 " src/objects/ordered-hash-table.tq" ,
20292019 " src/objects/primitive-heap-object.tq" ,
20302020 " src/objects/promise.tq" ,
@@ -3332,6 +3322,8 @@ v8_header_set("v8_internal_headers") {
33323322 " src/compiler/turboshaft/late-escape-analysis-reducer.h" ,
33333323 " src/compiler/turboshaft/late-load-elimination-reducer.h" ,
33343324 " src/compiler/turboshaft/layered-hash-map.h" ,
3325+ " src/compiler/turboshaft/loop-unrolling-phase.h" ,
3326+ " src/compiler/turboshaft/loop-unrolling-reducer.h" ,
33353327 " src/compiler/turboshaft/machine-lowering-phase.h" ,
33363328 " src/compiler/turboshaft/machine-lowering-reducer.h" ,
33373329 " src/compiler/turboshaft/machine-optimization-reducer.h" ,
@@ -3352,7 +3344,9 @@ v8_header_set("v8_internal_headers") {
33523344 " src/compiler/turboshaft/select-lowering-reducer.h" ,
33533345 " src/compiler/turboshaft/sidetable.h" ,
33543346 " src/compiler/turboshaft/simplify-tf-loops.h" ,
3347+ " src/compiler/turboshaft/snapshot-table-opindex.h" ,
33553348 " src/compiler/turboshaft/snapshot-table.h" ,
3349+ " src/compiler/turboshaft/stack-check-reducer.h" ,
33563350 " src/compiler/turboshaft/store-store-elimination-phase.h" ,
33573351 " src/compiler/turboshaft/store-store-elimination-reducer.h" ,
33583352 " src/compiler/turboshaft/structural-optimization-reducer.h" ,
@@ -3371,6 +3365,7 @@ v8_header_set("v8_internal_headers") {
33713365 " src/compiler/turboshaft/utils.h" ,
33723366 " src/compiler/turboshaft/value-numbering-reducer.h" ,
33733367 " src/compiler/turboshaft/variable-reducer.h" ,
3368+ " src/compiler/turboshaft/wasm-dead-code-elimination-phase.h" ,
33743369 " src/compiler/type-cache.h" ,
33753370 " src/compiler/type-narrowing-reducer.h" ,
33763371 " src/compiler/typed-optimization.h" ,
@@ -3523,6 +3518,8 @@ v8_header_set("v8_internal_headers") {
35233518 " src/heap/local-factory.h" ,
35243519 " src/heap/local-heap-inl.h" ,
35253520 " src/heap/local-heap.h" ,
3521+ " src/heap/main-allocator-inl.h" ,
3522+ " src/heap/main-allocator.h" ,
35263523 " src/heap/mark-compact-inl.h" ,
35273524 " src/heap/mark-compact.h" ,
35283525 " src/heap/mark-sweep-utilities.h" ,
@@ -3844,6 +3841,8 @@ v8_header_set("v8_internal_headers") {
38443841 " src/objects/torque-defined-classes.h" ,
38453842 " src/objects/transitions-inl.h" ,
38463843 " src/objects/transitions.h" ,
3844+ " src/objects/trusted-object-inl.h" ,
3845+ " src/objects/trusted-object.h" ,
38473846 " src/objects/turbofan-types-inl.h" ,
38483847 " src/objects/turbofan-types.h" ,
38493848 " src/objects/turboshaft-types-inl.h" ,
@@ -3931,6 +3930,9 @@ v8_header_set("v8_internal_headers") {
39313930 " src/sandbox/external-pointer-table.h" ,
39323931 " src/sandbox/external-pointer.h" ,
39333932 " src/sandbox/indirect-pointer-inl.h" ,
3933+ " src/sandbox/indirect-pointer-table-inl.h" ,
3934+ " src/sandbox/indirect-pointer-table.h" ,
3935+ " src/sandbox/indirect-pointer-tag.h" ,
39343936 " src/sandbox/indirect-pointer.h" ,
39353937 " src/sandbox/sandbox.h" ,
39363938 " src/sandbox/sandboxed-pointer-inl.h" ,
@@ -4071,6 +4073,8 @@ v8_header_set("v8_internal_headers") {
40714073 " src/compiler/int64-lowering.h" ,
40724074 " src/compiler/turboshaft/int64-lowering-phase.h" ,
40734075 " src/compiler/turboshaft/int64-lowering-reducer.h" ,
4076+ " src/compiler/turboshaft/wasm-gc-optimize-phase.h" ,
4077+ " src/compiler/turboshaft/wasm-gc-type-reducer.h" ,
40744078 " src/compiler/turboshaft/wasm-js-lowering-reducer.h" ,
40754079 " src/compiler/turboshaft/wasm-lowering-reducer.h" ,
40764080 " src/compiler/turboshaft/wasm-optimize-phase.h" ,
@@ -4130,6 +4134,7 @@ v8_header_set("v8_internal_headers") {
41304134 " src/wasm/turboshaft-graph-interface.h" ,
41314135 " src/wasm/value-type.h" ,
41324136 " src/wasm/wasm-arguments.h" ,
4137+ " src/wasm/wasm-builtin-list.h" ,
41334138 " src/wasm/wasm-code-manager.h" ,
41344139 " src/wasm/wasm-debug.h" ,
41354140 " src/wasm/wasm-disassembler-impl.h" ,
@@ -4379,6 +4384,17 @@ v8_header_set("v8_internal_headers") {
43794384 " src/regexp/loong64/regexp-macro-assembler-loong64.h" ,
43804385 " src/wasm/baseline/loong64/liftoff-assembler-loong64.h" ,
43814386 ]
4387+ if (v8_enable_webassembly ) {
4388+ # Trap handling is enabled on loong64 Linux and in simulators on
4389+ # x64 on Linux.
4390+ if ((current_cpu == " loong64" && is_linux ) ||
4391+ (current_cpu == " x64" && is_linux )) {
4392+ sources += [ " src/trap-handler/handler-inside-posix.h" ]
4393+ }
4394+ if (current_cpu == " x64" && is_linux ) {
4395+ sources += [ " src/trap-handler/trap-handler-simulator.h" ]
4396+ }
4397+ }
43824398 } else if (v8_current_cpu == " ppc" ) {
43834399 sources += [
43844400 # ## gcmole(ppc) ###
@@ -4738,6 +4754,8 @@ if (v8_enable_webassembly) {
47384754 v8_compiler_sources += [
47394755 " src/compiler/int64-lowering.cc" ,
47404756 " src/compiler/turboshaft/int64-lowering-phase.cc" ,
4757+ " src/compiler/turboshaft/wasm-gc-optimize-phase.cc" ,
4758+ " src/compiler/turboshaft/wasm-gc-type-reducer.cc" ,
47414759 " src/compiler/turboshaft/wasm-optimize-phase.cc" ,
47424760 " src/compiler/turboshaft/wasm-turboshaft-compiler.cc" ,
47434761 " src/compiler/wasm-address-reassociation.cc" ,
@@ -4847,6 +4865,8 @@ v8_source_set("v8_turboshaft") {
48474865 " src/compiler/turboshaft/instruction-selection-phase.cc" ,
48484866 " src/compiler/turboshaft/late-escape-analysis-reducer.cc" ,
48494867 " src/compiler/turboshaft/late-load-elimination-reducer.cc" ,
4868+ " src/compiler/turboshaft/loop-unrolling-phase.cc" ,
4869+ " src/compiler/turboshaft/loop-unrolling-reducer.cc" ,
48504870 " src/compiler/turboshaft/machine-lowering-phase.cc" ,
48514871 " src/compiler/turboshaft/memory-optimization-reducer.cc" ,
48524872 " src/compiler/turboshaft/operations.cc" ,
@@ -5082,6 +5102,7 @@ v8_source_set("v8_base_without_compiler") {
50825102 " src/heap/cppgc-js/unified-heap-marking-verifier.cc" ,
50835103 " src/heap/cppgc-js/unified-heap-marking-visitor.cc" ,
50845104 " src/heap/ephemeron-remembered-set.cc" ,
5105+ " src/heap/evacuation-allocator.cc" ,
50855106 " src/heap/evacuation-verifier.cc" ,
50865107 " src/heap/factory-base.cc" ,
50875108 " src/heap/factory.cc" ,
@@ -5102,6 +5123,7 @@ v8_source_set("v8_base_without_compiler") {
51025123 " src/heap/large-spaces.cc" ,
51035124 " src/heap/local-factory.cc" ,
51045125 " src/heap/local-heap.cc" ,
5126+ " src/heap/main-allocator.cc" ,
51055127 " src/heap/mark-compact.cc" ,
51065128 " src/heap/mark-sweep-utilities.cc" ,
51075129 " src/heap/marking-barrier.cc" ,
@@ -5327,6 +5349,7 @@ v8_source_set("v8_base_without_compiler") {
53275349 " src/runtime/runtime.cc" ,
53285350 " src/sandbox/code-pointer-table.cc" ,
53295351 " src/sandbox/external-pointer-table.cc" ,
5352+ " src/sandbox/indirect-pointer-table.cc" ,
53305353 " src/sandbox/sandbox.cc" ,
53315354 " src/sandbox/testing.cc" ,
53325355 " src/snapshot/code-serializer.cc" ,
@@ -5427,6 +5450,7 @@ v8_source_set("v8_base_without_compiler") {
54275450 " src/asmjs/asm-parser.cc" ,
54285451 " src/asmjs/asm-scanner.cc" ,
54295452 " src/asmjs/asm-types.cc" ,
5453+ " src/compiler/turboshaft/wasm-dead-code-elimination-phase.cc" ,
54305454 " src/debug/debug-wasm-objects.cc" ,
54315455 " src/runtime/runtime-test-wasm.cc" ,
54325456 " src/runtime/runtime-wasm.cc" ,
@@ -5640,6 +5664,20 @@ v8_source_set("v8_base_without_compiler") {
56405664 " src/execution/loong64/simulator-loong64.cc" ,
56415665 " src/regexp/loong64/regexp-macro-assembler-loong64.cc" ,
56425666 ]
5667+ if (v8_enable_webassembly ) {
5668+ # Trap handling is enabled on loong64 Linux and in simulators on
5669+ # x64 on Linux.
5670+ if ((current_cpu == " loong64" && is_linux ) ||
5671+ (current_cpu == " x64" && is_linux )) {
5672+ sources += [
5673+ " src/trap-handler/handler-inside-posix.cc" ,
5674+ " src/trap-handler/handler-outside-posix.cc" ,
5675+ ]
5676+ }
5677+ if (current_cpu == " x64" && is_linux ) {
5678+ sources += [ " src/trap-handler/handler-outside-simulator.cc" ]
5679+ }
5680+ }
56435681 } else if (v8_current_cpu == " ppc" ) {
56445682 sources += [
56455683 # ## gcmole(ppc) ###
@@ -6391,6 +6429,7 @@ v8_header_set("v8_heap_base_headers") {
63916429 " src/heap/base/basic-slot-set.h" ,
63926430 " src/heap/base/bytes.h" ,
63936431 " src/heap/base/incremental-marking-schedule.h" ,
6432+ " src/heap/base/memory-tagging.h" ,
63946433 " src/heap/base/stack.h" ,
63956434 " src/heap/base/worklist.h" ,
63966435 ]
@@ -6404,6 +6443,7 @@ v8_source_set("v8_heap_base") {
64046443 sources = [
64056444 " src/heap/base/active-system-pages.cc" ,
64066445 " src/heap/base/incremental-marking-schedule.cc" ,
6446+ " src/heap/base/memory-tagging.cc" ,
64076447 " src/heap/base/stack.cc" ,
64086448 " src/heap/base/worklist.cc" ,
64096449 ]
@@ -6440,6 +6480,8 @@ v8_source_set("v8_heap_base") {
64406480
64416481 configs = [ " :internal_config" ]
64426482
6483+ deps = [ " :v8_config_headers" ]
6484+
64436485 public_deps = [
64446486 " :v8_heap_base_headers" ,
64456487 " :v8_libbase" ,
0 commit comments