http://blog.codingplayboy.com/2016/01/07/js-executionContext/