Skip to content

Commit fe970f5

Browse files
committed
TriState should be an enum class and use "Indeterminate" instead of "Mixed"
https://bugs.webkit.org/show_bug.cgi?id=211268 Reviewed by Mark Lam. Source/JavaScriptCore: * b3/B3Const32Value.cpp: (JSC::B3::Const32Value::equalConstant const): (JSC::B3::Const32Value::notEqualConstant const): (JSC::B3::Const32Value::lessThanConstant const): (JSC::B3::Const32Value::greaterThanConstant const): (JSC::B3::Const32Value::lessEqualConstant const): (JSC::B3::Const32Value::greaterEqualConstant const): (JSC::B3::Const32Value::aboveConstant const): (JSC::B3::Const32Value::belowConstant const): (JSC::B3::Const32Value::aboveEqualConstant const): (JSC::B3::Const32Value::belowEqualConstant const): * b3/B3Const64Value.cpp: (JSC::B3::Const64Value::equalConstant const): (JSC::B3::Const64Value::notEqualConstant const): (JSC::B3::Const64Value::lessThanConstant const): (JSC::B3::Const64Value::greaterThanConstant const): (JSC::B3::Const64Value::lessEqualConstant const): (JSC::B3::Const64Value::greaterEqualConstant const): (JSC::B3::Const64Value::aboveConstant const): (JSC::B3::Const64Value::belowConstant const): (JSC::B3::Const64Value::aboveEqualConstant const): (JSC::B3::Const64Value::belowEqualConstant const): * b3/B3ConstDoubleValue.cpp: (JSC::B3::ConstDoubleValue::equalConstant const): (JSC::B3::ConstDoubleValue::notEqualConstant const): (JSC::B3::ConstDoubleValue::lessThanConstant const): (JSC::B3::ConstDoubleValue::greaterThanConstant const): (JSC::B3::ConstDoubleValue::lessEqualConstant const): (JSC::B3::ConstDoubleValue::greaterEqualConstant const): (JSC::B3::ConstDoubleValue::equalOrUnorderedConstant const): * b3/B3ConstFloatValue.cpp: (JSC::B3::ConstFloatValue::equalConstant const): (JSC::B3::ConstFloatValue::notEqualConstant const): (JSC::B3::ConstFloatValue::lessThanConstant const): (JSC::B3::ConstFloatValue::greaterThanConstant const): (JSC::B3::ConstFloatValue::lessEqualConstant const): (JSC::B3::ConstFloatValue::greaterEqualConstant const): (JSC::B3::ConstFloatValue::equalOrUnorderedConstant const): * b3/B3Procedure.cpp: (JSC::B3::Procedure::addBoolConstant): * b3/B3Procedure.h: * b3/B3ReduceStrength.cpp: * b3/B3Value.cpp: (JSC::B3::Value::equalConstant const): (JSC::B3::Value::notEqualConstant const): (JSC::B3::Value::lessThanConstant const): (JSC::B3::Value::greaterThanConstant const): (JSC::B3::Value::lessEqualConstant const): (JSC::B3::Value::greaterEqualConstant const): (JSC::B3::Value::aboveConstant const): (JSC::B3::Value::belowConstant const): (JSC::B3::Value::aboveEqualConstant const): (JSC::B3::Value::belowEqualConstant const): (JSC::B3::Value::equalOrUnorderedConstant const): (JSC::B3::Value::asTriState const): * b3/B3Value.h: * bytecode/CodeBlock.cpp: (JSC::CodeBlock::~CodeBlock): (JSC::CodeBlock::thresholdForJIT): * bytecode/UnlinkedCodeBlock.cpp: (JSC::UnlinkedCodeBlock::UnlinkedCodeBlock): * bytecode/UnlinkedFunctionExecutable.cpp: (JSC::UnlinkedFunctionExecutable::visitChildren): * bytecompiler/NodesCodegen.cpp: (JSC::ConstantNode::emitBytecodeInConditionContext): (JSC::BinaryOpNode::emitBytecodeInConditionContext): (JSC::BinaryOpNode::tryFoldToBranch): * dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::handleIntrinsicCall): * dfg/DFGCFGSimplificationPhase.cpp: (JSC::DFG::CFGSimplificationPhase::run): * dfg/DFGLazyJSValue.cpp: (JSC::DFG::equalToSingleCharacter): (JSC::DFG::equalToStringImpl): (JSC::DFG::LazyJSValue::strictEqual const): * dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compile): * ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileDataViewGet): (JSC::FTL::DFG::LowerDFGToB3::compileDataViewSet): * ftl/FTLOutput.cpp: (JSC::FTL::Output::equal): (JSC::FTL::Output::notEqual): (JSC::FTL::Output::above): (JSC::FTL::Output::aboveOrEqual): (JSC::FTL::Output::below): (JSC::FTL::Output::belowOrEqual): (JSC::FTL::Output::greaterThan): (JSC::FTL::Output::greaterThanOrEqual): (JSC::FTL::Output::lessThan): (JSC::FTL::Output::lessThanOrEqual): * jit/JITOperations.cpp: * runtime/CachedTypes.cpp: (JSC::UnlinkedCodeBlock::UnlinkedCodeBlock): * runtime/DefinePropertyAttributes.h: (JSC::DefinePropertyAttributes::DefinePropertyAttributes): (JSC::DefinePropertyAttributes::hasWritable const): (JSC::DefinePropertyAttributes::writable const): (JSC::DefinePropertyAttributes::hasConfigurable const): (JSC::DefinePropertyAttributes::configurable const): (JSC::DefinePropertyAttributes::hasEnumerable const): (JSC::DefinePropertyAttributes::enumerable const): (JSC::DefinePropertyAttributes::setWritable): (JSC::DefinePropertyAttributes::setConfigurable): (JSC::DefinePropertyAttributes::setEnumerable): * runtime/IntlCollator.cpp: (JSC::IntlCollator::initializeCollator): * runtime/IntlDateTimeFormat.cpp: (JSC::IntlDateTimeFormat::initializeDateTimeFormat): * runtime/IntlNumberFormat.cpp: (JSC::IntlNumberFormat::initializeNumberFormat): * runtime/IntlObject.cpp: (JSC::intlBooleanOption): * runtime/JSCJSValueInlines.h: (JSC::JSValue::pureStrictEqual): (JSC::JSValue::pureToBoolean const): * runtime/JSCellInlines.h: (JSC::JSCell::pureToBoolean const): Source/WebCore: * dom/Document.cpp: (WebCore::Document::queryCommandIndeterm): (WebCore::Document::queryCommandState): * editing/EditingStyle.cpp: (WebCore::EditingStyle::triStateOfStyle const): (WebCore::EditingStyle::hasStyle): * editing/Editor.cpp: (WebCore::Editor::selectionUnorderedListState const): (WebCore::Editor::selectionOrderedListState const): * editing/EditorCommand.cpp: (WebCore::isStylePresent): (WebCore::stateStyle): (WebCore::stateTextWritingDirection): (WebCore::stateNone): (WebCore::stateStyleWithCSS): (WebCore::Editor::Command::state const): (WebCore::Editor::Command::value const): * page/ContextMenuController.cpp: (WebCore::ContextMenuController::checkOrEnableIfNeeded const): Source/WebKit: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::validateCommand): * WebProcess/WebPage/glib/WebPageGLib.cpp: (WebKit::WebPage::getPlatformEditorState const): Source/WebKitLegacy/mac: * WebView/WebHTMLView.mm: (kit): (-[WebHTMLView validateUserInterfaceItemWithoutDelegate:]): Source/WTF: The word "indeterminate" comes from boost::tribool. A third state is generally not "mixed" but rather unknown. * wtf/TriState.h: Canonical link: https://commits.webkit.org/224166@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@260984 268f45cc-cd09-0410-ab3c-d52691b4dbfc
1 parent 4f1e48a commit fe970f5

