Is it possible to write Sync blocking IO in pure Javascript (nodejs) without c code?

  1. Is Javascript by design discourages or does not allow Sync blocking IO ?
  2. Why is there no sleep API in Javascript ? Is it due to above point?
  3. Can Browsers have more than single thread executing javascript ? Why is it always single thread?

Does the above points (due to browser restrictions) make javascript ideal language for server side non-blocking language?

Browser will only ever run Javascript in one thread (at least per domain, and except for Web Workers).
This is primarily for simplicity; until recently, no-one wrote a threading API for Javascript.

To make the browsers simpler to write (and faster), this thread is the browser UI thread. Therefore, any synchronous work (or a sleep call) in Javascript will freeze the browser.
This is why synchronous operations are heavily discouraged.