| // Copyright 2019 The V8 Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // This file is V8 specific. It's not rolled from the upstream project. |
| |
| #include "json_platform.h" |
| |
| #include <cmath> |
| #include "../../../src/numbers/conversions.h" |
| #include "../../../src/utils/vector.h" |
| |
| namespace v8_crdtp { |
| namespace json { |
| namespace platform { |
| // Parses |str| into |result|. Returns false iff there are |
| // leftover characters or parsing errors. |
| bool StrToD(const char* str, double* result) { |
| *result = v8::internal::StringToDouble(str, v8::internal::NO_FLAGS); |
| return std::isfinite(*result); |
| } |
| |
| // Prints |value| in a format suitable for JSON. |
| std::string DToStr(double value) { |
| v8::internal::ScopedVector<char> buffer( |
| v8::internal::kDoubleToCStringMinBufferSize); |
| const char* str = v8::internal::DoubleToCString(value, buffer); |
| return (str == nullptr) ? "" : std::string(str); |
| } |
| } // namespace platform |
| } // namespace json |
| } // namespace v8_crdtp |