Commit ec6d5dcb authored by Jeremy Roman's avatar Jeremy Roman Committed by Commit Bot

Use V8ObjectBuilder for V8IteratorResultValue.

Bug: 670615
Change-Id: I2a7592581cc251b9f1a21171416ea3492932e218
Reviewed-on: https://chromium-review.googlesource.com/c/1281047Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Reviewed-by: default avatarYuki Shiino <yukishiino@chromium.org>
Reviewed-by: default avatarHitoshi Yoshida <peria@chromium.org>
Commit-Queue: Jeremy Roman <jbroman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600130}
parent 8b8c29c2
...@@ -4,22 +4,19 @@ ...@@ -4,22 +4,19 @@
#include "third_party/blink/renderer/bindings/core/v8/v8_iterator_result_value.h" #include "third_party/blink/renderer/bindings/core/v8/v8_iterator_result_value.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_object_builder.h"
namespace blink { namespace blink {
v8::Local<v8::Object> V8IteratorResultValue(v8::Isolate* isolate, v8::Local<v8::Object> V8IteratorResultValue(ScriptState* script_state,
bool done, bool done,
v8::Local<v8::Value> value) { v8::Local<v8::Value> value) {
v8::Local<v8::Object> result = v8::Object::New(isolate);
if (value.IsEmpty()) if (value.IsEmpty())
value = v8::Undefined(isolate); value = v8::Undefined(script_state->GetIsolate());
if (!V8CallBoolean(result->CreateDataProperty( return V8ObjectBuilder(script_state)
isolate->GetCurrentContext(), V8AtomicString(isolate, "done"), .Add("done", done)
v8::Boolean::New(isolate, done))) || .Add("value", value)
!V8CallBoolean( .V8Value();
result->CreateDataProperty(isolate->GetCurrentContext(),
V8AtomicString(isolate, "value"), value)))
return v8::Local<v8::Object>();
return result;
} }
v8::MaybeLocal<v8::Value> V8UnpackIteratorResult(ScriptState* script_state, v8::MaybeLocal<v8::Value> V8UnpackIteratorResult(ScriptState* script_state,
......
...@@ -15,7 +15,7 @@ namespace blink { ...@@ -15,7 +15,7 @@ namespace blink {
// "Iterator result" in this file is an object returned from iterator.next() // "Iterator result" in this file is an object returned from iterator.next()
// having two members "done" and "value". // having two members "done" and "value".
CORE_EXPORT v8::Local<v8::Object> V8IteratorResultValue(v8::Isolate*, CORE_EXPORT v8::Local<v8::Object> V8IteratorResultValue(ScriptState*,
bool done, bool done,
v8::Local<v8::Value>); v8::Local<v8::Value>);
...@@ -28,7 +28,7 @@ template <typename T> ...@@ -28,7 +28,7 @@ template <typename T>
inline ScriptValue V8IteratorResult(ScriptState* script_state, const T& value) { inline ScriptValue V8IteratorResult(ScriptState* script_state, const T& value) {
return ScriptValue( return ScriptValue(
script_state, script_state,
V8IteratorResultValue(script_state->GetIsolate(), false, V8IteratorResultValue(script_state, false,
ToV8(value, script_state->GetContext()->Global(), ToV8(value, script_state->GetContext()->Global(),
script_state->GetIsolate()))); script_state->GetIsolate())));
} }
...@@ -36,7 +36,7 @@ inline ScriptValue V8IteratorResult(ScriptState* script_state, const T& value) { ...@@ -36,7 +36,7 @@ inline ScriptValue V8IteratorResult(ScriptState* script_state, const T& value) {
inline ScriptValue V8IteratorResultDone(ScriptState* script_state) { inline ScriptValue V8IteratorResultDone(ScriptState* script_state) {
return ScriptValue( return ScriptValue(
script_state, script_state,
V8IteratorResultValue(script_state->GetIsolate(), true, V8IteratorResultValue(script_state, true,
v8::Undefined(script_state->GetIsolate()))); v8::Undefined(script_state->GetIsolate())));
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment