diff --git a/common.gypi b/common.gypi index 4b2d46efd2a213..7dea2696d2bc40 100644 --- a/common.gypi +++ b/common.gypi @@ -36,7 +36,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.11', + 'v8_embedder_string': '-node.12', ##### V8 defaults for Node.js ##### diff --git a/deps/v8/src/maglev/maglev-code-generator.cc b/deps/v8/src/maglev/maglev-code-generator.cc index 27c4d0ee25e056..3eb18746ad461a 100644 --- a/deps/v8/src/maglev/maglev-code-generator.cc +++ b/deps/v8/src/maglev/maglev-code-generator.cc @@ -419,7 +419,11 @@ class ParallelMoveResolver { void EmitMovesFromSource(RegisterT source_reg, GapMoveTargets&& targets) { DCHECK(moves_from_register_[source_reg.code()].is_empty()); if constexpr (DecompressIfNeeded) { - static_assert(COMPRESS_POINTERS_BOOL); + // The DecompressIfNeeded clause is redundant with the if-constexpr above, + // but otherwise this code cannot be compiled by compilers not yet + // implementing CWG2518. + static_assert(DecompressIfNeeded && COMPRESS_POINTERS_BOOL); + if (targets.needs_decompression == kNeedsDecompression) { __ DecompressTagged(source_reg, source_reg); } @@ -462,7 +466,11 @@ class ParallelMoveResolver { // Decompress after the first move, subsequent moves reuse this register so // they're guaranteed to be decompressed. if constexpr (DecompressIfNeeded) { - static_assert(COMPRESS_POINTERS_BOOL); + // The DecompressIfNeeded clause is redundant with the if-constexpr above, + // but otherwise this code cannot be compiled by compilers not yet + // implementing CWG2518. + static_assert(DecompressIfNeeded && COMPRESS_POINTERS_BOOL); + if (targets.needs_decompression == kNeedsDecompression) { __ DecompressTagged(register_with_slot_value, register_with_slot_value); targets.needs_decompression = kDoesNotNeedDecompression;