blob: cf9ef8274db9074c92a75acba3b34c24b149f09e [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="../resources/js-test-pre.js"></script>
</head>
<body>
<p>The second and third results should be the same.</p>
<pre id='console'></pre>
<canvas></canvas>
<script>
"use strict";
const log = console.log.bind(console);
const canvas = document.querySelector("canvas");
const ctx = canvas.getContext("2d");
log(ctx.getLineDash());
ctx.setLineDash([1, 2, 3]);
log("Using an array: " + ctx.getLineDash());
function* generator() {
yield 10;
yield 11;
yield 12;
}
const iterator = generator();
ctx.setLineDash(iterator);
let a = ctx.getLineDash();
log("Using an iterator: " + a);
const array = [1, 2, 3];
Object.defineProperty(array, Symbol.iterator, {
value: () => generator()
});
ctx.setLineDash(array);
let b = ctx.getLineDash();
log("Using an array but with customized iteration (should be same as iterator): " + b);
if (a.toString() !== b.toString())
throw new Error("Bad result. They should be equal.");
</script>
<script src="../resources/js-test-post.js"></script>
</body>
</html>