48 {
49 AlternativeReadingScope alt(&helper_->
reader_, kernel_offset);
50 uint8_t payload = 0;
52 switch (tag) {
53 case kBigIntLiteral: {
55 const String& literal_str =
59 if (simple_value_->
IsNull()) {
60 H.ReportError(
"Integer literal %s is out of range",
61 literal_str.ToCString());
63 }
64 *simple_value_ =
H.Canonicalize(*simple_value_);
65 return true;
66 }
67 case kStringLiteral:
69 simple_value_ = &
H.DartSymbolPlain(
71 return true;
72 case kSpecializedIntLiteral:
74 simple_value_ =
78 *simple_value_ =
H.Canonicalize(*simple_value_);
79 return true;
80 case kNegativeIntLiteral:
85 *simple_value_ =
H.Canonicalize(*simple_value_);
86 return true;
87 case kPositiveIntLiteral:
92 *simple_value_ =
H.Canonicalize(*simple_value_);
93 return true;
94 case kDoubleLiteral:
98 *simple_value_ =
H.Canonicalize(*simple_value_);
99 return true;
100 case kTrueLiteral:
103 return true;
104 case kFalseLiteral:
107 return true;
108 case kNullLiteral:
111 return true;
112 default:
113 return false;
114 }
115 }
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