Index: mojo/public/bindings/js/v8_string.cc |
diff --git a/mojo/public/bindings/js/v8_string.cc b/mojo/public/bindings/js/v8_string.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4eb6d4620c0dc2c09d06ff96badc07aeee3ec8fc |
--- /dev/null |
+++ b/mojo/public/bindings/js/v8_string.cc |
@@ -0,0 +1,30 @@ |
+// Copyright 2013 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 "mojo/public/bindings/js/v8_string.h" |
+ |
+namespace mojo { |
+namespace js { |
+ |
+v8::Handle<v8::String> Wrapper<std::string>::ToObject(v8::Isolate* isolate, |
+ std::string native) { |
+ return v8::String::NewFromUtf8(isolate, |
+ native.data(), |
+ v8::String::kNormalString, |
+ native.length()); |
+} |
+ |
+std::string Wrapper<std::string>::ToNative(v8::Handle<v8::Value> value) { |
+ if (!value->IsString()) |
+ return std::string(); |
+ v8::Handle<v8::String> string = v8::Handle<v8::String>::Cast(value); |
+ int length = string->Utf8Length(); |
+ std::string result; |
+ result.resize(length); |
+ string->WriteUtf8(&result[0], length, NULL, v8::String::NO_NULL_TERMINATION); |
+ return result; |
+} |
+ |
+} // namespace js |
+} // namespace mojo |