summaryrefslogtreecommitdiff
path: root/chromium/v8/src/common
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-12 14:27:29 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-13 09:35:20 +0000
commitc30a6232df03e1efbd9f3b226777b07e087a1122 (patch)
treee992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/v8/src/common
parent7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff)
downloadqtwebengine-chromium-85-based.tar.gz
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/v8/src/common')
-rw-r--r--chromium/v8/src/common/checks.h2
-rw-r--r--chromium/v8/src/common/globals.h76
-rw-r--r--chromium/v8/src/common/message-template.h6
3 files changed, 53 insertions, 31 deletions
diff --git a/chromium/v8/src/common/checks.h b/chromium/v8/src/common/checks.h
index ef9eb27ca07..eef59701d1d 100644
--- a/chromium/v8/src/common/checks.h
+++ b/chromium/v8/src/common/checks.h
@@ -18,9 +18,11 @@ namespace internal {
#ifdef ENABLE_SLOW_DCHECKS
#define SLOW_DCHECK(condition) \
CHECK(!v8::internal::FLAG_enable_slow_asserts || (condition))
+#define SLOW_DCHECK_IMPLIES(lhs, rhs) SLOW_DCHECK(!(lhs) || (rhs))
V8_EXPORT_PRIVATE extern bool FLAG_enable_slow_asserts;
#else
#define SLOW_DCHECK(condition) ((void)0)
+#define SLOW_DCHECK_IMPLIES(v1, v2) ((void)0)
static const bool FLAG_enable_slow_asserts = false;
#endif
diff --git a/chromium/v8/src/common/globals.h b/chromium/v8/src/common/globals.h
index 4309b702347..dcb1d4e13d4 100644
--- a/chromium/v8/src/common/globals.h
+++ b/chromium/v8/src/common/globals.h
@@ -68,10 +68,13 @@ constexpr int GB = MB * 1024;
#define V8_EMBEDDED_CONSTANT_POOL false
#endif
-#ifdef V8_TARGET_ARCH_ARM
-// Set stack limit lower for ARM than for other architectures because
-// stack allocating MacroAssembler takes 120K bytes.
-// See issue crbug.com/405338
+#if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64
+// Set stack limit lower for ARM and ARM64 than for other architectures because:
+// - on Arm stack allocating MacroAssembler takes 120K bytes.
+// See issue crbug.com/405338
+// - on Arm64 when running in single-process mode for Android WebView, when
+// initializing V8 we already have a large stack and so have to set the
+// limit lower. See issue crbug.com/v8/10575
#define V8_DEFAULT_STACK_SIZE_KB 864
#else
// Slightly less than 1MB, since Windows' default stack size for
@@ -151,6 +154,8 @@ constexpr int kMaxInt16 = (1 << 15) - 1;
constexpr int kMinInt16 = -(1 << 15);
constexpr int kMaxUInt16 = (1 << 16) - 1;
constexpr int kMinUInt16 = 0;
+constexpr int kMaxInt31 = kMaxInt / 2;
+constexpr int kMinInt31 = kMinInt / 2;
constexpr uint32_t kMaxUInt32 = 0xFFFFFFFFu;
constexpr int kMinUInt32 = 0;
@@ -327,7 +332,7 @@ constexpr uint64_t kQuietNaNMask = static_cast<uint64_t>(0xfff) << 51;
// Code-point values in Unicode 4.0 are 21 bits wide.
// Code units in UTF-16 are 16 bits wide.
using uc16 = uint16_t;
-using uc32 = int32_t;
+using uc32 = uint32_t;
constexpr int kOneByteSize = kCharSize;
constexpr int kUC16Size = sizeof(uc16); // NOLINT
@@ -1337,31 +1342,46 @@ class BinaryOperationFeedback {
};
// Type feedback is encoded in such a way that, we can combine the feedback
-// at different points by performing an 'OR' operation. Type feedback moves
-// to a more generic type when we combine feedback.
-//
-// kSignedSmall -> kNumber -> kNumberOrOddball -> kAny
-// kReceiver -> kReceiverOrNullOrUndefined -> kAny
-// kInternalizedString -> kString -> kAny
-// kSymbol -> kAny
-// kBigInt -> kAny
-//
+// at different points by performing an 'OR' operation.
// This is distinct from BinaryOperationFeedback on purpose, because the
// feedback that matters differs greatly as well as the way it is consumed.
class CompareOperationFeedback {
- public:
enum {
- kNone = 0x000,
- kSignedSmall = 0x001,
- kNumber = 0x003,
- kNumberOrOddball = 0x007,
- kInternalizedString = 0x008,
- kString = 0x018,
- kSymbol = 0x020,
- kBigInt = 0x040,
- kReceiver = 0x080,
- kReceiverOrNullOrUndefined = 0x180,
- kAny = 0x1ff
+ kSignedSmallFlag = 1 << 0,
+ kOtherNumberFlag = 1 << 1,
+ kBooleanFlag = 1 << 2,
+ kNullOrUndefinedFlag = 1 << 3,
+ kInternalizedStringFlag = 1 << 4,
+ kOtherStringFlag = 1 << 5,
+ kSymbolFlag = 1 << 6,
+ kBigIntFlag = 1 << 7,
+ kReceiverFlag = 1 << 8,
+ kAnyMask = 0x1FF,
+ };
+
+ public:
+ enum Type {
+ kNone = 0,
+
+ kBoolean = kBooleanFlag,
+ kNullOrUndefined = kNullOrUndefinedFlag,
+ kOddball = kBoolean | kNullOrUndefined,
+
+ kSignedSmall = kSignedSmallFlag,
+ kNumber = kSignedSmall | kOtherNumberFlag,
+ kNumberOrBoolean = kNumber | kBoolean,
+ kNumberOrOddball = kNumber | kOddball,
+
+ kInternalizedString = kInternalizedStringFlag,
+ kString = kInternalizedString | kOtherStringFlag,
+
+ kReceiver = kReceiverFlag,
+ kReceiverOrNullOrUndefined = kReceiver | kNullOrUndefined,
+
+ kBigInt = kBigIntFlag,
+ kSymbol = kSymbolFlag,
+
+ kAny = kAnyMask,
};
};
@@ -1592,8 +1612,8 @@ enum class LoadSensitivity {
V(TrapDataSegmentDropped) \
V(TrapElemSegmentDropped) \
V(TrapTableOutOfBounds) \
- V(TrapBrOnExnNullRef) \
- V(TrapRethrowNullRef) \
+ V(TrapBrOnExnNull) \
+ V(TrapRethrowNull) \
V(TrapNullDereference) \
V(TrapIllegalCast) \
V(TrapArrayOutOfBounds)
diff --git a/chromium/v8/src/common/message-template.h b/chromium/v8/src/common/message-template.h
index e6a25de2663..cf8d66b8bb6 100644
--- a/chromium/v8/src/common/message-template.h
+++ b/chromium/v8/src/common/message-template.h
@@ -320,7 +320,7 @@ namespace internal {
"a location, got %") \
T(InvalidArrayBufferLength, "Invalid array buffer length") \
T(ArrayBufferAllocationFailed, "Array buffer allocation failed") \
- T(Invalid, "Invalid %s : %") \
+ T(Invalid, "Invalid % : %") \
T(InvalidArrayLength, "Invalid array length") \
T(InvalidAtomicAccessIndex, "Invalid atomic access index") \
T(InvalidCodePoint, "Invalid code point %") \
@@ -551,8 +551,8 @@ namespace internal {
T(WasmTrapDataSegmentDropped, "data segment has been dropped") \
T(WasmTrapElemSegmentDropped, "element segment has been dropped") \
T(WasmTrapTableOutOfBounds, "table access out of bounds") \
- T(WasmTrapBrOnExnNullRef, "br_on_exn on nullref value") \
- T(WasmTrapRethrowNullRef, "rethrowing nullref value") \
+ T(WasmTrapBrOnExnNull, "br_on_exn on null value") \
+ T(WasmTrapRethrowNull, "rethrowing null value") \
T(WasmTrapNullDereference, "dereferencing a null pointer") \
T(WasmTrapIllegalCast, "illegal cast") \
T(WasmTrapArrayOutOfBounds, "array element access out of bounds") \