WritableStreamDefaultWriter.js [plain text]
function initializeWritableStreamDefaultWriter(stream)
{
"use strict";
if (!@isWritableStream(stream))
@throwTypeError("WritableStreamDefaultWriter constructor takes a WritableStream");
@setUpWritableStreamDefaultWriter(this, stream);
return this;
}
@getter
function closed()
{
"use strict";
if (!@isWritableStreamDefaultWriter(this))
return @Promise.@reject(@makeGetterTypeError("WritableStreamDefaultWriter", "closed"));
return @getByIdDirectPrivate(this, "closedPromise").@promise;
}
@getter
function desiredSize()
{
"use strict";
if (!@isWritableStreamDefaultWriter(this))
throw @makeThisTypeError("WritableStreamDefaultWriter", "desiredSize");
if (@getByIdDirectPrivate(this, "stream") === @undefined)
@throwTypeError("WritableStreamDefaultWriter has no stream");
return @writableStreamDefaultWriterGetDesiredSize(this);
}
@getter
function ready()
{
"use strict";
if (!@isWritableStreamDefaultWriter(this))
return @Promise.@reject(@makeThisTypeError("WritableStreamDefaultWriter", "ready"));
return @getByIdDirectPrivate(this, "readyPromise").@promise;
}
function abort(reason)
{
"use strict";
if (!@isWritableStreamDefaultWriter(this))
return @Promise.@reject(@makeThisTypeError("WritableStreamDefaultWriter", "abort"));
if (@getByIdDirectPrivate(this, "stream") === @undefined)
return @Promise.@reject(@makeTypeError("WritableStreamDefaultWriter has no stream"));
return @writableStreamDefaultWriterAbort(this, reason);
}
function close()
{
"use strict";
if (!@isWritableStreamDefaultWriter(this))
return @Promise.@reject(@makeThisTypeError("WritableStreamDefaultWriter", "close"));
const stream = @getByIdDirectPrivate(this, "stream");
if (stream === @undefined)
return @Promise.@reject(@makeTypeError("WritableStreamDefaultWriter has no stream"));
if (@writableStreamCloseQueuedOrInFlight(stream))
return @Promise.@reject(@makeTypeError("WritableStreamDefaultWriter is being closed"));
return @writableStreamDefaultWriterClose(this);
}
function releaseLock()
{
"use strict";
if (!@isWritableStreamDefaultWriter(this))
throw @makeThisTypeError("WritableStreamDefaultWriter", "releaseLock");
const stream = @getByIdDirectPrivate(this, "stream");
if (stream === @undefined)
return;
@assert(@getByIdDirectPrivate(stream, "writer") !== @undefined);
@writableStreamDefaultWriterRelease(this);
}
function write(chunk)
{
"use strict";
if (!@isWritableStreamDefaultWriter(this))
return @Promise.@reject(@makeThisTypeError("WritableStreamDefaultWriter", "write"));
if (@getByIdDirectPrivate(this, "stream") === @undefined)
return @Promise.@reject(@makeTypeError("WritableStreamDefaultWriter has no stream"));
return @writableStreamDefaultWriterWrite(this, chunk);
}