Changeset 212656 in webkit


Ignore:
Timestamp:
Feb 20, 2017 10:18:06 AM (7 years ago)
Author:
commit-queue@webkit.org
Message:

[Readable Streams API] Add ReadableByteStreamController byobRequest attribute
https://bugs.webkit.org/show_bug.cgi?id=168319

Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2017-02-20
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Updated expectations for imported w3c tests (new type of error is now obtained).

  • web-platform-tests/streams/readable-byte-streams/general-expected.txt: Updated.
  • web-platform-tests/streams/readable-byte-streams/general.dedicatedworker-expected.txt: Updated.

Source/WebCore:

Added ReadableByteStreamController byobRequest attribute.

Added tests related to ReadableStreamBYOBRequest as a dedicated object
and also as an attribute of ReadableByteStreamController.

  • CMakeLists.txt: Added new files.
  • DerivedSources.cpp: Added new files.
  • DerivedSources.make: Added new files.
  • Modules/streams/ReadableByteStreamController.idl: Added byobRequest support.
  • Modules/streams/ReadableByteStreamController.js: Added byobRequest support.
  • Modules/streams/ReadableByteStreamInternals.js:

(privateInitializeReadableStreamBYOBRequest): Added constructor.

  • Modules/streams/ReadableStreamBYOBRequest.idl: Added.
  • Modules/streams/ReadableStreamBYOBRequest.js: Added.

(respond): Not implemented yet.
(respondWithNewView): Not implemented yet.
(view): Not implemented yet.

  • WebCore.xcodeproj/project.pbxproj: Added new files.
  • bindings/js/JSDOMGlobalObject.cpp: Added ReadableStreamBYOBRequest support.

(WebCore::JSDOMGlobalObject::addBuiltinGlobals):
(WebCore::JSDOMGlobalObject::finishCreation):
(WebCore::JSDOMGlobalObject::visitChildren):

  • bindings/js/JSReadableStreamPrivateConstructors.cpp: Added ReadableStreamBYOBRequest support.

(WebCore::constructJSReadableByteStreamController):
(WebCore::constructJSReadableStreamBYOBRequest):
(WebCore::JSBuiltinReadableStreamBYOBRequestPrivateConstructor::initializeExecutable):
(WebCore::createReadableStreamBYOBRequestPrivateConstructor):

  • bindings/js/JSReadableStreamPrivateConstructors.h: Added ReadableStreamBYOBRequest support.
  • bindings/js/WebCoreBuiltinNames.h: Added ReadableStreamBYOBRequest support.

LayoutTests:

Added tests related to ReadableStreamBYOBRequest as a dedicated object
and also as an attribute of ReadableByteStreamController.

  • streams/readable-byte-stream-controller.js: Updated with byobRequest attribute test.
  • streams/readable-stream-byob-request-expected.txt: Added.
  • streams/readable-stream-byob-request.html: Added.
  • streams/readable-stream-byob-request.js: Added to cover tests related to ReadableStreamBYOBRequest.
