<!DOCTYPE html>
<html>
<body>
<canvas id="canvas" width="100" height="100"></canvas>
<script>

var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');

ctx.fillStyle = '#000';
ctx.arc(50, 50, 25, 0, Math.PI * 2, true);
ctx.fill();

var tmp_canvas = canvas.cloneNode();
var tmp_ctx = tmp_canvas.getContext('2d');
tmp_ctx.fillStyle = '#0f0';
tmp_ctx.fillRect(25, 25, 50, 50);
tmp_ctx.fillStyle = '#000';
tmp_ctx.fillRect(25, 65, 50, 10);

ctx.globalCompositeOperation = 'source-in';
ctx.drawImage(tmp_canvas, 0, 0);

</script>
</body>
</html>
