|
834 | 834 | action='store_true', |
835 | 835 | dest='pointer_compression_shared_cage', |
836 | 836 | default=None, |
837 | | - help='[Experimental] Use V8 pointer compression with shared cage (requires --experimental-enable-pointer-compression)') |
| 837 | + help='[Experimental] Use V8 pointer compression with a shared cage and enable the V8 sandbox (requires --experimental-enable-pointer-compression)') |
838 | 838 |
|
839 | 839 | parser.add_argument('--v8-options', |
840 | 840 | action='store', |
@@ -2201,16 +2201,10 @@ def configure_v8(o, configs): |
2201 | 2201 | flavor not in ('aix', 'os400', 'zos') and |
2202 | 2202 | o['variables']['target_arch'] in maglev_enabled_architectures) |
2203 | 2203 | o['variables']['v8_enable_pointer_compression'] = 1 if options.enable_pointer_compression else 0 |
2204 | | - # Using the sandbox requires always allocating array buffer backing stores in the sandbox. |
2205 | | - # We currently have many backing stores tied to pointers from C++ land that are not |
2206 | | - # even necessarily dynamic (e.g. in static storage) for fast communication between JS and C++. |
2207 | | - # Until we manage to get rid of all those, v8_enable_sandbox cannot be used. |
2208 | | - # Note that enabling pointer compression without enabling sandbox is unsupported by V8, |
2209 | | - # so this can be broken at any time. |
2210 | | - o['variables']['v8_enable_sandbox'] = 0 |
2211 | | - # We set v8_enable_pointer_compression_shared_cage to 0 always, even when |
2212 | | - # pointer compression is enabled so that we don't accidentally enable shared |
2213 | | - # cage mode when pointer compression is on. |
| 2204 | + # Like V8's own default, the sandbox goes with the shared pointer compression |
| 2205 | + # cage. Multi-cage builds give every IsolateGroup its own sandbox, which the |
| 2206 | + # array buffer allocator does not know about yet. |
| 2207 | + o['variables']['v8_enable_sandbox'] = 1 if options.pointer_compression_shared_cage else 0 |
2214 | 2208 | o['variables']['v8_enable_pointer_compression_shared_cage'] = 1 if options.pointer_compression_shared_cage else 0 |
2215 | 2209 | o['variables']['v8_enable_external_code_space'] = 1 if options.enable_pointer_compression else 0 |
2216 | 2210 | o['variables']['v8_enable_31bit_smis_on_64bit_arch'] = 1 if options.enable_pointer_compression else 0 |
|
0 commit comments