Location:
trunk
Files:
4 added
17 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r212653 r212656  
     12017-02-20  Romain Bellessort  <romain.bellessort@crf.canon.fr>
     2
     3        [Readable Streams API] Add ReadableByteStreamController byobRequest attribute
     4        https://bugs.webkit.org/show_bug.cgi?id=168319
     5
     6        Reviewed by Youenn Fablet.
     7
     8        Added tests related to ReadableStreamBYOBRequest as a dedicated object
     9        and also as an attribute of ReadableByteStreamController.
     10
     11        * streams/readable-byte-stream-controller.js: Updated with byobRequest attribute test.
     12        * streams/readable-stream-byob-request-expected.txt: Added.
     13        * streams/readable-stream-byob-request.html: Added.
     14        * streams/readable-stream-byob-request.js: Added to cover tests related to ReadableStreamBYOBRequest.
     15
    1162017-02-20  Ryan Haddad  <ryanhaddad@apple.com>
    217
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r212625 r212656  
     12017-02-20  Romain Bellessort  <romain.bellessort@crf.canon.fr>
     2
     3        [Readable Streams API] Add ReadableByteStreamController byobRequest attribute
     4        https://bugs.webkit.org/show_bug.cgi?id=168319
     5
     6        Reviewed by Youenn Fablet.
     7
     8        Updated expectations for imported w3c tests (new type of error is now obtained).
     9
     10        * web-platform-tests/streams/readable-byte-streams/general-expected.txt: Updated.
     11        * web-platform-tests/streams/readable-byte-streams/general.dedicatedworker-expected.txt: Updated.
     12
    1132017-02-19  Chris Dumez  <cdumez@apple.com>
    214
  • trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/general-expected.txt

    r212202 r212656  
    1515PASS ReadableStream with byte source: Automatic pull() after start() and read()
    1616FAIL ReadableStream with byte source: autoAllocateChunkSize assert_equals: pull() must have been invoked once expected 1 but got 0
    17 FAIL ReadableStream with byte source: Mix of auto allocate and BYOB promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'byobRequest.view')"
     17FAIL ReadableStream with byte source: Mix of auto allocate and BYOB promise_test: Unhandled rejection with value: object "TypeError: ReadableByteStreamController view is not implemented"
    1818PASS ReadableStream with byte source: Automatic pull() after start() and read(view)
    1919PASS ReadableStream with byte source: enqueue(), getReader(), then read()
  • trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/general.dedicatedworker-expected.txt

    r212202 r212656  
    1515PASS ReadableStream with byte source: Automatic pull() after start() and read()
    1616FAIL ReadableStream with byte source: autoAllocateChunkSize assert_equals: pull() must have been invoked once expected 1 but got 0
    17 FAIL ReadableStream with byte source: Mix of auto allocate and BYOB promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'byobRequest.view')"
     17FAIL ReadableStream with byte source: Mix of auto allocate and BYOB promise_test: Unhandled rejection with value: object "TypeError: ReadableByteStreamController view is not implemented"
    1818PASS ReadableStream with byte source: Automatic pull() after start() and read(view)
    1919PASS ReadableStream with byte source: enqueue(), getReader(), then read()
  • trunk/LayoutTests/streams/readable-byte-stream-controller.js

    r211779 r212656  
    1313test(() => {
    1414    const methods = ['close', 'constructor', 'enqueue', 'error'];
    15     // FIXME: Add byobRequest when implemented.
    16     const properties = methods.concat(['desiredSize']).sort();
     15    const properties = methods.concat(['byobRequest', 'desiredSize']).sort();
    1716
    1817    let controller;
     
    3635        assert_equals(typeof controller[m], 'function', 'should have be a method');
    3736    }
     37
     38    const byobRequestPropDesc = Object.getOwnPropertyDescriptor(proto, 'byobRequest');
     39    assert_equals(byobRequestPropDesc.enumerable, false, 'byobRequest should be non-enumerable');
     40    assert_equals(byobRequestPropDesc.configurable, true, 'byobRequest should be configurable');
     41    assert_not_equals(byobRequestPropDesc.get, undefined, 'byobRequest should have a getter');
     42    assert_equals(byobRequestPropDesc.set, undefined, 'byobRequest should not have a setter');
    3843
    3944    const desiredSizePropDesc = Object.getOwnPropertyDescriptor(proto, 'desiredSize');
  • trunk/Source/WebCore/CMakeLists.txt

    r212563 r212656  
    261261    Modules/streams/ReadableByteStreamController.idl
    262262    Modules/streams/ReadableStream.idl
     263    Modules/streams/ReadableStreamBYOBRequest.idl
    263264    Modules/streams/ReadableStreamDefaultController.idl
    264265    Modules/streams/ReadableStreamDefaultReader.idl
     
    36763677    ${WEBCORE_DIR}/Modules/streams/ReadableByteStreamInternals.js
    36773678    ${WEBCORE_DIR}/Modules/streams/ReadableStream.js
     3679    ${WEBCORE_DIR}/Modules/streams/ReadableStreamBYOBRequest.js
    36783680    ${WEBCORE_DIR}/Modules/streams/ReadableStreamDefaultController.js
    36793681    ${WEBCORE_DIR}/Modules/streams/ReadableStreamInternals.js
  • trunk/Source/WebCore/ChangeLog

    r212652 r212656  
     12017-02-20  Romain Bellessort  <romain.bellessort@crf.canon.fr>
     2
     3        [Readable Streams API] Add ReadableByteStreamController byobRequest attribute
     4        https://bugs.webkit.org/show_bug.cgi?id=168319
     5
     6        Reviewed by Youenn Fablet.
     7
     8        Added ReadableByteStreamController byobRequest attribute.
     9
     10        Added tests related to ReadableStreamBYOBRequest as a dedicated object
     11        and also as an attribute of ReadableByteStreamController.
     12
     13        * CMakeLists.txt: Added new files.
     14        * DerivedSources.cpp: Added new files.
     15        * DerivedSources.make: Added new files.
     16        * Modules/streams/ReadableByteStreamController.idl: Added byobRequest support.
     17        * Modules/streams/ReadableByteStreamController.js: Added byobRequest support.
     18        * Modules/streams/ReadableByteStreamInternals.js:
     19        (privateInitializeReadableStreamBYOBRequest): Added constructor.
     20        * Modules/streams/ReadableStreamBYOBRequest.idl: Added.
     21        * Modules/streams/ReadableStreamBYOBRequest.js: Added.
     22        (respond): Not implemented yet.
     23        (respondWithNewView): Not implemented yet.
     24        (view): Not implemented yet.
     25        * WebCore.xcodeproj/project.pbxproj: Added new files.
     26        * bindings/js/JSDOMGlobalObject.cpp: Added ReadableStreamBYOBRequest support.
     27        (WebCore::JSDOMGlobalObject::addBuiltinGlobals):
     28        (WebCore::JSDOMGlobalObject::finishCreation):
     29        (WebCore::JSDOMGlobalObject::visitChildren):
     30        * bindings/js/JSReadableStreamPrivateConstructors.cpp: Added ReadableStreamBYOBRequest support.
     31        (WebCore::constructJSReadableByteStreamController):
     32        (WebCore::constructJSReadableStreamBYOBRequest):
     33        (WebCore::JSBuiltinReadableStreamBYOBRequestPrivateConstructor::initializeExecutable):
     34        (WebCore::createReadableStreamBYOBRequestPrivateConstructor):
     35        * bindings/js/JSReadableStreamPrivateConstructors.h: Added ReadableStreamBYOBRequest support.
     36        * bindings/js/WebCoreBuiltinNames.h: Added ReadableStreamBYOBRequest support.
     37
    1382017-02-20  Per Arne Vollan  <pvollan@apple.com>
    239
  • trunk/Source/WebCore/DerivedSources.cpp

    r212329 r212656  
    387387#include "JSReadableByteStreamController.cpp"
    388388#include "JSReadableStream.cpp"
     389#include "JSReadableStreamBYOBRequest.cpp"
    389390#include "JSReadableStreamDefaultController.cpp"
    390391#include "JSReadableStreamDefaultReader.cpp"
  • trunk/Source/WebCore/DerivedSources.make

    r212329 r212656  
    204204    $(WebCore)/Modules/streams/ReadableByteStreamController.idl \
    205205    $(WebCore)/Modules/streams/ReadableStream.idl \
     206    $(WebCore)/Modules/streams/ReadableStreamBYOBRequest.idl \
    206207    $(WebCore)/Modules/streams/ReadableStreamDefaultController.idl \
    207208    $(WebCore)/Modules/streams/ReadableStreamDefaultReader.idl \
     
    13501351    $(WebCore)/Modules/streams/ReadableByteStreamInternals.js \
    13511352    $(WebCore)/Modules/streams/ReadableStream.js \
     1353    $(WebCore)/Modules/streams/ReadableStreamBYOBRequest.js \
    13521354    $(WebCore)/Modules/streams/ReadableStreamDefaultController.js \
    13531355    $(WebCore)/Modules/streams/ReadableStreamInternals.js \
  • trunk/Source/WebCore/Modules/streams/ReadableByteStreamController.idl

    r208276 r212656  
    3939    [NotEnumerable] void error(optional any error);
    4040
    41     //FIXME: Add byobRequest when implemented.
     41    [NotEnumerable] readonly attribute ReadableStreamBYOBRequest byobRequest;
    4242    [NotEnumerable] readonly attribute double desiredSize;
    4343};
  • trunk/Source/WebCore/Modules/streams/ReadableByteStreamController.js

    r211779 r212656  
    8181    "use strict";
    8282
    83     //FIXME: Implement appropriate behavior.
    84     @throwTypeError("ReadableByteStreamController byobRequest is not implemented");
     83    if (!@isReadableByteStreamController(this))
     84        throw @makeGetterTypeError("ReadableByteStreamController", "byobRequest");
     85
     86    if (this.@byobRequest === @undefined && this.@pendingPullIntos.length) {
     87        const firstDescriptor = this.@pendingPullIntos[0];
     88        const view = new @Uint8Array(firstDescriptor.buffer,
     89            firstDescriptor.byteOffset + firstDescriptor.bytesFilled,
     90            firstDescriptor.byteLength - firstDescriptor.bytesFilled);
     91        this.@byobRequest = new @ReadableStreamBYOBRequest(this, view);
     92    }
     93
     94    return this.@byobRequest;
    8595}
    8696
  • trunk/Source/WebCore/Modules/streams/ReadableByteStreamInternals.js

    r211779 r212656  
    7979}
    8080
     81function privateInitializeReadableStreamBYOBRequest(controller, view)
     82{
     83    "use strict";
     84
     85    this.@associatedReadableByteStreamController = controller;
     86    this.@view = view;
     87}
     88
    8189function isReadableByteStreamController(controller)
    8290{
  • trunk/Source/WebCore/Modules/streams/ReadableStreamBYOBRequest.idl

    r212655 r212656  
    11/*
    2  * Copyright (C) 2016 Canon Inc.
    3  * Copyright (C) 2015 Igalia S.L.
     2 * Copyright (C) 2017 Canon Inc.
    43 *
    54 * Redistribution and use in source and binary forms, with or without
     
    3029[
    3130    Conditional=READABLE_STREAM_API&READABLE_BYTE_STREAM_API,
    32     CustomConstructor(ReadableStream stream, any underlyingByteSource, unsigned long highWaterMark),
     31    CustomConstructor(ReadableByteStreamController controller, TypedArray view),
    3332    Exposed=(Window,Worker),
    3433    JSBuiltin,
    3534    NoInterfaceObject
    36 ] interface ReadableByteStreamController {
    37     [NotEnumerable] void enqueue(optional any chunk);
    38     [NotEnumerable] void close();
    39     [NotEnumerable] void error(optional any error);
     35] interface ReadableStreamBYOBRequest {
     36    [NotEnumerable] void respond(optional any bytesWritten);
     37    [NotEnumerable] void respondWithNewView(optional any view);
    4038
    41     //FIXME: Add byobRequest when implemented.
    42     [NotEnumerable] readonly attribute double desiredSize;
     39    [NotEnumerable] readonly attribute TypedArray view;
    4340};
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r212572 r212656  
    26132613                6B693A341C51A95D00B03BEF /* ResourceLoadObserver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B693A331C51A95D00B03BEF /* ResourceLoadObserver.cpp */; };
    26142614                6C4C96DE1AD4483500363F64 /* JSReadableByteStreamController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6C4C96DA1AD4483500363F64 /* JSReadableByteStreamController.cpp */; };
     2615                6C4C96DE1AD4483500365672 /* JSReadableStreamBYOBRequest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6C4C96DA1AD4483500365672 /* JSReadableStreamBYOBRequest.cpp */; };
    26152616                6C4C96DE1AD4483500365A50 /* JSReadableStreamDefaultController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6C4C96DA1AD4483500365A50 /* JSReadableStreamDefaultController.cpp */; };
    26162617                6C4C96DF1AD4483500363F64 /* JSReadableByteStreamController.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C4C96DB1AD4483500363F64 /* JSReadableByteStreamController.h */; };
     2618                6C4C96DF1AD4483500365672 /* JSReadableStreamBYOBRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C4C96DB1AD4483500365672 /* JSReadableStreamBYOBRequest.h */; };
    26172619                6C4C96DF1AD4483500365A50 /* JSReadableStreamDefaultController.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C4C96DB1AD4483500365A50 /* JSReadableStreamDefaultController.h */; };
    26182620                6C638895A96CCEE50C8C946C /* CachedResourceRequestInitiators.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C638893A96CCEE50C8C946C /* CachedResourceRequestInitiators.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    87718773                41189EF71AD8232800B90A0D /* ReadableStreamDefaultController.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ReadableStreamDefaultController.idl; sourceTree = "<group>"; };
    87728774                41189EF71AD8232800B93F64 /* ReadableByteStreamController.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ReadableByteStreamController.idl; sourceTree = "<group>"; };
     8775                41189EF71AD8232800B95672 /* ReadableStreamBYOBRequest.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ReadableStreamBYOBRequest.idl; sourceTree = "<group>"; };
    87738776                4127D5360F8AAB1D00E424F5 /* ScriptState.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptState.cpp; sourceTree = "<group>"; };
    87748777                4129DF831BB5B7F700322A16 /* JSReadableStreamPrivateConstructors.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSReadableStreamPrivateConstructors.cpp; sourceTree = "<group>"; };
     
    1001910022                6B693A331C51A95D00B03BEF /* ResourceLoadObserver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ResourceLoadObserver.cpp; sourceTree = "<group>"; };
    1002010023                6C4C96DA1AD4483500363F64 /* JSReadableByteStreamController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSReadableByteStreamController.cpp; sourceTree = "<group>"; };
     10024                6C4C96DA1AD4483500365672 /* JSReadableStreamBYOBRequest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSReadableStreamBYOBRequest.cpp; sourceTree = "<group>"; };
    1002110025                6C4C96DA1AD4483500365A50 /* JSReadableStreamDefaultController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSReadableStreamDefaultController.cpp; sourceTree = "<group>"; };
    1002210026                6C4C96DB1AD4483500363F64 /* JSReadableByteStreamController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSReadableByteStreamController.h; sourceTree = "<group>"; };
     10027                6C4C96DB1AD4483500365672 /* JSReadableStreamBYOBRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSReadableStreamBYOBRequest.h; sourceTree = "<group>"; };
    1002310028                6C4C96DB1AD4483500365A50 /* JSReadableStreamDefaultController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSReadableStreamDefaultController.h; sourceTree = "<group>"; };
    1002410029                6C638893A96CCEE50C8C946C /* CachedResourceRequestInitiators.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CachedResourceRequestInitiators.h; sourceTree = "<group>"; };
     
    1161011615                9908B0F01BCACF9100ED0F65 /* ReadableStreamDefaultController.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = ReadableStreamDefaultController.js; sourceTree = "<group>"; };
    1161111616                9908B0F01BCACF9100ED3F64 /* ReadableByteStreamController.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = ReadableByteStreamController.js; sourceTree = "<group>"; };
     11617                9908B0F01BCACF9100ED5672 /* ReadableStreamBYOBRequest.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = ReadableStreamBYOBRequest.js; sourceTree = "<group>"; };
    1161211618                9908B0F11BCACF9100ED0F55 /* StreamInternals.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = StreamInternals.js; sourceTree = "<group>"; };
    1161311619                9908B0F11BCACF9100ED0F65 /* ReadableStreamInternals.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = ReadableStreamInternals.js; sourceTree = "<group>"; };
     
    1695316959                                41A023ED1A39DB7900F722CF /* ReadableStream.idl */,
    1695416960                                9908B0EF1BCACF9100ED0F65 /* ReadableStream.js */,
     16961                                41189EF71AD8232800B95672 /* ReadableStreamBYOBRequest.idl */,
     16962                                9908B0F01BCACF9100ED5672 /* ReadableStreamBYOBRequest.js */,
    1695516963                                41189EF71AD8232800B90A0D /* ReadableStreamDefaultController.idl */,
    1695616964                                9908B0F01BCACF9100ED0F65 /* ReadableStreamDefaultController.js */,
     
    1697516983                                7C4C96D81AD4483500365A50 /* JSReadableStream.cpp */,
    1697616984                                7C4C96D91AD4483500365A50 /* JSReadableStream.h */,
     16985                                6C4C96DA1AD4483500365672 /* JSReadableStreamBYOBRequest.cpp */,
     16986                                6C4C96DB1AD4483500365672 /* JSReadableStreamBYOBRequest.h */,
    1697716987                                6C4C96DA1AD4483500365A50 /* JSReadableStreamDefaultController.cpp */,
    1697816988                                6C4C96DB1AD4483500365A50 /* JSReadableStreamDefaultController.h */,
     
    2686326873                                6C4C96DF1AD4483500363F64 /* JSReadableByteStreamController.h in Headers */,
    2686426874                                7C4C96DD1AD4483500365A50 /* JSReadableStream.h in Headers */,
     26875                                6C4C96DF1AD4483500365672 /* JSReadableStreamBYOBRequest.h in Headers */,
    2686526876                                6C4C96DF1AD4483500365A50 /* JSReadableStreamDefaultController.h in Headers */,
    2686626877                                7C4C96DF1AD4483500365A50 /* JSReadableStreamDefaultReader.h in Headers */,
     
    3068930700                                6C4C96DE1AD4483500363F64 /* JSReadableByteStreamController.cpp in Sources */,
    3069030701                                7C4C96DC1AD4483500365A50 /* JSReadableStream.cpp in Sources */,
     30702                                6C4C96DE1AD4483500365672 /* JSReadableStreamBYOBRequest.cpp in Sources */,
    3069130703                                6C4C96DE1AD4483500365A50 /* JSReadableStreamDefaultController.cpp in Sources */,
    3069230704                                7C4C96DE1AD4483500365A50 /* JSReadableStreamDefaultReader.cpp in Sources */,
  • trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.cpp

    r211247 r212656  
    108108#if ENABLE(READABLE_BYTE_STREAM_API)
    109109    JSObject* privateReadableByteStreamControllerConstructor = createReadableByteStreamControllerPrivateConstructor(vm, *this);
     110    JSObject* privateReadableStreamBYOBRequestConstructor = createReadableStreamBYOBRequestPrivateConstructor(vm, *this);
    110111#endif
    111112    JSObject* privateReadableStreamDefaultReaderConstructor = createReadableStreamDefaultReaderPrivateConstructor(vm, *this);
     
    114115#if ENABLE(READABLE_BYTE_STREAM_API)
    115116    ASSERT(!constructors(NoLockingNecessary).get(privateReadableByteStreamControllerConstructor->info()).get());
     117    ASSERT(!constructors(NoLockingNecessary).get(privateReadableStreamBYOBRequestConstructor->info()).get());
    116118#endif
    117119    ASSERT(!constructors(NoLockingNecessary).get(privateReadableStreamDefaultReaderConstructor->info()).get());
     
    122124#if ENABLE(READABLE_BYTE_STREAM_API)
    123125        constructors(locker).add(privateReadableByteStreamControllerConstructor->info(), temp).iterator->value.set(vm, this, privateReadableByteStreamControllerConstructor);
     126        constructors(locker).add(privateReadableStreamBYOBRequestConstructor->info(), temp).iterator->value.set(vm, this, privateReadableStreamBYOBRequestConstructor);
    124127#endif
    125128        constructors(locker).add(privateReadableStreamDefaultReaderConstructor->info(), temp).iterator->value.set(vm, this, privateReadableStreamDefaultReaderConstructor);
     
    149152#if ENABLE(READABLE_BYTE_STREAM_API)
    150153        JSDOMGlobalObject::GlobalPropertyInfo(clientData.builtinNames().ReadableByteStreamControllerPrivateName(), privateReadableByteStreamControllerConstructor, DontDelete | ReadOnly),
     154        JSDOMGlobalObject::GlobalPropertyInfo(clientData.builtinNames().ReadableStreamBYOBRequestPrivateName(), privateReadableStreamBYOBRequestConstructor, DontDelete | ReadOnly),
    151155#endif
    152156        JSDOMGlobalObject::GlobalPropertyInfo(clientData.builtinNames().ReadableStreamDefaultReaderPrivateName(), privateReadableStreamDefaultReaderConstructor, DontDelete | ReadOnly),
     
    162166
    163167    addBuiltinGlobals(vm);
    164    
     168
    165169    RELEASE_ASSERT(classInfo());
    166170}
     
    172176
    173177    addBuiltinGlobals(vm);
    174    
     178
    175179    RELEASE_ASSERT(classInfo());
    176180}
     
    192196    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
    193197    Base::visitChildren(thisObject, visitor);
    194    
     198
    195199    {
    196200        auto locker = holdLock(thisObject->m_gcLock);
    197        
     201
    198202        for (auto& structure : thisObject->structures(locker).values())
    199203            visitor.append(structure);
    200        
     204
    201205        for (auto& constructor : thisObject->constructors(locker).values())
    202206            visitor.append(constructor);
    203        
     207
    204208        for (auto& deferredPromise : thisObject->deferredPromises(locker))
    205209            deferredPromise->visitAggregate(visitor);
  • trunk/Source/WebCore/bindings/js/JSReadableStreamPrivateConstructors.cpp

    r211892 r212656  
    2626#include "JSReadableByteStreamController.h"
    2727#include "JSReadableStream.h"
     28#include "JSReadableStreamBYOBRequest.h"
    2829#include "JSReadableStreamDefaultController.h"
    2930#include "JSReadableStreamDefaultReader.h"
     
    4546}
    4647
    47 #if ENABLE(READABLE_BYTE_STREAM_API)
    48 // Public JS ReadableByteStreamController constructor callback.
    49 EncodedJSValue JSC_HOST_CALL constructJSReadableByteStreamController(ExecState& exec)
    50 {
    51     VM& vm = exec.vm();
    52     auto scope = DECLARE_THROW_SCOPE(vm);
    53     return throwVMTypeError(&exec, scope, ASCIILiteral("ReadableByteStreamController constructor should not be called directly"));
    54 }
    55 #endif
    56 
    5748EncodedJSValue JSC_HOST_CALL constructJSReadableStreamDefaultReader(ExecState& exec)
    5849{
     
    7162}
    7263
     64#if ENABLE(READABLE_BYTE_STREAM_API)
     65// Public JS ReadableByteStreamController and ReadableStreamBYOBRequest constructor callback.
     66EncodedJSValue JSC_HOST_CALL constructJSReadableByteStreamController(ExecState& exec)
     67{
     68    VM& vm = exec.vm();
     69    auto scope = DECLARE_THROW_SCOPE(vm);
     70    return throwVMTypeError(&exec, scope, ASCIILiteral("ReadableByteStreamController constructor should not be called directly"));
     71}
     72
     73EncodedJSValue JSC_HOST_CALL constructJSReadableStreamBYOBRequest(ExecState& exec)
     74{
     75    VM& vm = exec.vm();
     76    auto scope = DECLARE_THROW_SCOPE(vm);
     77    return throwVMTypeError(&exec, scope, ASCIILiteral("ReadableStreamBYOBRequest constructor should not be called directly"));
     78}
     79#endif
     80
    7381// Private JS ReadableStreamDefaultReader and ReadableStreamDefaultController constructors.
    7482using JSBuiltinReadableStreamDefaultReaderPrivateConstructor = JSDOMBuiltinConstructor<JSReadableStreamDefaultReader>;
     
    7785// Private JS ReadableByteStreamController constructor.
    7886using JSBuiltinReadableByteStreamControllerPrivateConstructor = JSDOMBuiltinConstructor<JSReadableByteStreamController>;
     87using JSBuiltinReadableStreamBYOBRequestPrivateConstructor = JSDOMBuiltinConstructor<JSReadableStreamBYOBRequest>;
    7988#endif
    8089
     
    8392#if ENABLE(READABLE_BYTE_STREAM_API)
    8493STATIC_ASSERT_IS_TRIVIALLY_DESTRUCTIBLE(JSBuiltinReadableByteStreamControllerPrivateConstructor);
     94STATIC_ASSERT_IS_TRIVIALLY_DESTRUCTIBLE(JSBuiltinReadableStreamBYOBRequestPrivateConstructor);
    8595#endif
    8696
     
    8999#if ENABLE(READABLE_BYTE_STREAM_API)
    90100template<> const ClassInfo JSBuiltinReadableByteStreamControllerPrivateConstructor::s_info = { "ReadableByteStreamControllerPrivateConstructor", &Base::s_info, 0, CREATE_METHOD_TABLE(JSBuiltinReadableByteStreamControllerPrivateConstructor) };
     101template<> const ClassInfo JSBuiltinReadableStreamBYOBRequestPrivateConstructor::s_info = { "ReadableStreamBYOBRequestPrivateConstructor", &Base::s_info, 0, CREATE_METHOD_TABLE(JSBuiltinReadableStreamBYOBRequestPrivateConstructor) };
    91102#endif
    92103
     
    105116{
    106117    return readableByteStreamInternalsPrivateInitializeReadableByteStreamControllerCodeGenerator(vm);
     118}
     119
     120template<> FunctionExecutable* JSBuiltinReadableStreamBYOBRequestPrivateConstructor::initializeExecutable(JSC::VM& vm)
     121{
     122    return readableByteStreamInternalsPrivateInitializeReadableStreamBYOBRequestCodeGenerator(vm);
    107123}
    108124#endif
     
    123139    return JSBuiltinReadableByteStreamControllerPrivateConstructor::create(vm, JSBuiltinReadableByteStreamControllerPrivateConstructor::createStructure(vm, globalObject, globalObject.objectPrototype()), globalObject);
    124140}
     141
     142JSObject* createReadableStreamBYOBRequestPrivateConstructor(VM& vm, JSDOMGlobalObject& globalObject)
     143{
     144    return JSBuiltinReadableStreamBYOBRequestPrivateConstructor::create(vm, JSBuiltinReadableStreamBYOBRequestPrivateConstructor::createStructure(vm, globalObject, globalObject.objectPrototype()), globalObject);
     145}
    125146#endif
    126147
  • trunk/Source/WebCore/bindings/js/JSReadableStreamPrivateConstructors.h

    r208276 r212656  
    3535#if ENABLE(READABLE_BYTE_STREAM_API)
    3636JSC::JSObject* createReadableByteStreamControllerPrivateConstructor(JSC::VM&, JSDOMGlobalObject&);
     37JSC::JSObject* createReadableStreamBYOBRequestPrivateConstructor(JSC::VM&, JSDOMGlobalObject&);
    3738#endif
    3839
  • trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h

    r212323 r212656  
    3434    macro(addTrack) \
    3535    macro(appendFromJS) \
     36    macro(associatedReadableByteStreamController) \
    3637    macro(autoAllocateChunkSize) \
    3738    macro(body) \
     39    macro(byobRequest) \
    3840    macro(cancel) \
    3941    macro(cloneForJS) \
     
    104106    macro(underlyingSink) \
    105107    macro(underlyingSource) \
     108    macro(view) \
    106109    macro(writing) \
    107110    macro(Headers) \
     
    110113    macro(ReadableByteStreamController) \
    111114    macro(ReadableStream) \
     115    macro(ReadableStreamBYOBRequest) \
    112116    macro(ReadableStreamDefaultController) \
    113117    macro(ReadableStreamDefaultReader) \
Note: See TracChangeset for help on using the changeset viewer.