Bug 1582348 - Make WritableStreamDefault{Controller,Writer} real classes, and resolve them only when writable streams have been enabled. r=arai

Differential Revision: https://phabricator.services.mozilla.com/D51047

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Jeff Walden 2019-11-05 05:12:15 +00:00
Родитель 919d7d7a19
Коммит 373e83663e
2 изменённых файлов: 9 добавлений и 3 удалений

Просмотреть файл

@ -129,8 +129,10 @@
REAL(ReadableByteStreamController, InitViaClassSpec, \
&js::ReadableByteStreamController::class_) \
REAL(WritableStream, InitViaClassSpec, &js::WritableStream::class_) \
IMAGINARY(WritableStreamDefaultWriter, dummy, dummy) \
IMAGINARY(WritableStreamDefaultController, dummy, dummy) \
REAL(WritableStreamDefaultController, InitViaClassSpec, \
&js::WritableStreamDefaultController::class_) \
REAL(WritableStreamDefaultWriter, InitViaClassSpec, \
&js::WritableStreamDefaultWriter::class_) \
REAL(ByteLengthQueuingStrategy, InitViaClassSpec, \
&js::ByteLengthQueuingStrategy::class_) \
REAL(CountQueuingStrategy, InitViaClassSpec, \

Просмотреть файл

@ -36,6 +36,8 @@
#include "builtin/streams/ReadableStreamController.h" // js::Readable{StreamDefault,ByteStream}Controller
#include "builtin/streams/ReadableStreamReader.h" // js::ReadableStreamDefaultReader
#include "builtin/streams/WritableStream.h" // js::WritableStream
#include "builtin/streams/WritableStreamDefaultController.h" // js::WritableStreamDefaultController
#include "builtin/streams/WritableStreamDefaultWriter.h" // js::WritableStreamDefaultWriter
#include "builtin/Symbol.h"
#include "builtin/TypedObject.h"
#include "builtin/WeakMapObject.h"
@ -122,7 +124,9 @@ bool GlobalObject::skipDeselectedConstructor(JSContext* cx, JSProtoKey key) {
case JSProto_CountQueuingStrategy:
return !cx->realm()->creationOptions().getStreamsEnabled();
case JSProto_WritableStream: {
case JSProto_WritableStream:
case JSProto_WritableStreamDefaultController:
case JSProto_WritableStreamDefaultWriter: {
const auto& realmOptions = cx->realm()->creationOptions();
return !realmOptions.getStreamsEnabled() ||
!realmOptions.getWritableStreamsEnabled();