42 files changed

Lines changed: 445 additions & 259 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Source/JavaScriptCore/ChangeLog

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,129 @@
1+
2020-04-30 Ross Kirsling <[email protected]>
2+
3+
TriState should be an enum class and use "Indeterminate" instead of "Mixed"
4+
https://bugs.webkit.org/show_bug.cgi?id=211268
5+
6+
Reviewed by Mark Lam.
7+
8+
* b3/B3Const32Value.cpp:
9+
(JSC::B3::Const32Value::equalConstant const):
10+
(JSC::B3::Const32Value::notEqualConstant const):
11+
(JSC::B3::Const32Value::lessThanConstant const):
12+
(JSC::B3::Const32Value::greaterThanConstant const):
13+
(JSC::B3::Const32Value::lessEqualConstant const):
14+
(JSC::B3::Const32Value::greaterEqualConstant const):
15+
(JSC::B3::Const32Value::aboveConstant const):
16+
(JSC::B3::Const32Value::belowConstant const):
17+
(JSC::B3::Const32Value::aboveEqualConstant const):
18+
(JSC::B3::Const32Value::belowEqualConstant const):
19+
* b3/B3Const64Value.cpp:
20+
(JSC::B3::Const64Value::equalConstant const):
21+
(JSC::B3::Const64Value::notEqualConstant const):
22+
(JSC::B3::Const64Value::lessThanConstant const):
23+
(JSC::B3::Const64Value::greaterThanConstant const):
24+
(JSC::B3::Const64Value::lessEqualConstant const):
25+
(JSC::B3::Const64Value::greaterEqualConstant const):
26+
(JSC::B3::Const64Value::aboveConstant const):
27+
(JSC::B3::Const64Value::belowConstant const):
28+
(JSC::B3::Const64Value::aboveEqualConstant const):
29+
(JSC::B3::Const64Value::belowEqualConstant const):
30+
* b3/B3ConstDoubleValue.cpp:
31+
(JSC::B3::ConstDoubleValue::equalConstant const):
32+
(JSC::B3::ConstDoubleValue::notEqualConstant const):
33+
(JSC::B3::ConstDoubleValue::lessThanConstant const):
34+
(JSC::B3::ConstDoubleValue::greaterThanConstant const):
35+
(JSC::B3::ConstDoubleValue::lessEqualConstant const):
36+
(JSC::B3::ConstDoubleValue::greaterEqualConstant const):
37+
(JSC::B3::ConstDoubleValue::equalOrUnorderedConstant const):
38+
* b3/B3ConstFloatValue.cpp:
39+
(JSC::B3::ConstFloatValue::equalConstant const):
40+
(JSC::B3::ConstFloatValue::notEqualConstant const):
41+
(JSC::B3::ConstFloatValue::lessThanConstant const):
42+
(JSC::B3::ConstFloatValue::greaterThanConstant const):
43+
(JSC::B3::ConstFloatValue::lessEqualConstant const):
44+
(JSC::B3::ConstFloatValue::greaterEqualConstant const):
45+
(JSC::B3::ConstFloatValue::equalOrUnorderedConstant const):
46+
* b3/B3Procedure.cpp:
47+
(JSC::B3::Procedure::addBoolConstant):
48+
* b3/B3Procedure.h:
49+
* b3/B3ReduceStrength.cpp:
50+
* b3/B3Value.cpp:
51+
(JSC::B3::Value::equalConstant const):
52+
(JSC::B3::Value::notEqualConstant const):
53+
(JSC::B3::Value::lessThanConstant const):
54+
(JSC::B3::Value::greaterThanConstant const):
55+
(JSC::B3::Value::lessEqualConstant const):
56+
(JSC::B3::Value::greaterEqualConstant const):
57+
(JSC::B3::Value::aboveConstant const):
58+
(JSC::B3::Value::belowConstant const):
59+
(JSC::B3::Value::aboveEqualConstant const):
60+
(JSC::B3::Value::belowEqualConstant const):
61+
(JSC::B3::Value::equalOrUnorderedConstant const):
62+
(JSC::B3::Value::asTriState const):
63+
* b3/B3Value.h:
64+
* bytecode/CodeBlock.cpp:
65+
(JSC::CodeBlock::~CodeBlock):
66+
(JSC::CodeBlock::thresholdForJIT):
67+
* bytecode/UnlinkedCodeBlock.cpp:
68+
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
69+
* bytecode/UnlinkedFunctionExecutable.cpp:
70+
(JSC::UnlinkedFunctionExecutable::visitChildren):
71+
* bytecompiler/NodesCodegen.cpp:
72+
(JSC::ConstantNode::emitBytecodeInConditionContext):
73+
(JSC::BinaryOpNode::emitBytecodeInConditionContext):
74+
(JSC::BinaryOpNode::tryFoldToBranch):
75+
* dfg/DFGByteCodeParser.cpp:
76+
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
77+
* dfg/DFGCFGSimplificationPhase.cpp:
78+
(JSC::DFG::CFGSimplificationPhase::run):
79+
* dfg/DFGLazyJSValue.cpp:
80+
(JSC::DFG::equalToSingleCharacter):
81+
(JSC::DFG::equalToStringImpl):
82+
(JSC::DFG::LazyJSValue::strictEqual const):
83+
* dfg/DFGSpeculativeJIT64.cpp:
84+
(JSC::DFG::SpeculativeJIT::compile):
85+
* ftl/FTLLowerDFGToB3.cpp:
86+
(JSC::FTL::DFG::LowerDFGToB3::compileDataViewGet):
87+
(JSC::FTL::DFG::LowerDFGToB3::compileDataViewSet):
88+
* ftl/FTLOutput.cpp:
89+
(JSC::FTL::Output::equal):
90+
(JSC::FTL::Output::notEqual):
91+
(JSC::FTL::Output::above):
92+
(JSC::FTL::Output::aboveOrEqual):
93+
(JSC::FTL::Output::below):
94+
(JSC::FTL::Output::belowOrEqual):
95+
(JSC::FTL::Output::greaterThan):
96+
(JSC::FTL::Output::greaterThanOrEqual):
97+
(JSC::FTL::Output::lessThan):
98+
(JSC::FTL::Output::lessThanOrEqual):
99+
* jit/JITOperations.cpp:
100+
* runtime/CachedTypes.cpp:
101+
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
102+
* runtime/DefinePropertyAttributes.h:
103+
(JSC::DefinePropertyAttributes::DefinePropertyAttributes):
104+
(JSC::DefinePropertyAttributes::hasWritable const):
105+
(JSC::DefinePropertyAttributes::writable const):
106+
(JSC::DefinePropertyAttributes::hasConfigurable const):
107+
(JSC::DefinePropertyAttributes::configurable const):
108+
(JSC::DefinePropertyAttributes::hasEnumerable const):
109+
(JSC::DefinePropertyAttributes::enumerable const):
110+
(JSC::DefinePropertyAttributes::setWritable):
111+
(JSC::DefinePropertyAttributes::setConfigurable):
112+
(JSC::DefinePropertyAttributes::setEnumerable):
113+
* runtime/IntlCollator.cpp:
114+
(JSC::IntlCollator::initializeCollator):
115+
* runtime/IntlDateTimeFormat.cpp:
116+
(JSC::IntlDateTimeFormat::initializeDateTimeFormat):
117+
* runtime/IntlNumberFormat.cpp:
118+
(JSC::IntlNumberFormat::initializeNumberFormat):
119+
* runtime/IntlObject.cpp:
120+
(JSC::intlBooleanOption):
121+
* runtime/JSCJSValueInlines.h:
122+
(JSC::JSValue::pureStrictEqual):
123+
(JSC::JSValue::pureToBoolean const):
124+
* runtime/JSCellInlines.h:
125+
(JSC::JSCell::pureToBoolean const):
126+
1127
2020-04-30 Ross Kirsling <[email protected]>
2128

