Chromium Code Reviews| Index: third_party/WebKit/Source/bindings/core/v8/V8IteratorResultValue.cpp |
| diff --git a/third_party/WebKit/Source/bindings/core/v8/V8IteratorResultValue.cpp b/third_party/WebKit/Source/bindings/core/v8/V8IteratorResultValue.cpp |
| index 739e3a075c546e8039e9ae376604ed72ff869d5f..e2ef6733833451d55b0e292510f2eec26efa1d13 100644 |
| --- a/third_party/WebKit/Source/bindings/core/v8/V8IteratorResultValue.cpp |
| +++ b/third_party/WebKit/Source/bindings/core/v8/V8IteratorResultValue.cpp |
| @@ -18,4 +18,20 @@ v8::Local<v8::Object> v8IteratorResultValue(v8::Isolate* isolate, bool done, v8: |
| return result; |
| } |
| +v8::MaybeLocal<v8::Value> v8IteratorUnpack(ScriptState* scriptState, v8::Local<v8::Value> iterator, bool* done) |
|
haraken
2015/12/04 01:41:05
I don't fully understand why this method is needed
yhirano
2015/12/04 05:55:47
I plan to use it in the future, but moving it back
|
| +{ |
| + if (!iterator->IsObject()) { |
| + V8ThrowException::throwTypeError(scriptState->isolate(), "The iterator is not an object."); |
| + return v8::MaybeLocal<v8::Value>(); |
| + } |
| + v8::Local<v8::Object> object = iterator.As<v8::Object>(); |
| + v8::Local<v8::Value> doneValue; |
| + if (!object->Get(scriptState->context(), v8String(scriptState->isolate(), "done")).ToLocal(&doneValue)) |
| + return v8::MaybeLocal<v8::Value>(); |
| + v8::MaybeLocal<v8::Value> r = object->Get(scriptState->context(), v8String(scriptState->isolate(), "value")); |
| + if (!r.IsEmpty()) |
| + *done = doneValue->ToBoolean()->Value(); |
| + return r; |
| +} |
| + |
| } // namespace blink |