blob: 602925706cee75007426f96ccb74c0c9a5f56eee [file] [log] [blame]
<!DOCTYPE html>
<script src='../resources/testharness.js'></script>
<script src='../resources/testharnessreport.js'></script>
<script>
function printMethodError(method, target)
{
try {
method.call(target);
assert_unreached();
} catch(e) {
console.log(e);
}
}
function printPromiseMethodError(method, target)
{
return method.call(target).then(assert_unreached, (e) => {
console.log(e);
});
}
function printGetterError(object, getterName, target)
{
const getter = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(object), getterName).get;
printMethodError(getter, target);
}
function printPromiseGetterError(object, getterName, target)
{
const getter = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(object), getterName).get;
printPromiseMethodError(getter, target);
}
promise_test(function(test) {
// This test prints exceptions to check the format of their messages.
var controller;
var stream = new ReadableStream({
start: (c) => {
controller = c;
}
});
var reader = stream.getReader();
var results = [];
results.push(printPromiseMethodError(stream.cancel, controller));
results.push(printMethodError(stream.getReader, controller));
results.push(printMethodError(stream.tee, controller));
results.push(printGetterError(stream, "locked", controller));
results.push(printMethodError(controller.enqueue, reader));
results.push(printMethodError(controller.error, reader));
results.push(printMethodError(controller.close, reader));
results.push(printGetterError(controller, "desiredSize", reader));
results.push(printPromiseMethodError(reader.cancel, stream));
results.push(printPromiseMethodError(reader.read, stream));
results.push(printMethodError(reader.releaseLock, stream));
results.push(printPromiseGetterError(reader, "closed", stream));
return Promise.all(results);
}, "Exercising TypeError messages in ReadableStream, ReadableStreamDefaultController and ReadableStreamDefaultReader");
</script>