3129
[JSC] intlBooleanOption should return TriState instead of taking an out param

Source/JavaScriptCore/b3/B3Const32Value.cpp

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -207,94 +207,94 @@ Value* Const32Value::iToFConstant(Procedure& proc) const
207207
TriState Const32Value::equalConstant(const Value* other) const
208208
{
209209
if (!other->hasInt32())
210-
return MixedTriState;
210+
return TriState::Indeterminate;
211211
return triState(m_value == other->asInt32());
212212
}
213213

214214
TriState Const32Value::notEqualConstant(const Value* other) const
215215
{
216216
if (!other->hasInt32())
217-
return MixedTriState;
217+
return TriState::Indeterminate;
218218
return triState(m_value != other->asInt32());
219219
}
220220

221221
TriState Const32Value::lessThanConstant(const Value* other) const
222222
{
223223
// INT32_MAX < x is always false.
224224
if (static_cast<int32_t>(m_value) == std::numeric_limits<int32_t>::max())
225-
return FalseTriState;
225+
return TriState::False;
226226
if (!other->hasInt32())
227-
return MixedTriState;
227+
return TriState::Indeterminate;
228228
return triState(m_value < other->asInt32());
229229
}
230230

231231
TriState Const32Value::greaterThanConstant(const Value* other) const
232232
{
233233
// INT32_MIN > x is always false.
234234
if (static_cast<int32_t>(m_value) == std::numeric_limits<int32_t>::min())
235-
return FalseTriState;
235+
return TriState::False;
236236
if (!other->hasInt32())
237-
return MixedTriState;
237+
return TriState::Indeterminate;
238238
return triState(m_value > other->asInt32());
239239
}
240240

