52 lines
1.4 KiB
HTML
52 lines
1.4 KiB
HTML
<!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>
|