Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

<!DOCTYPE html>
<title>Options conversion for getContext("2d")</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
test(() => {
const expected = [
"alpha",
"colorSpace",
"colorSpace toString",
"desynchronized",
"willReadFrequently",
];
var actual = [];
const options = {
get alpha() {
actual.push("alpha");
return true;
},
get willReadFrequently() {
actual.push("willReadFrequently");
return false;
},
get desynchronized() {
actual.push("desynchronized");
return false;
},
get colorSpace() {
actual.push("colorSpace");
return {
toString() {
actual.push("colorSpace toString");
return "srgb";
}
};
},
};
const canvas = document.createElement("canvas");
const context = canvas.getContext('2d', options);
assert_not_equals(context, null, "context");
assert_array_equals(actual, expected, "order of operations (creation)");
actual = [];
assert_equals(canvas.getContext('2d', options), context, "cached context");
assert_array_equals(actual, expected, "order of operations (caching)");
});
</script>