Edit in JSFiddle

function foo() {
	console.log("foo");
}

function bar() {
console.log("bar");
}

function baz() {
console.log("baz");
}

function doSomething() {
	foo();
  setTimeout(function() {}, 5000);
}
Zone.current.fork({
  onHandleError: function(parentZoneDelegate, currentZone, targetZone, error) {
    console.log(error.stack);
  },
  onScheduleTask: function(parentZoneDelegate, currentZone, targetZone, task) {
    console.log('onScheduleTask', task);
    parentZoneDelegate.scheduleTask(targetZone, task);
  },
  onInvokeTask: function(parentZoneDelegate, currentZone, targetZone, task, applyThis, applyArgs) {
    console.log('onInvokeTask', task);
    parentZoneDelegate.invokeTask(targetZone, task, applyThis, applyArgs);
  }
}).fork(Zone.longStackTraceZoneSpec).run(function() {
  $('#button1').click(function() {
    console.log('button clicked');
    foo();
    bar();
    doSomething();
    baz();
  });
});
<button id='button1'>click</button>