Index: Source/bindings/core/v8/V8ObjectBuilder.h |
diff --git a/Source/bindings/core/v8/V8ObjectBuilder.h b/Source/bindings/core/v8/V8ObjectBuilder.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..092cbc56cb2a392a1bdc160c3b8bf97845239225 |
--- /dev/null |
+++ b/Source/bindings/core/v8/V8ObjectBuilder.h |
@@ -0,0 +1,44 @@ |
+// Copyright 2015 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. |
+ |
+#ifndef V8ObjectBuilder_h |
+#define V8ObjectBuilder_h |
+ |
+#include "platform/heap/Heap.h" |
haraken
2015/03/24 15:26:25
Heap.h => Handle.h (We normally include Handle.h.)
|
+#include "wtf/text/WTFString.h" |
+#include <v8.h> |
+ |
+namespace blink { |
+ |
+class ScriptState; |
+class ScriptValue; |
+ |
+class V8ObjectBuilder { |
+ STACK_ALLOCATED(); |
+public: |
+ explicit V8ObjectBuilder(ScriptState*); |
+ |
+ ScriptState* scriptState() const { return m_scriptState.get(); } |
+ |
+ V8ObjectBuilder& add(String name, const ScriptValue&); |
+ V8ObjectBuilder& add(String name, const V8ObjectBuilder&); |
+ |
+ V8ObjectBuilder& addNull(String name); |
+ V8ObjectBuilder& addBoolean(String name, bool value); |
+ V8ObjectBuilder& addNumber(String name, double value); |
+ V8ObjectBuilder& addString(String name, String value); |
+ |
+ ScriptValue scriptValue() const; |
+ v8::Local<v8::Object> v8Value() const { return m_object; } |
+ |
+private: |
+ void add(String name, v8::Local<v8::Value>); |
+ |
+ RefPtr<ScriptState> m_scriptState; |
+ v8::Local<v8::Object> m_object; |
+}; |
+ |
+} // namespace blink |
+ |
+#endif // V8ObjectBuilder_h |