241241
TriState Const32Value::lessEqualConstant(const Value* other) const
242242
{
243243
// INT32_MIN <= x is always true.
244244
if (static_cast<int32_t>(m_value) == std::numeric_limits<int32_t>::min())
245-
return TrueTriState;
245+
return TriState::True;
246246
if (!other->hasInt32())
247-
return MixedTriState;
247+
return TriState::Indeterminate;
248248
return triState(m_value <= other->asInt32());
249249
}
250250

251251
TriState Const32Value::greaterEqualConstant(const Value* other) const
252252
{
253253
// INT32_MAX >= x is always true.
254254
if (static_cast<int32_t>(m_value) == std::numeric_limits<int32_t>::max())
255-
return TrueTriState;
255+
return TriState::True;
256256
if (!other->hasInt32())
257-
return MixedTriState;
257+
return TriState::Indeterminate;
258258
return triState(m_value >= other->asInt32());
259259
}
260260

261261
TriState Const32Value::aboveConstant(const Value* other) const
262262
{
263263
// UINT32_MIN > x is always false.
264264
if (static_cast<uint32_t>(m_value) == std::numeric_limits<uint32_t>::min())
265-
return FalseTriState;
265+
return TriState::False;
266266
if (!other->hasInt32())
267-
return MixedTriState;
267+
return TriState::Indeterminate;
268268
return triState(static_cast<uint32_t>(m_value) > static_cast<uint32_t>(other->asInt32()));
269269
}
270270

