@@ -337,10 +337,6 @@ declare_args() {
337
337
# Sets -DV8_ENABLE_SANDBOX.
338
338
v8_enable_sandbox = " "
339
339
340
- # Enable experimental code pointer sandboxing for the V8 sandbox.
341
- # Sets -DV8_CODE_POINTER_SANDBOXING
342
- v8_code_pointer_sandboxing = " "
343
-
344
340
# Expose the memory corruption API to JavaScript. Useful for testing the sandbox.
345
341
# WARNING This will expose builtins that (by design) cause memory corruption.
346
342
# Sets -DV8_EXPOSE_MEMORY_CORRUPTION_API
@@ -568,11 +564,6 @@ if (v8_enable_sandbox == "") {
568
564
v8 _enable_external_code_space && target_os != " fuchsia"
569
565
}
570
566
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
-
576
567
if (v8_enable_static_roots == " " ) {
577
568
# Static roots are only valid for builds with pointer compression and a
578
569
# shared read-only heap.
@@ -674,8 +665,8 @@ assert(!v8_enable_sandbox || v8_enable_pointer_compression_shared_cage,
674
665
assert (! v8_enable_sandbox || v8_enable_external_code_space ,
675
666
" The sandbox requires the external code space" )
676
667
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 " )
679
670
680
671
assert (! v8_expose_memory_corruption_api || v8_enable_sandbox ,
681
672
" The Memory Corruption API requires the sandbox" )
@@ -769,7 +760,7 @@ config("internal_config") {
769
760
config (" v8_tracing_config" ) {
770
761
if (v8_use_perfetto ) {
771
762
include_dirs = [
772
- " third_party/perfetto/include" ,
763
+ " // third_party/perfetto/include" ,
773
764
" $root_gen_dir /third_party/perfetto" ,
774
765
" $root_gen_dir /third_party/perfetto/build_config" ,
775
766
]
@@ -1210,9 +1201,6 @@ config("features") {
1210
1201
if (v8_enable_wasm_simd256_revec ) {
1211
1202
defines += [ " V8_ENABLE_WASM_SIMD256_REVEC" ]
1212
1203
}
1213
- if (v8_code_pointer_sandboxing ) {
1214
- defines += [ " V8_CODE_POINTER_SANDBOXING" ]
1215
- }
1216
1204
if (v8_enable_maglev_graph_printer ) {
1217
1205
defines += [ " V8_ENABLE_MAGLEV_GRAPH_PRINTER" ]
1218
1206
}
@@ -1842,6 +1830,7 @@ torque_files = [
1842
1830
" src/builtins/array-findlast.tq" ,
1843
1831
" src/builtins/array-findlastindex.tq" ,
1844
1832
" src/builtins/array-foreach.tq" ,
1833
+ " src/builtins/array-from-async.tq" ,
1845
1834
" src/builtins/array-from.tq" ,
1846
1835
" src/builtins/array-isarray.tq" ,
1847
1836
" src/builtins/array-join.tq" ,
@@ -2025,6 +2014,7 @@ torque_files = [
2025
2014
" src/objects/name.tq" ,
2026
2015
" src/objects/oddball.tq" ,
2027
2016
" src/objects/hole.tq" ,
2017
+ " src/objects/trusted-object.tq" ,
2028
2018
" src/objects/ordered-hash-table.tq" ,
2029
2019
" src/objects/primitive-heap-object.tq" ,
2030
2020
" src/objects/promise.tq" ,
@@ -3332,6 +3322,8 @@ v8_header_set("v8_internal_headers") {
3332
3322
" src/compiler/turboshaft/late-escape-analysis-reducer.h" ,
3333
3323
" src/compiler/turboshaft/late-load-elimination-reducer.h" ,
3334
3324
" src/compiler/turboshaft/layered-hash-map.h" ,
3325
+ " src/compiler/turboshaft/loop-unrolling-phase.h" ,
3326
+ " src/compiler/turboshaft/loop-unrolling-reducer.h" ,
3335
3327
" src/compiler/turboshaft/machine-lowering-phase.h" ,
3336
3328
" src/compiler/turboshaft/machine-lowering-reducer.h" ,
3337
3329
" src/compiler/turboshaft/machine-optimization-reducer.h" ,
@@ -3352,7 +3344,9 @@ v8_header_set("v8_internal_headers") {
3352
3344
" src/compiler/turboshaft/select-lowering-reducer.h" ,
3353
3345
" src/compiler/turboshaft/sidetable.h" ,
3354
3346
" src/compiler/turboshaft/simplify-tf-loops.h" ,
3347
+ " src/compiler/turboshaft/snapshot-table-opindex.h" ,
3355
3348
" src/compiler/turboshaft/snapshot-table.h" ,
3349
+ " src/compiler/turboshaft/stack-check-reducer.h" ,
3356
3350
" src/compiler/turboshaft/store-store-elimination-phase.h" ,
3357
3351
" src/compiler/turboshaft/store-store-elimination-reducer.h" ,
3358
3352
" src/compiler/turboshaft/structural-optimization-reducer.h" ,
@@ -3371,6 +3365,7 @@ v8_header_set("v8_internal_headers") {
3371
3365
" src/compiler/turboshaft/utils.h" ,
3372
3366
" src/compiler/turboshaft/value-numbering-reducer.h" ,
3373
3367
" src/compiler/turboshaft/variable-reducer.h" ,
3368
+ " src/compiler/turboshaft/wasm-dead-code-elimination-phase.h" ,
3374
3369
" src/compiler/type-cache.h" ,
3375
3370
" src/compiler/type-narrowing-reducer.h" ,
3376
3371
" src/compiler/typed-optimization.h" ,
@@ -3523,6 +3518,8 @@ v8_header_set("v8_internal_headers") {
3523
3518
" src/heap/local-factory.h" ,
3524
3519
" src/heap/local-heap-inl.h" ,
3525
3520
" src/heap/local-heap.h" ,
3521
+ " src/heap/main-allocator-inl.h" ,
3522
+ " src/heap/main-allocator.h" ,
3526
3523
" src/heap/mark-compact-inl.h" ,
3527
3524
" src/heap/mark-compact.h" ,
3528
3525
" src/heap/mark-sweep-utilities.h" ,
@@ -3844,6 +3841,8 @@ v8_header_set("v8_internal_headers") {
3844
3841
" src/objects/torque-defined-classes.h" ,
3845
3842
" src/objects/transitions-inl.h" ,
3846
3843
" src/objects/transitions.h" ,
3844
+ " src/objects/trusted-object-inl.h" ,
3845
+ " src/objects/trusted-object.h" ,
3847
3846
" src/objects/turbofan-types-inl.h" ,
3848
3847
" src/objects/turbofan-types.h" ,
3849
3848
" src/objects/turboshaft-types-inl.h" ,
@@ -3931,6 +3930,9 @@ v8_header_set("v8_internal_headers") {
3931
3930
" src/sandbox/external-pointer-table.h" ,
3932
3931
" src/sandbox/external-pointer.h" ,
3933
3932
" 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" ,
3934
3936
" src/sandbox/indirect-pointer.h" ,
3935
3937
" src/sandbox/sandbox.h" ,
3936
3938
" src/sandbox/sandboxed-pointer-inl.h" ,
@@ -4071,6 +4073,8 @@ v8_header_set("v8_internal_headers") {
4071
4073
" src/compiler/int64-lowering.h" ,
4072
4074
" src/compiler/turboshaft/int64-lowering-phase.h" ,
4073
4075
" 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" ,
4074
4078
" src/compiler/turboshaft/wasm-js-lowering-reducer.h" ,
4075
4079
" src/compiler/turboshaft/wasm-lowering-reducer.h" ,
4076
4080
" src/compiler/turboshaft/wasm-optimize-phase.h" ,
@@ -4130,6 +4134,7 @@ v8_header_set("v8_internal_headers") {
4130
4134
" src/wasm/turboshaft-graph-interface.h" ,
4131
4135
" src/wasm/value-type.h" ,
4132
4136
" src/wasm/wasm-arguments.h" ,
4137
+ " src/wasm/wasm-builtin-list.h" ,
4133
4138
" src/wasm/wasm-code-manager.h" ,
4134
4139
" src/wasm/wasm-debug.h" ,
4135
4140
" src/wasm/wasm-disassembler-impl.h" ,
@@ -4379,6 +4384,17 @@ v8_header_set("v8_internal_headers") {
4379
4384
" src/regexp/loong64/regexp-macro-assembler-loong64.h" ,
4380
4385
" src/wasm/baseline/loong64/liftoff-assembler-loong64.h" ,
4381
4386
]
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
+ }
4382
4398
} else if (v8_current_cpu == " ppc" ) {
4383
4399
sources += [
4384
4400
# ## gcmole(ppc) ###
@@ -4738,6 +4754,8 @@ if (v8_enable_webassembly) {
4738
4754
v8_compiler_sources += [
4739
4755
" src/compiler/int64-lowering.cc" ,
4740
4756
" 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" ,
4741
4759
" src/compiler/turboshaft/wasm-optimize-phase.cc" ,
4742
4760
" src/compiler/turboshaft/wasm-turboshaft-compiler.cc" ,
4743
4761
" src/compiler/wasm-address-reassociation.cc" ,
@@ -4847,6 +4865,8 @@ v8_source_set("v8_turboshaft") {
4847
4865
" src/compiler/turboshaft/instruction-selection-phase.cc" ,
4848
4866
" src/compiler/turboshaft/late-escape-analysis-reducer.cc" ,
4849
4867
" src/compiler/turboshaft/late-load-elimination-reducer.cc" ,
4868
+ " src/compiler/turboshaft/loop-unrolling-phase.cc" ,
4869
+ " src/compiler/turboshaft/loop-unrolling-reducer.cc" ,
4850
4870
" src/compiler/turboshaft/machine-lowering-phase.cc" ,
4851
4871
" src/compiler/turboshaft/memory-optimization-reducer.cc" ,
4852
4872
" src/compiler/turboshaft/operations.cc" ,
@@ -5082,6 +5102,7 @@ v8_source_set("v8_base_without_compiler") {
5082
5102
" src/heap/cppgc-js/unified-heap-marking-verifier.cc" ,
5083
5103
" src/heap/cppgc-js/unified-heap-marking-visitor.cc" ,
5084
5104
" src/heap/ephemeron-remembered-set.cc" ,
5105
+ " src/heap/evacuation-allocator.cc" ,
5085
5106
" src/heap/evacuation-verifier.cc" ,
5086
5107
" src/heap/factory-base.cc" ,
5087
5108
" src/heap/factory.cc" ,
@@ -5102,6 +5123,7 @@ v8_source_set("v8_base_without_compiler") {
5102
5123
" src/heap/large-spaces.cc" ,
5103
5124
" src/heap/local-factory.cc" ,
5104
5125
" src/heap/local-heap.cc" ,
5126
+ " src/heap/main-allocator.cc" ,
5105
5127
" src/heap/mark-compact.cc" ,
5106
5128
" src/heap/mark-sweep-utilities.cc" ,
5107
5129
" src/heap/marking-barrier.cc" ,
@@ -5327,6 +5349,7 @@ v8_source_set("v8_base_without_compiler") {
5327
5349
" src/runtime/runtime.cc" ,
5328
5350
" src/sandbox/code-pointer-table.cc" ,
5329
5351
" src/sandbox/external-pointer-table.cc" ,
5352
+ " src/sandbox/indirect-pointer-table.cc" ,
5330
5353
" src/sandbox/sandbox.cc" ,
5331
5354
" src/sandbox/testing.cc" ,
5332
5355
" src/snapshot/code-serializer.cc" ,
@@ -5427,6 +5450,7 @@ v8_source_set("v8_base_without_compiler") {
5427
5450
" src/asmjs/asm-parser.cc" ,
5428
5451
" src/asmjs/asm-scanner.cc" ,
5429
5452
" src/asmjs/asm-types.cc" ,
5453
+ " src/compiler/turboshaft/wasm-dead-code-elimination-phase.cc" ,
5430
5454
" src/debug/debug-wasm-objects.cc" ,
5431
5455
" src/runtime/runtime-test-wasm.cc" ,
5432
5456
" src/runtime/runtime-wasm.cc" ,
@@ -5640,6 +5664,20 @@ v8_source_set("v8_base_without_compiler") {
5640
5664
" src/execution/loong64/simulator-loong64.cc" ,
5641
5665
" src/regexp/loong64/regexp-macro-assembler-loong64.cc" ,
5642
5666
]
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
+ }
5643
5681
} else if (v8_current_cpu == " ppc" ) {
5644
5682
sources += [
5645
5683
# ## gcmole(ppc) ###
@@ -6391,6 +6429,7 @@ v8_header_set("v8_heap_base_headers") {
6391
6429
" src/heap/base/basic-slot-set.h" ,
6392
6430
" src/heap/base/bytes.h" ,
6393
6431
" src/heap/base/incremental-marking-schedule.h" ,
6432
+ " src/heap/base/memory-tagging.h" ,
6394
6433
" src/heap/base/stack.h" ,
6395
6434
" src/heap/base/worklist.h" ,
6396
6435
]
@@ -6404,6 +6443,7 @@ v8_source_set("v8_heap_base") {
6404
6443
sources = [
6405
6444
" src/heap/base/active-system-pages.cc" ,
6406
6445
" src/heap/base/incremental-marking-schedule.cc" ,
6446
+ " src/heap/base/memory-tagging.cc" ,
6407
6447
" src/heap/base/stack.cc" ,
6408
6448
" src/heap/base/worklist.cc" ,
6409
6449
]
@@ -6440,6 +6480,8 @@ v8_source_set("v8_heap_base") {
6440
6480
6441
6481
configs = [ " :internal_config" ]
6442
6482
6483
+ deps = [ " :v8_config_headers" ]
6484
+
6443
6485
public_deps = [
6444
6486
" :v8_heap_base_headers" ,
6445
6487
" :v8_libbase" ,
0 commit comments