summaryrefslogtreecommitdiff
path: root/deps/v8/src/objects/bigint.h
diff options
context:
space:
mode:
authorMichaël Zasso <targos@protonmail.com>2018-03-07 08:54:53 +0100
committerMichaël Zasso <targos@protonmail.com>2018-03-07 16:48:52 +0100
commit88786fecff336342a56e6f2e7ff3b286be716e47 (patch)
tree92e6ba5b8ac8dae1a058988d20c9d27bfa654390 /deps/v8/src/objects/bigint.h
parent4e86f9b5ab83cbabf43839385bf383e6a7ef7d19 (diff)
downloadnode-new-88786fecff336342a56e6f2e7ff3b286be716e47.tar.gz
deps: update V8 to 6.5.254.31
PR-URL: https://github.com/nodejs/node/pull/18453 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Yang Guo <yangguo@chromium.org> Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Diffstat (limited to 'deps/v8/src/objects/bigint.h')
-rw-r--r--deps/v8/src/objects/bigint.h25
1 files changed, 11 insertions, 14 deletions
diff --git a/deps/v8/src/objects/bigint.h b/deps/v8/src/objects/bigint.h
index de0daf495e..9e29a69b3b 100644
--- a/deps/v8/src/objects/bigint.h
+++ b/deps/v8/src/objects/bigint.h
@@ -24,13 +24,19 @@ class BigIntBase : public HeapObject {
return LengthBits::decode(static_cast<uint32_t>(bitfield));
}
- // The maximum length that the current implementation supports would be
- // kMaxInt / kDigitBits. However, we use a lower limit for now, because
- // raising it later is easier than lowering it.
- // Support up to 1 million bits.
- static const int kMaxLengthBits = 1024 * 1024;
+ // Increasing kMaxLength will require code changes.
+ static const int kMaxLengthBits = kMaxInt - kPointerSize * kBitsPerByte - 1;
static const int kMaxLength = kMaxLengthBits / (kPointerSize * kBitsPerByte);
+ static const int kLengthFieldBits = 30;
+ STATIC_ASSERT(kMaxLength <= ((1 << kLengthFieldBits) - 1));
+ class LengthBits : public BitField<int, 0, kLengthFieldBits> {};
+ class SignBits : public BitField<bool, LengthBits::kNext, 1> {};
+
+ static const int kBitfieldOffset = HeapObject::kHeaderSize;
+ static const int kDigitsOffset = kBitfieldOffset + kPointerSize;
+ static const int kHeaderSize = kDigitsOffset;
+
private:
friend class BigInt;
friend class MutableBigInt;
@@ -44,15 +50,6 @@ class BigIntBase : public HeapObject {
static const int kHalfDigitBits = kDigitBits / 2;
static const digit_t kHalfDigitMask = (1ull << kHalfDigitBits) - 1;
- static const int kBitfieldOffset = HeapObject::kHeaderSize;
- static const int kDigitsOffset = kBitfieldOffset + kPointerSize;
- static const int kHeaderSize = kDigitsOffset;
-
- static const int kLengthFieldBits = 20;
- STATIC_ASSERT(kMaxLength <= ((1 << kLengthFieldBits) - 1));
- class LengthBits : public BitField<int, 0, kLengthFieldBits> {};
- class SignBits : public BitField<bool, LengthBits::kNext, 1> {};
-
// sign() == true means negative.
inline bool sign() const {
intptr_t bitfield = READ_INTPTR_FIELD(this, kBitfieldOffset);