271271
TriState Const32Value::belowConstant(const Value* other) const
272272
{
273273
// UINT32_MAX < x is always false.
274274
if (static_cast<uint32_t>(m_value) == std::numeric_limits<uint32_t>::max())
275-
return FalseTriState;
275+
return TriState::False;
276276
if (!other->hasInt32())
277-
return MixedTriState;
277+
return TriState::Indeterminate;
278278
return triState(static_cast<uint32_t>(m_value) < static_cast<uint32_t>(other->asInt32()));
279279
}
280280

281281
TriState Const32Value::aboveEqualConstant(const Value* other) const
282282
{
283283
// UINT32_MAX >= x is always true.
284284
if (static_cast<uint32_t>(m_value) == std::numeric_limits<uint32_t>::max())
285-
return TrueTriState;
285+
return TriState::True;
286286
if (!other->hasInt32())
287-
return MixedTriState;
287+
return TriState::Indeterminate;
288288
return triState(static_cast<uint32_t>(m_value) >= static_cast<uint32_t>(other->asInt32()));
289289
}
290290

291291
TriState Const32Value::belowEqualConstant(const Value* other) const
292292
{
293293
// UINT32_MIN <= x is always true.
294294
if (static_cast<uint32_t>(m_value) == std::numeric_limits<uint32_t>::min())
295-
return TrueTriState;
295+
return TriState::True;
296296
if (!other->hasInt32())
297-
return MixedTriState;
297+
return TriState::Indeterminate;
298298
return triState(static_cast<uint32_t>(m_value) <= static_cast<uint32_t>(other->asInt32()));
299299
}
300300

Source/JavaScriptCore/b3/B3Const64Value.cpp

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -207,94 +207,94 @@ Value* Const64Value::iToFConstant(Procedure& proc) const
207207
TriState Const64Value::equalConstant(const Value* other) const
208208
{
209209
if (!other->hasInt64())
210-
return MixedTriState;
210+
return TriState::Indeterminate;
211211
return triState(m_value == other->asInt64());
212212
}
213213

