## 2016-04-20, #Jens

- Setup Wiki pages for [WebDev16](WebDev16)
- TestRunner 
  <button onclick='lively.components.openInWindow(lively.components.createComponent("lively-testrunner"))'>test runner</button>
- Hot fixed a [bugin mocha](https://github.com/mochajs/mocha/pull/2112) #WhatShallWeDo

### Night Time Hacking

Make event listeners in modules runtime programm ready.

Previously, I wraped the event handler in an anonymous function... so I could exchange the method in the selecting.js module without reregistering the event handler. But when evaluating the module twice, the event handler get also registered multiple times making live programming not feasable. 
```
$("body")[0].addEventListener('mousedown', (evt) => this.handleMouseDown(evt),true)
$("body")[0].addEventListener('mouseup', (evt) => this.handleMouseUp(evt),true)
$("body")[0].addEventListener('click', (evt) => this.handleSelect(evt),true)
$("body")[0].addEventListener('click', (evt) => this.handleSelect(evt),true)
```

So I implemented ``removeEventListener`` and ``addEventListener`` in ``lively`` that makes the event listeners available for reflection... such as removing them by a pattern.

```
lively.removeEventListener("selecting") // in case of a reload
lively.addEventListener("selecting", document.body, 'mousedown', (evt) => this.handleMouseDown(evt), true)
lively.addEventListener("selecting", document.body, 'mouseup', (evt) => this.handleMouseUp(evt), true)
lively.addEventListener("selecting", document.body, 'click', (evt) => this.handleSelect(evt), true)
```

Now the way is free to do what I actually wanted to do: fix the halo selection.  

