Index: third_party/WebKit/Source/bindings/core/v8/JSONValuesForV8.cpp |
diff --git a/third_party/WebKit/Source/platform/JSONValuesForV8.cpp b/third_party/WebKit/Source/bindings/core/v8/JSONValuesForV8.cpp |
similarity index 83% |
rename from third_party/WebKit/Source/platform/JSONValuesForV8.cpp |
rename to third_party/WebKit/Source/bindings/core/v8/JSONValuesForV8.cpp |
index 94ded635e57939761eefbcd53aca5b311aef680e..9dbf7f57d091a57739a12ce9e64c5061e73216ad 100644 |
--- a/third_party/WebKit/Source/platform/JSONValuesForV8.cpp |
+++ b/third_party/WebKit/Source/bindings/core/v8/JSONValuesForV8.cpp |
@@ -2,7 +2,11 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "platform/JSONValuesForV8.h" |
+#include "bindings/core/v8/JSONValuesForV8.h" |
+ |
+#include "bindings/core/v8/ExceptionState.h" |
+#include "bindings/core/v8/ScriptState.h" |
+#include "bindings/core/v8/V8Binding.h" |
namespace blink { |
@@ -83,4 +87,17 @@ PassRefPtr<JSONValue> toJSONValue(v8::Local<v8::Context> context, v8::Local<v8:: |
return nullptr; |
} |
+v8::Local<v8::Value> fromJSONString(ScriptState* scriptState, const String& stringifiedJSON, ExceptionState& exceptionState) |
+{ |
+ v8::Isolate* isolate = scriptState->isolate(); |
+ v8::Local<v8::Value> parsed; |
+ v8::TryCatch tryCatch(isolate); |
+ if (!v8Call(v8::JSON::Parse(isolate, v8String(isolate, stringifiedJSON)), parsed, tryCatch)) { |
+ if (tryCatch.HasCaught()) |
+ exceptionState.rethrowV8Exception(tryCatch.Exception()); |
+ } |
+ |
+ return parsed; |
+} |
+ |
} // namespace blink |