<script>
var canvas, ctx;
canvas = document.createElement("canvas");
canvas.width = 200;
canvas.height = 200;
document.body.appendChild(canvas);

ctx = canvas.getContext("2d");

var circle = new Path2D();
circle.arc(90, 90, 40, 0, 2 * Math.PI);
ctx.fill(circle);

ctx.globalCompositeOperation = 'source-in';

canvas2 = document.createElement("canvas");
ctx2 = canvas2.getContext("2d");

ctx2.fillStyle = 'rgba(0,0,255,1)';
ctx2.fillRect(60,60,75,50);

ctx2.globalAlpha = 0.5;

canvas3 = document.createElement("canvas");
ctx3 = canvas3.getContext("2d");

ctx3.fillStyle = 'rgba(225,0,0,1)';
ctx3.fillRect(50,50,75,50);
ctx3.fillStyle = 'rgba(0,255,0,1)';
ctx3.fillRect(70,70,75,50);

ctx2.drawImage(canvas3,0,0);
ctx.drawImage(canvas2,0,0);
</script>
