67 {
68 AlternativeReadingScope alt(&helper_->
reader_, kernel_offset);
69 uint8_t payload = 0;
71 switch (tag) {
72 case kBigIntLiteral: {
74 const String& literal_str =
78 if (simple_value_->
IsNull()) {
79 H.ReportError(
"Integer literal %s is out of range",
80 literal_str.ToCString());
82 }
83 *simple_value_ =
H.Canonicalize(*simple_value_);
84 return true;
85 }
86 case kStringLiteral:
88 simple_value_ = &
H.DartSymbolPlain(
90 return true;
91 case kSpecializedIntLiteral:
93 simple_value_ =
97 *simple_value_ =
H.Canonicalize(*simple_value_);
98 return true;
99 case kNegativeIntLiteral:
104 *simple_value_ =
H.Canonicalize(*simple_value_);
105 return true;
106 case kPositiveIntLiteral:
111 *simple_value_ =
H.Canonicalize(*simple_value_);
112 return true;
113 case kDoubleLiteral:
117 *simple_value_ =
H.Canonicalize(*simple_value_);
118 return true;
119 case kTrueLiteral:
122 return true;
123 case kFalseLiteral:
126 return true;
127 case kNullLiteral:
130 return true;
131 default:
132 return false;
133 }
134 }
static const Bool & Get(bool value)
static DoublePtr New(double d, Heap::Space space=Heap::kNew)
static IntegerPtr New(const String &str, Heap::Space space=Heap::kNew)
static Object & ZoneHandle()
TokenPosition ReadPosition()
Tag ReadTag(uint8_t *payload=nullptr)
StringIndex ReadStringReference()
static constexpr int SpecializedIntLiteralBias