Extending shapes in js explained and support for js code in listings added