| // Copyright 2018 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "third_party/blink/renderer/platform/bindings/trace_wrapper_v8_string.h" |
| #include "third_party/blink/renderer/platform/bindings/v8_binding.h" |
| #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" |
| |
| namespace blink { |
| |
| void TraceWrapperV8String::Concat(v8::Isolate* isolate, const String& string) { |
| DCHECK(isolate); |
| v8::HandleScope handle_scope(isolate); |
| v8::Local<v8::String> target_string = |
| (string_.IsEmpty()) ? V8String(isolate, string) |
| : v8::String::Concat(string_.NewLocal(isolate), |
| V8String(isolate, string)); |
| string_.Set(isolate, target_string); |
| } |
| |
| String TraceWrapperV8String::Flatten(v8::Isolate* isolate) const { |
| if (IsEmpty()) |
| return String(); |
| DCHECK(isolate); |
| v8::HandleScope handle_scope(isolate); |
| return ToBlinkString<String>(string_.NewLocal(isolate), kExternalize); |
| } |
| |
| } // namespace blink |