OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "config.h" | 5 #include "config.h" |
6 #include "bindings/core/v8/V8IteratorResultValue.h" | 6 #include "bindings/core/v8/V8IteratorResultValue.h" |
7 | 7 |
8 namespace blink { | 8 namespace blink { |
9 | 9 |
10 v8::Local<v8::Object> v8IteratorResultValue(v8::Isolate* isolate, bool done, v8:
:Local<v8::Value> value) | 10 v8::Local<v8::Object> v8IteratorResultValue(v8::Isolate* isolate, bool done, v8:
:Local<v8::Value> value) |
11 { | 11 { |
12 v8::Local<v8::Object> result = v8::Object::New(isolate); | 12 v8::Local<v8::Object> result = v8::Object::New(isolate); |
13 if (value.IsEmpty()) | 13 if (value.IsEmpty()) |
14 value = v8::Undefined(isolate); | 14 value = v8::Undefined(isolate); |
15 if (!v8CallBoolean(result->Set(isolate->GetCurrentContext(), v8String(isolat
e, "done"), v8Boolean(done, isolate))) | 15 if (!v8CallBoolean(result->Set(isolate->GetCurrentContext(), v8String(isolat
e, "done"), v8Boolean(done, isolate))) |
16 || !v8CallBoolean(result->Set(isolate->GetCurrentContext(), v8String(iso
late, "value"), value))) | 16 || !v8CallBoolean(result->Set(isolate->GetCurrentContext(), v8String(iso
late, "value"), value))) |
17 return v8::Local<v8::Object>(); | 17 return v8::Local<v8::Object>(); |
18 return result; | 18 return result; |
19 } | 19 } |
20 | 20 |
21 v8::MaybeLocal<v8::Value> v8UnpackIteratorResult(ScriptState* scriptState, v8::L
ocal<v8::Object> result, bool* done) | |
22 { | |
23 v8::MaybeLocal<v8::Value> maybeValue = result->Get(scriptState->context(), v
8String(scriptState->isolate(), "value")); | |
24 if (maybeValue.IsEmpty()) | |
25 return maybeValue; | |
26 v8::Local<v8::Value> doneValue; | |
27 if (!v8Call(result->Get(scriptState->context(), v8String(scriptState->isolat
e(), "done")), doneValue) | |
28 || !v8Call(doneValue->BooleanValue(scriptState->context()), *done)) { | |
29 return v8::MaybeLocal<v8::Value>(); | |
30 } | |
31 return maybeValue; | |
32 } | |
33 | |
34 } // namespace blink | 21 } // namespace blink |
OLD | NEW |