| OLD | NEW |
| 1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 the V8 project 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 "src/inspector/string-util.h" | 5 #include "src/inspector/string-util.h" |
| 6 | 6 |
| 7 #include "src/conversions.h" |
| 7 #include "src/inspector/protocol/Protocol.h" | 8 #include "src/inspector/protocol/Protocol.h" |
| 9 #include "src/unicode-cache.h" |
| 8 | 10 |
| 9 namespace v8_inspector { | 11 namespace v8_inspector { |
| 10 | 12 |
| 11 v8::Local<v8::String> toV8String(v8::Isolate* isolate, const String16& string) { | 13 v8::Local<v8::String> toV8String(v8::Isolate* isolate, const String16& string) { |
| 12 if (string.isEmpty()) return v8::String::Empty(isolate); | 14 if (string.isEmpty()) return v8::String::Empty(isolate); |
| 13 DCHECK(string.length() < v8::String::kMaxLength); | 15 DCHECK(string.length() < v8::String::kMaxLength); |
| 14 return v8::String::NewFromTwoByte( | 16 return v8::String::NewFromTwoByte( |
| 15 isolate, reinterpret_cast<const uint16_t*>(string.characters16()), | 17 isolate, reinterpret_cast<const uint16_t*>(string.characters16()), |
| 16 v8::NewStringType::kNormal, static_cast<int>(string.length())) | 18 v8::NewStringType::kNormal, static_cast<int>(string.length())) |
| 17 .ToLocalChecked(); | 19 .ToLocalChecked(); |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 85 } else { | 87 } else { |
| 86 for (size_t i = 0, j = 0; prefix[j] && i < string.length(); ++i, ++j) { | 88 for (size_t i = 0, j = 0; prefix[j] && i < string.length(); ++i, ++j) { |
| 87 if (string.characters16()[i] != prefix[j]) return false; | 89 if (string.characters16()[i] != prefix[j]) return false; |
| 88 } | 90 } |
| 89 } | 91 } |
| 90 return true; | 92 return true; |
| 91 } | 93 } |
| 92 | 94 |
| 93 namespace protocol { | 95 namespace protocol { |
| 94 | 96 |
| 97 // static |
| 98 double StringUtil::toDouble(const char* s, size_t len, bool* isOk) { |
| 99 v8::internal::UnicodeCache unicode_cache; |
| 100 int flags = v8::internal::ALLOW_HEX | v8::internal::ALLOW_OCTAL | |
| 101 v8::internal::ALLOW_BINARY; |
| 102 double result = StringToDouble(&unicode_cache, s, flags); |
| 103 *isOk = !std::isnan(result); |
| 104 return result; |
| 105 } |
| 106 |
| 95 std::unique_ptr<protocol::Value> StringUtil::parseJSON( | 107 std::unique_ptr<protocol::Value> StringUtil::parseJSON( |
| 96 const StringView& string) { | 108 const StringView& string) { |
| 97 if (!string.length()) return nullptr; | 109 if (!string.length()) return nullptr; |
| 98 if (string.is8Bit()) { | 110 if (string.is8Bit()) { |
| 99 return parseJSONCharacters(string.characters8(), | 111 return parseJSONCharacters(string.characters8(), |
| 100 static_cast<int>(string.length())); | 112 static_cast<int>(string.length())); |
| 101 } | 113 } |
| 102 return parseJSONCharacters(string.characters16(), | 114 return parseJSONCharacters(string.characters16(), |
| 103 static_cast<int>(string.length())); | 115 static_cast<int>(string.length())); |
| 104 } | 116 } |
| (...skipping 16 matching lines...) Expand all Loading... |
| 121 std::unique_ptr<StringBufferImpl> StringBufferImpl::adopt(String16& string) { | 133 std::unique_ptr<StringBufferImpl> StringBufferImpl::adopt(String16& string) { |
| 122 return std::unique_ptr<StringBufferImpl>(new StringBufferImpl(string)); | 134 return std::unique_ptr<StringBufferImpl>(new StringBufferImpl(string)); |
| 123 } | 135 } |
| 124 | 136 |
| 125 StringBufferImpl::StringBufferImpl(String16& string) { | 137 StringBufferImpl::StringBufferImpl(String16& string) { |
| 126 m_owner.swap(string); | 138 m_owner.swap(string); |
| 127 m_string = toStringView(m_owner); | 139 m_string = toStringView(m_owner); |
| 128 } | 140 } |
| 129 | 141 |
| 130 } // namespace v8_inspector | 142 } // namespace v8_inspector |
| OLD | NEW |