214214
TriState Const64Value::notEqualConstant(const Value* other) const
215215
{
216216
if (!other->hasInt64())
217-
return MixedTriState;
217+
return TriState::Indeterminate;
218218
return triState(m_value != other->asInt64());
219219
}
220220

221221
TriState Const64Value::lessThanConstant(const Value* other) const
222222
{
223223
// INT64_MAX < x is always false.
224224
if (static_cast<int64_t>(m_value) == std::numeric_limits<int64_t>::max())
225-
return FalseTriState;
225+
return TriState::False;
226226
if (!other->hasInt64())
227-
return MixedTriState;
227+
return TriState::Indeterminate;
228228
return triState(m_value < other->asInt64());
229229
}
230230

231231
TriState Const64Value::greaterThanConstant(const Value* other) const
232232
{
233233
// INT64_MIN > x is always false.
234234
if (static_cast<int64_t>(m_value) == std::numeric_limits<int64_t>::min())
235-
return FalseTriState;
235+
return TriState::False;
236236
if (!other->hasInt64())
237-
return MixedTriState;
237+
return TriState::Indeterminate;
238238
return triState(m_value > other->asInt64());
239239
}
240240

241241
TriState Const64Value::lessEqualConstant(const Value* other) const
242242
{
243243
// INT64_MIN <= x is always true.
244244
if (static_cast<int64_t>(m_value) == std::numeric_limits<int64_t>::min())
245-
return TrueTriState;
245+
return TriState::True;
246246
if (!other->hasInt64())
247-
return MixedTriState;
247+
return TriState::Indeterminate;
248248
return triState(m_value <= other->asInt64());
249249
}
250250

251251
TriState Const64Value::greaterEqualConstant(const Value* other) const
252252
{
253253
// INT64_MAX >= x is always true.
254254
if (static_cast<int64_t>(m_value) == std::numeric_limits<int64_t>::max())
255-
return TrueTriState;
255+
return TriState::True;
256256
if (!other->hasInt64())
257-
return MixedTriState;
257+
return TriState::Indeterminate;
258258
return triState(m_value >= other->asInt64());
259259
}
260260

261261
TriState Const64Value::aboveConstant(const Value* other) const
262262
{
263263
// UINT64_MIN > x is always false.
264264
if (static_cast<uint64_t>(m_value) == std::numeric_limits<uint64_t>::min())
265-
return FalseTriState;
265+
return TriState::False;
266266
if (!other->hasInt64())
267-
return MixedTriState;
267+
return TriState::Indeterminate;
268268
return triState(static_cast<uint64_t>(m_value) > static_cast<uint64_t>(other->asInt64()));
269269
}
270270

271271
TriState Const64Value::belowConstant(const Value* other) const
272272
{
273273
// UINT64_MAX < x is always false.
274274
if (static_cast<uint64_t>(m_value) == std::numeric_limits<uint64_t>::max())
275-
return FalseTriState;
275+
return TriState::False;
276276
if (!other->hasInt64())
277-
return MixedTriState;
277+
return TriState::Indeterminate;
278278
return triState(static_cast<uint64_t>(m_value) < static_cast<uint64_t>(other->asInt64()));
279279
}
280280

281281
TriState Const64Value::aboveEqualConstant(const Value* other) const
282282
{
283283
// UINT64_MAX >= x is always true.
284284
if (static_cast<uint64_t>(m_value) == std::numeric_limits<uint64_t>::max())
285-
return TrueTriState;
285+
return TriState::True;
286286
if (!other->hasInt64())
287-
return MixedTriState;
287+
return TriState::Indeterminate;
288288
return triState(static_cast<uint64_t>(m_value) >= static_cast<uint64_t>(other->asInt64()));
289289
}
290290

291291
TriState Const64Value::belowEqualConstant(const Value* other) const
292292
{
293293
// UINT64_MIN <= x is always true.
294294
if (static_cast<uint64_t>(m_value) == std::numeric_limits<uint64_t>::min())
295-
return TrueTriState;
295+
return TriState::True;
296296
if (!other->hasInt64())
297-
return MixedTriState;
297+
return TriState::Indeterminate;
298298
return triState(static_cast<uint64_t>(m_value) <= static_cast<uint64_t>(other->asInt64()));
299299
}
300300

0 commit comments

Comments
 (0)