| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "core/streams/ReadableStreamOperations.h" | 5 #include "core/streams/ReadableStreamOperations.h" |
| 6 | 6 |
| 7 #include "bindings/core/v8/ExceptionState.h" | 7 #include "bindings/core/v8/ExceptionState.h" |
| 8 #include "bindings/core/v8/ScriptState.h" | 8 #include "bindings/core/v8/ScriptState.h" |
| 9 #include "bindings/core/v8/ToV8.h" | 9 #include "bindings/core/v8/ToV8.h" |
| 10 #include "bindings/core/v8/V8ScriptRunner.h" | 10 #include "bindings/core/v8/V8ScriptRunner.h" |
| (...skipping 17 matching lines...) Expand all Loading... |
| 28 } | 28 } |
| 29 | 29 |
| 30 ScriptValue ReadableStreamOperations::createCountQueuingStrategy( | 30 ScriptValue ReadableStreamOperations::createCountQueuingStrategy( |
| 31 ScriptState* scriptState, | 31 ScriptState* scriptState, |
| 32 size_t highWaterMark) { | 32 size_t highWaterMark) { |
| 33 ScriptState::Scope scope(scriptState); | 33 ScriptState::Scope scope(scriptState); |
| 34 | 34 |
| 35 v8::Local<v8::Value> args[] = { | 35 v8::Local<v8::Value> args[] = { |
| 36 v8::Number::New(scriptState->isolate(), highWaterMark)}; | 36 v8::Number::New(scriptState->isolate(), highWaterMark)}; |
| 37 return ScriptValue( | 37 return ScriptValue( |
| 38 scriptState, V8ScriptRunner::callExtraOrCrash( | 38 scriptState, |
| 39 scriptState, "createBuiltInCountQueuingStrategy", args)); | 39 V8ScriptRunner::callExtraOrCrash( |
| 40 scriptState, "createBuiltInCountQueuingStrategy", args)); |
| 40 } | 41 } |
| 41 | 42 |
| 42 ScriptValue ReadableStreamOperations::getReader(ScriptState* scriptState, | 43 ScriptValue ReadableStreamOperations::getReader(ScriptState* scriptState, |
| 43 ScriptValue stream, | 44 ScriptValue stream, |
| 44 ExceptionState& es) { | 45 ExceptionState& es) { |
| 45 ASSERT(isReadableStream(scriptState, stream)); | 46 ASSERT(isReadableStream(scriptState, stream)); |
| 46 | 47 |
| 47 v8::TryCatch block(scriptState->isolate()); | 48 v8::TryCatch block(scriptState->isolate()); |
| 48 v8::Local<v8::Value> args[] = {stream.v8Value()}; | 49 v8::Local<v8::Value> args[] = {stream.v8Value()}; |
| 49 ScriptValue result( | 50 ScriptValue result( |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 138 ->Value(); | 139 ->Value(); |
| 139 } | 140 } |
| 140 | 141 |
| 141 ScriptPromise ReadableStreamOperations::defaultReaderRead( | 142 ScriptPromise ReadableStreamOperations::defaultReaderRead( |
| 142 ScriptState* scriptState, | 143 ScriptState* scriptState, |
| 143 ScriptValue reader) { | 144 ScriptValue reader) { |
| 144 ASSERT(isReadableStreamDefaultReader(scriptState, reader)); | 145 ASSERT(isReadableStreamDefaultReader(scriptState, reader)); |
| 145 | 146 |
| 146 v8::Local<v8::Value> args[] = {reader.v8Value()}; | 147 v8::Local<v8::Value> args[] = {reader.v8Value()}; |
| 147 return ScriptPromise::cast( | 148 return ScriptPromise::cast( |
| 148 scriptState, V8ScriptRunner::callExtraOrCrash( | 149 scriptState, |
| 149 scriptState, "ReadableStreamDefaultReaderRead", args)); | 150 V8ScriptRunner::callExtraOrCrash( |
| 151 scriptState, "ReadableStreamDefaultReaderRead", args)); |
| 150 } | 152 } |
| 151 | 153 |
| 152 void ReadableStreamOperations::tee(ScriptState* scriptState, | 154 void ReadableStreamOperations::tee(ScriptState* scriptState, |
| 153 ScriptValue stream, | 155 ScriptValue stream, |
| 154 ScriptValue* newStream1, | 156 ScriptValue* newStream1, |
| 155 ScriptValue* newStream2) { | 157 ScriptValue* newStream2) { |
| 156 DCHECK(isReadableStream(scriptState, stream)); | 158 DCHECK(isReadableStream(scriptState, stream)); |
| 157 DCHECK(!isLocked(scriptState, stream)); | 159 DCHECK(!isLocked(scriptState, stream)); |
| 158 | 160 |
| 159 v8::Local<v8::Value> args[] = {stream.v8Value()}; | 161 v8::Local<v8::Value> args[] = {stream.v8Value()}; |
| 160 | 162 |
| 161 ScriptValue result(scriptState, V8ScriptRunner::callExtraOrCrash( | 163 ScriptValue result( |
| 162 scriptState, "ReadableStreamTee", args)); | 164 scriptState, |
| 165 V8ScriptRunner::callExtraOrCrash(scriptState, "ReadableStreamTee", args)); |
| 163 DCHECK(result.v8Value()->IsArray()); | 166 DCHECK(result.v8Value()->IsArray()); |
| 164 v8::Local<v8::Array> branches = result.v8Value().As<v8::Array>(); | 167 v8::Local<v8::Array> branches = result.v8Value().As<v8::Array>(); |
| 165 DCHECK_EQ(2u, branches->Length()); | 168 DCHECK_EQ(2u, branches->Length()); |
| 166 | 169 |
| 167 *newStream1 = ScriptValue( | 170 *newStream1 = ScriptValue( |
| 168 scriptState, branches->Get(scriptState->context(), 0).ToLocalChecked()); | 171 scriptState, branches->Get(scriptState->context(), 0).ToLocalChecked()); |
| 169 *newStream2 = ScriptValue( | 172 *newStream2 = ScriptValue( |
| 170 scriptState, branches->Get(scriptState->context(), 1).ToLocalChecked()); | 173 scriptState, branches->Get(scriptState->context(), 1).ToLocalChecked()); |
| 171 | 174 |
| 172 DCHECK(isReadableStream(scriptState, *newStream1)); | 175 DCHECK(isReadableStream(scriptState, *newStream1)); |
| 173 DCHECK(isReadableStream(scriptState, *newStream2)); | 176 DCHECK(isReadableStream(scriptState, *newStream2)); |
| 174 } | 177 } |
| 175 | 178 |
| 176 } // namespace blink | 179 } // namespace blink |
| OLD | NEW |