OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "platform/inspector_protocol/Values.h" | |
6 | |
7 #include "platform/inspector_protocol/Parser.h" | |
8 #include "platform/inspector_protocol/String16.h" | |
9 | |
10 #include <algorithm> | 5 #include <algorithm> |
11 #include <cmath> | 6 #include <cmath> |
12 | 7 |
13 namespace blink { | 8 namespace blink { |
14 namespace protocol { | 9 namespace protocol { |
15 | 10 |
16 namespace { | 11 namespace { |
17 | 12 |
18 const char* const nullString = "null"; | 13 const char* const nullValueString = "null"; |
19 const char* const trueString = "true"; | 14 const char* const trueValueString = "true"; |
20 const char* const falseString = "false"; | 15 const char* const falseValueString = "false"; |
21 | 16 |
22 inline bool escapeChar(UChar c, String16Builder* dst) | 17 inline bool escapeChar(UChar c, String16Builder* dst) |
23 { | 18 { |
24 switch (c) { | 19 switch (c) { |
25 case '\b': dst->append("\\b"); break; | 20 case '\b': dst->append("\\b"); break; |
26 case '\f': dst->append("\\f"); break; | 21 case '\f': dst->append("\\f"); break; |
27 case '\n': dst->append("\\n"); break; | 22 case '\n': dst->append("\\n"); break; |
28 case '\r': dst->append("\\r"); break; | 23 case '\r': dst->append("\\r"); break; |
29 case '\t': dst->append("\\t"); break; | 24 case '\t': dst->append("\\t"); break; |
30 case '\\': dst->append("\\\\"); break; | 25 case '\\': dst->append("\\\\"); break; |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
102 { | 97 { |
103 String16Builder result; | 98 String16Builder result; |
104 result.reserveCapacity(512); | 99 result.reserveCapacity(512); |
105 writeJSON(&result); | 100 writeJSON(&result); |
106 return result.toString(); | 101 return result.toString(); |
107 } | 102 } |
108 | 103 |
109 void Value::writeJSON(String16Builder* output) const | 104 void Value::writeJSON(String16Builder* output) const |
110 { | 105 { |
111 DCHECK(m_type == TypeNull); | 106 DCHECK(m_type == TypeNull); |
112 output->append(nullString, 4); | 107 output->append(nullValueString, 4); |
113 } | 108 } |
114 | 109 |
115 std::unique_ptr<Value> Value::clone() const | 110 std::unique_ptr<Value> Value::clone() const |
116 { | 111 { |
117 return Value::null(); | 112 return Value::null(); |
118 } | 113 } |
119 | 114 |
120 bool FundamentalValue::asBoolean(bool* output) const | 115 bool FundamentalValue::asBoolean(bool* output) const |
121 { | 116 { |
122 if (type() != TypeBoolean) | 117 if (type() != TypeBoolean) |
(...skipping 21 matching lines...) Expand all Loading... |
144 return false; | 139 return false; |
145 *output = m_integerValue; | 140 *output = m_integerValue; |
146 return true; | 141 return true; |
147 } | 142 } |
148 | 143 |
149 void FundamentalValue::writeJSON(String16Builder* output) const | 144 void FundamentalValue::writeJSON(String16Builder* output) const |
150 { | 145 { |
151 DCHECK(type() == TypeBoolean || type() == TypeInteger || type() == TypeDoubl
e); | 146 DCHECK(type() == TypeBoolean || type() == TypeInteger || type() == TypeDoubl
e); |
152 if (type() == TypeBoolean) { | 147 if (type() == TypeBoolean) { |
153 if (m_boolValue) | 148 if (m_boolValue) |
154 output->append(trueString, 4); | 149 output->append(trueValueString, 4); |
155 else | 150 else |
156 output->append(falseString, 5); | 151 output->append(falseValueString, 5); |
157 } else if (type() == TypeDouble) { | 152 } else if (type() == TypeDouble) { |
158 if (!std::isfinite(m_doubleValue)) { | 153 if (!std::isfinite(m_doubleValue)) { |
159 output->append(nullString, 4); | 154 output->append(nullValueString, 4); |
160 return; | 155 return; |
161 } | 156 } |
162 output->append(String16::fromDouble(m_doubleValue)); | 157 output->append(String16::fromDouble(m_doubleValue)); |
163 } else if (type() == TypeInteger) { | 158 } else if (type() == TypeInteger) { |
164 output->append(String16::fromInteger(m_integerValue)); | 159 output->append(String16::fromInteger(m_integerValue)); |
165 } | 160 } |
166 } | 161 } |
167 | 162 |
168 std::unique_ptr<Value> FundamentalValue::clone() const | 163 std::unique_ptr<Value> FundamentalValue::clone() const |
169 { | 164 { |
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
402 } | 397 } |
403 | 398 |
404 protocol::Value* ListValue::at(size_t index) | 399 protocol::Value* ListValue::at(size_t index) |
405 { | 400 { |
406 DCHECK_LT(index, m_data.size()); | 401 DCHECK_LT(index, m_data.size()); |
407 return m_data[index].get(); | 402 return m_data[index].get(); |
408 } | 403 } |
409 | 404 |
410 } // namespace protocol | 405 } // namespace protocol |
411 } // namespace blink | 406 } // namespace blink |
OLD | NEW |